Elements

엘리먼트 22.1.1(Elements 22.1.1): 경량 DIY 하드웨어를 위한 노드 최적화

Blockstream Team

리퀴드(Liquid) 커뮤니티는 더 저렴한 기성 DIY 하드웨어와의 호환성 강화를 위해, 보다 가벼운 엘리먼트 노드 클라이언트를 사용할 것을 오랫동안 요청해왔습니다. 엘리먼트 21.1.1은 리퀴드의 블록 헤더를 최적화함으로써 이러한 요청에 대응하기 시작했으며, 당사는 향후 출시 서비스에서 노드 효율성을 더욱 최적화할 계획입니다.

21.1.1의 경우, 내부 벤치마크의 결과, liquidv1을 실행할 때 메모리 사용량이 50% 이상 감소한 것으로 나타났습니다. 메모리에 저장된 큰 헤더 필드 중 일부를 잘라내어 오버헤드를 줄일 수 있었습니다. 이러한 새로운 최적화 작업을 통해, 이제 사용자는 8GB 라즈베리 파이보다 조금 더 많은 전력으로 전체 비트코인 스택(즉, 비트코인, 코어 라이트닝(Core Lightning), 리퀴드 노드)을 동시에 활용할 수 있게 됩니다.

엘리먼트 22.1.1에는 다음과 같은 유지보수 업데이트 및 수정 사항도 포함되어 있습니다.

ᅬ getsidechaininfo RPC 및 testproposedblock 에 대한 도움말 메시지 수정

ᅬ 로그에서 메인체인 RPC 필드가 보이지 않도록 함

ᅬ P2WSH(Pay-to-Witness-Script-Hash) 페그인으로 레그테스트(Regtest) 네트워크 배포 허용

ᅬ 블록이 헤더보다 앞설 때 언더플로우 수정

또한, 개발팀은 "사용 가능한 잔액 사용(use available balance)"이 기본값인 L-BTC로 돌아가지 않고 선택한 자산을 유지하도록 하는 등 엘리먼트- qt를 통해 자산에 대한 몇 가지 수정을 이행했습니다.

이번 출시 서비스의 세부 사항에 대해 더 자세히 알아보고 싶으신 경우에는 전체 수정 로그(changelog)를 검토하고, 만족스러운 부분 또는 개선할 점이 있으면 Build On L2(BOL2) 커뮤니티의 개발자 페이지를 방문하여 알려주시기 바랍니다.

엘리먼트 최적화(헤더에 모두 포함)

엘리먼트 21.1.1에서 메모리 오버헤드를 줄일 수 있었던 최적화 작업에 대해 보다 자세히 설명 드리겠습니다.

비트코인 코어(Bitcoin Core)에서 상속된 동작의 일부로, 엘리먼트의 모든 블록 헤더(블록 메타데이터)는 항상 메모리에 저장됩니다. 비트코인에서는 이러한 헤더가 상대적으로 작기 때문에 큰 영향을 미치지 않지만, 엘리먼트의 경우에는 더 빠른 1분 블록 시간, DynaFeed 및 블록 서명 정보 때문에 헤더가 훨씬 더 큽니다. 현재 리퀴드 블록체인(liquidv1)은 비트코인의 약 3배 수의 블록을 포함하고 있습니다.

새로운 trim_headers 매개변수(PR #1190 참조)의 경우, 전체 메모리 오버헤드를 줄이기 위해 일부 큰 헤더 필드를 제거했습니다. 단, 필요하지 않을 가능성이 있기 때문에 충분한 블록 시간이 경과한 후에만 제거했습니다. 이는 IBD(초기 블록 다운로드) 중에 특히 영향을 미치는데, 왜냐하면 일반적으로 (비트코인 및 non-trim_headers_헤더 모드) 헤더와 블록은 독립적으로 다운로드 되고, 이때 요구되는 유일한 조건은 헤더를 블록보다 먼저 다운로드 하여 블록이 다운로드 될 때 검증할 수 있도록 해야 한다는 것이기 때문입니다. 하지만 이는 trim_headers 모드에서는 가능한 옵션이 아닌데, 왜냐하면 (a) 트리밍을 하면 블록을 검증할 수 없게 되고, 또는 (b) 트리밍을 하지 않으면 이전처럼 많은 메모리를 사용하게 되기 때문입니다. 당사가 적용한 솔루션은 헤더와 블록을 거의 동시에 “락스텝(lockstep)”으로 다운로드하는 것인데, 이렇게 하면 이전처럼 헤더가 블록보다 너무 앞설 수 없게 됩니다.

메모리에 저장된 헤더에서 이러한 불필요한 필드를 일부 제거함으로써 오버헤드를 줄일 수 있었습니다. 그러나 디스크의 데이터는 변경되지 않으므로 사용자가 매개변수 포함 여부를 자유롭게 선택할 수 있습니다.

8GB RAM, 4GB 스왑 VM에서 실행된 테스트를 통한 IBD 동기화 후 메모리 소비량

BOL2 가입 및 새로운 기능 요청

엘리먼트 플랫폼은 누구나 자신만의 사이드체인 솔루션을 설정할 수 있도록 무료 오픈소스로 다운로드 가능합니다. 최초 출시 이후, 당사는 기밀 거래(Confidential Transactions)와 발행 자산(Issued Assets)과 같은 새로운 옵코드와 기능을 추가해왔습니다. 이러한 엘리먼트의 업그레이드 중 일부는 OP_CSV와 세그윗(SegWit)를 포함해 비트코인에서 구현되기도 했습니다. 올해 리퀴드에서 출시될 예정인 차세대 스마트 컨트랙트 언어인 심플리시티(Simplicity)도 향후 비트코인에 업그레이드로 적용 가능할 것입니다.

우리는 이러한 유산을 이어가고자 하며, 리퀴드에 추가할 새로운 옵코드와 기능에 대한 피드백을 적극 환영합니다. Build On L2(BOL2) 커뮤니티 플랫폼을 통해 엔지니어링 팀과 소통하고 다른 리퀴드 파워 유저들과 함께 새로운 아이디어와 프로젝트에 대해 논의하실 수 있습니다.

오늘 오후에 리퀴드 엔지니어링 매니저인 파블로 그레코(Pablo Greco)가 BOL2에 대한 라이브 AMA를 진행하며, 22.1.1 출시에 관련한 질문을 받습니다.

여러분의 많은 관심과 참여를 기대합니다!

If you have specific preferences, please, mark the topic(s) you would like to read: