일각고래와 엄니 오픈 소스 발표

미스텐 랩스는 처리량이 많은 멤풀 및 합의 엔진인 Narwhal & Tusk를 오픈소스화하고 있습니다.

일각고래와 엄니 오픈 소스 발표

미스텐 랩스는 처리량이 많은 멤풀 및 합의 엔진인 Narwhal & Tusk를 오픈소스화하고 있습니다.

나르왈 앤 터스크 (N/T) 스마트 계약 플랫폼의 중요한 측면을 지원합니다. Sui:

  • 합의 프로토콜을 사용하여 공유 객체와 관련된 모든 트랜잭션을 주문합니다.
  • 프로토콜로 소유 객체를 다루는 프로토콜을 작성합니다.
  • Sui의 보안 속성을 보장하기 위해 트랜잭션을 시퀀싱합니다.

이중 이름은 시스템이 다음과 같은 책임을 분담하고 있음을 강조합니다:

  • 합의에 제출된 데이터의 가용성 보장(일각고래)
  • 이 데이터의 특정 순서에 대한 동의(엄니)

Narwhal & Tusk는 프로덕션 암호화, 영구 저장소, 확장된 프라이머리 워커 아키텍처를 통해 WAN에서 초당 13만 건 이상의 트랜잭션을 처리하는 다중 제안자, 고처리량 합의 알고리즘에 대한 수십 년 간의 연구 끝에 나온 최신 변형입니다.

오픈소싱을 하는 이유는 무엇인가요?

웹3.0의 확장성과 관련하여 개발자들이 공감할 수 있는 아이디어, 문제, 해결책을 논의하는 자리였습니다. Narwhal & Tusk를 공유함으로써 우리가 배운 것을 발전시키고 비슷한 생각을 가진 팀들이 더 빠르게 성장할 수 있기를 바랍니다.

업계 동료들과 이야기를 나눠본 결과, 많은 팀들이 높은 처리량을 자랑하는 멤풀과 컨센서스 내에서 동일한 기술을 찾고 있다는 것을 알 수 있었습니다. 코드를 오픈 소스로 공유함으로써 전체 웹3.0 커뮤니티가 이러한 기술을 재사용하는 데 도움이 되기를 바라며, 실제로 Narwhal & Tusk의 개념과 기능이 다른 확장성 솔루션에 적용되기를 기대하고 있습니다. Narwhal & Tusk는 Sui 의 일부로 사용될 예정입니다.

마지막으로, 오픈 소싱은 미스텐 랩 외부의 커뮤니티에 환원하고 공유하고자 하는 우리의 열망에 부응합니다. 이를 통해 유사한 엔지니어링 과제를 해결하는 팀 간의 활발한 참여가 이루어질 것으로 기대합니다.

오픈 소싱 준비

코드베이스는 작고 효율적이며 벤치마킹과 수정이 용이하도록 설계되었습니다. 이 프로젝트는 아직 프로덕션에 사용할 수 있도록 준비 중이지만, 이미 실제 암호화를 사용하고 있습니다(ed25519 및 기타 서명 체계), 네트워킹(tokio), 스토리지(rocksdb).

핵심 프로토콜은 Rust로 작성되었지만 모든 벤치마킹 스크립트는 Python으로 작성되어 다음과 함께 실행됩니다. Fabric. 로컬 머신에 4개의 노드로 구성된 테스트베드를 배포하고 벤치마킹하려면, 리포지토리를 복제하고 Python 종속 요소를 설치하세요:

$ git clone <https://github.com/mystenlabs/narwhal.git>
$ cd narwhal/benchmark
$ pip install -r requirements.txt

또한 다음을 설치해야 합니다. Clang (RocksDB에 필요) 및 tmux (백그라운드에서 모든 노드와 클라이언트를 실행)를 설치해야 합니다. 마지막으로 다음을 사용하여 로컬 벤치마크를 실행합니다. Fabric:

팹 로컬

