일각고래와 엄니 오픈 소스 발표
미스텐 랩스는 처리량이 많은 멤풀 및 합의 엔진인 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
-----------------------------------------
다음 단계
- 읽기 일각고래와 엄니 README.
- 논문 읽기 일각고래와 엄니: DAG 기반 멤풀과 효율적인 BFT 합의.
- README 파일을 살펴볼 것을 권장합니다. worker 와 primary 상자.
- 터스크 합의 프로토콜을 더 잘 이해하기 위한 추가 리소스는 다음 문서입니다. DAG만 있으면 됩니다 에서 유사한 프로토콜을 설명합니다.
- 벤치마크 폴더의 벤치마크 폴더 에는 코드베이스를 벤치마킹하고 벤치마크 결과를 읽는 방법이 설명되어 있습니다. 또한 다음에서 벤치마크를 실행하는 단계별 자습서도 제공합니다. 아마존 웹 서비스(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