지난주 솔라나 브레이크포인트 컨퍼런스에서는 제품 출시와 다양한 부대 행사로 활기찬 분위기가 이어졌습니다. 가장 눈에 띄는 하이라이트는 솔라나 검증자 클라이언트인 Firedancer의 초기 버전이 메인넷에서 공식적으로 출시되었다는 점입니다.
이 이정표적인 성과는 단일 클라이언트 장애로 인한 네트워크 다운타임의 위험을 완화하는 동시에 Solana 네트워크의 성능이 크게 도약했음을 알리며 특별한 주목을 받았습니다.
파이어랜서의 개발은 2021~2022년으로 거슬러 올라가며, 점프 트레이딩 그룹이 솔라나의 두 번째 검증인 클라이언트(원래 클라이언트인 아가베는 안자에서 개발)로 주도했습니다. 주요 목표는 단일 장애 지점을 제거하여 네트워크의 전반적인 견고성과 복원력을 강화하는 것이었습니다.
기존 Rust 기반 유효성 검사기와 달리, Firedancer는 Rust 코드를 제외한 C로 작성되었습니다. 이러한 선택은 취약점이 네트워크에 미칠 수 있는 잠재적 영향을 크게 줄여 Solana에 강력한 보안 계층을 추가합니다.
파이어랜서는 어떻게 작동하나요?
솔라나 브레이크포인트의 프레젠테이션에서 점프 크립토의 수석 과학자 케빈 바워스는 현재 솔라나의 이론적 한계인 수만 TPS를 훨씬 뛰어넘는 초당 100만 건 이상의 트랜잭션을 처리하는 파이어랜서의 능력을 선보였습니다. 그는 이 성과를 ‘시골길’을 ‘주간 고속도로’로 확장하는 것에 비유하며 네트워크 비용과 용량의 이중 최적화를 보여주었습니다.
핵심 엔지니어인 리암 히거는 테스트넷의 진행 상황을 공유하며 파이어댄서가 1%의 스테이킹 비율로 20,000개 이상의 블록을 성공적으로 생성했다고 언급했습니다. 또 다른 엔지니어인 아리아만 자인은 특정 조건에서 파이어댄서의 성능을 시연하며 10개의 검증자 환경에서 초당 12억 회 이상의 연산과 3.5Gbps 블록 공간 용량으로 최대 100만 TPS를 기록했다고 밝혔습니다.
파이어랜서는 어떻게 운영되나요?
파이어랜서는 고성능 컴퓨팅 스택, 네트워크 스택, 런타임 및 합의 메커니즘이라는 세 가지 주요 구성 요소를 중심으로 구축되었습니다. 혁신적인 아키텍처와 데이터 흐름 최적화를 통해 솔라나의 성능을 100만 TPS(현재 프로토콜의 한계는 약 81,000 TPS)까지 끌어올릴 수 있었습니다.
검증자는 몇 개의 스레드에서 다양한 작업을 실행하는 동시성 모델을 사용하며, 각 스레드는 네트워크 패킷 처리, 트랜잭션 검증, 블록 패키징과 같은 특정 작업에 집중합니다. 이 설계는 리소스 활용을 극대화하고 트랜잭션 처리 속도를 크게 높입니다.
구체적으로 각 스레드는 11가지 작업 중 하나를 실행합니다. 어떤 작업은 하나의 스레드만 필요하지만, 어떤 작업은 여러 개의 스레드가 병렬로 작동해야 합니다. 각 스레드는 전용 CPU 코어에서 작동하므로 절전 모드로 전환되거나 운영 체제에 의해 용도가 변경되지 않습니다.
파이어댄서는 또한 각 타일이 작업, 실행 중인 스레드, 할당된 CPU 코어를 나타내는 ‘타일’이라는 아키텍처를 도입했습니다. 이 조합을 통해 유연하고 효율적인 성능 튜닝이 가능합니다. 예를 들어, net 및 quic 타일은 1백만 TPS 이상을 처리할 수 있으며, 검증 및 은행 타일은 트랜잭션 검증과 블록 실행에 집중하므로 동시성이 높은 시나리오에 충분합니다.
파이어댄서의 공식 문서에는 다음 11개의 타일이 나열되어 있습니다:
- net: 네트워크 패킷을 주고받습니다(각 타일은 100만 TPS를 처리할 수 있습니다);
- quic: 클라이언트로부터 트랜잭션을 수신하여 QUIC 프로토콜의 연결 및 패킷 처리를 관리합니다(각 타일은 1백만 TPS를 처리할 수 있음);
- 확인: 들어오는 트랜잭션의 암호화 서명을 검증하여 유효하지 않은 서명을 걸러냅니다(각 타일은 20~40,000TPS를 처리할 수 있습니다);
- dedup: 중복 수신 트랜잭션을 확인하고 필터링합니다;
- pack: 리더 역할을 할 때 들어오는 트랜잭션을 패키징하여 스마트하게 실행 일정을 잡습니다;
- 은행: 예약된 트랜잭션을 실행합니다(각 타일은 20~40,000TPS를 처리할 수 있습니다);
- poh: 백그라운드에서 지속적으로 해시하고, 생성된 해시와 실행된 트랜잭션을 혼합하여 순서와 타이밍을 증명합니다;
- shred: 리더 역할을 할 때는 블록 데이터를 네트워크에 배포하고, 그렇지 않을 때는 블록 데이터를 수신하여 재전송합니다(처리량은 주로 클러스터 규모에 따라 달라지며, 벤치마크는 소규모 클러스터의 경우 100만 TPS를 나타냅니다);
- store: 리더 역할을 할 때 또는 다른 노드가 리더일 때 블록 데이터를 수신하여 로컬 디스크 데이터베이스에 저장합니다;
- metric: 다른 타일에 대한 모니터링 정보를 수집하여 HTTP 엔드포인트에 제공합니다;
- sign: 유효성 검사자의 개인 키를 보유하고 다른 타일의 서명 요청에 응답합니다.
특히, 파이어댄서가 성숙하기 전에 과도기 버전인 프랭켄댄서가 이미 솔라나 메인넷에 진입한 상태입니다. 솔라나는 파이어댄서와 아가베의 코드를 혼합한 것으로, 네트워크 스택과 블록 생성에서 파이어댄서의 장점을 활용하면서 아가베의 실행 및 합의 기능을 유지합니다. 반면, 파이어댄서는 Agave 코드 없이 완전히 처음부터 새로 구축되었습니다.
파이어랜서의 영향력이란 무엇인가요?
의심할 여지 없이, 파이어랜서의 출시는 검증인의 다양성을 크게 향상시키고 단일 장애 지점의 위험을 더욱 줄여 네트워크의 안정성을 강화하는 등 솔라나 생태계에 중요한 의미를 지니고 있습니다.
또한, 파이어랜서는 기존 프로토콜과의 하위 호환성을 유지하여 디앱 개발자와 사용자가 큰 조정 없이도 생태계를 원활하게 전환할 수 있도록 지원합니다.
파이어랜서는 현재 비투표 모드에 있으며 지속적인 최적화 및 감사를 받고 있지만, 솔라나 네트워크의 미래 발전에 대한 희망적인 그림을 그리고 있습니다.