이 명령은 처음 실행할 때 시간이 오래 걸릴 수 있습니다(러스트 코드를 컴파일하는 데는 릴리스 모드가 느릴 수 있음)에서 여러 벤치마크 매개변수를 사용자 지정할 수 있습니다. fabfile.py. 벤치마크가 종료되면 아래와 유사하게 실행 요약이 표시됩니다.

-----------------------------------------
 요약:
-----------------------------------------
 + CONFIG:
 결함: 0 노드
 위원회 규모: 4 노드
 노드당 작업자 수: 워커 1명
 기본 및 워커를 배치합니다: True
 입력 속도: 50,000 tx/s
 트랜잭션 크기: 512 B
 실행 시간: 19초 헤더 크기: 1,000B
 최대 헤더 지연: 100ms
 GC 깊이: 50라운드
 동기화 재시도 지연: 10,000 ms
 동기화 재시도 노드 수: 3 노드
 배치 크기: 500,000B
 최대 배치 지연: 100ms + 결과:
 합의 TPS: 46,478 tx/s
 합의 BPS: 23,796,531B/s
 합의 지연: 464ms 엔드투엔드 TPS: 46,149 tx/s
 엔드투엔드 BPS: 23,628,541B/s
 엔드투엔드 지연 시간: 557ms
-----------------------------------------

다음 단계

  1. 읽기 일각고래와 엄니 README.
  2. 논문 읽기 일각고래와 엄니: DAG 기반 멤풀과 효율적인 BFT 합의.
  3. README 파일을 살펴볼 것을 권장합니다. workerprimary 상자.
  4. 터스크 합의 프로토콜을 더 잘 이해하기 위한 추가 리소스는 다음 문서입니다. DAG만 있으면 됩니다 에서 유사한 프로토콜을 설명합니다.
  5. 벤치마크 폴더의 벤치마크 폴더 에는 코드베이스를 벤치마킹하고 벤치마크 결과를 읽는 방법이 설명되어 있습니다. 또한 다음에서 벤치마크를 실행하는 단계별 자습서도 제공합니다. 아마존 웹 서비스(AWS) 에서 벤치마크를 실행하는 단계별 튜토리얼도 제공합니다.

추가 읽기

나르왈과 엄니(Danezis 외. 2021)는 방향성 비순환 그래프(DAG)를 활용한 합의 시스템입니다. DAG 기반 합의는 지난 30년 동안 개발되어 왔으며, 그 역사 중 일부는 (Wang & al. 2020)에 요약되어 있습니다. 나르왈 & 터스크의 가장 가까운 이론적 조상은 (케이다르 외. 2021)입니다.

나르왈 & 터스크는 비동기 모델. 나르할과 엄니의 부분 동기식 변형인 불샤크는 (Giridharan 2022)에 소개되어 있습니다.

일각고래와 엄니는 연구 프로토타입으로 연구 프로토타입으로 시작되었습니다.

부록

  • Danezis, G., Kogias, E. K., Sonnino, A., & Spiegelman, A. (2021). 일각고래와 엄니: DAG 기반 멤풀과 효율적인 BFT 합의. ArXiv:2105.11827 [Cs]. http://arxiv.org/abs/2105.11827
  • Giridharan, N., Kokoris-Kogias, L., Sonnino, A., & Spiegelman, A. (2022). Bullshark: 실용화 된 DAG BFT 프로토콜. ArXiv:2201.05677 [Cs]. http://arxiv.org/abs/2201.05677
  • Keidar, I., Kokoris-Kogias, E., Naor, O., & Spiegelman, A. (2021). 필요한 것은 DAG뿐입니다. ArXiv:2102.08325 [Cs]. http://arxiv.org/abs/2102.08325
  • Wang, Q., Yu, J., Chen, S., & Xiang, Y. (2020). SoK: DAG 기반 블록체인 시스템 살펴보기. ArXiv:2012.06128 [Cs]. http://arxiv.org/abs/2012.06128