대기 없음, Mempool 없음 : Solana가 번개 속도로 암호화를 움직이는 방법

대기 없음, Mempool 없음 : Solana가 번개 속도로 암호화를 움직이는 방법

이 보고서에서는 Solana Transaction 라이프 사이클에 중점을 둡니다. 크기, 메시지 헤더, 컴팩트 어레이 형식 등과 같은 트랜잭션의 핵심 개념을 탐구합니다. 또한 Solana 런타임 프로세스를 강조하고 Solana의 거래 비용이 낮은 이유를 설명합니다.

Solana 거래 란 무엇입니까?

솔라나 거래의 구조

트랜잭션은 블록 체인을 가로 지르는 데이터의 전송입니다. 계정에서 암호화 적으로 서명 한 지침은 시작시 네트워크를 업데이트합니다. Solana 거래는 구성됩니다 서명; 거래에는 일련의 서명이 포함되어 있습니다 그리고 메시지처리 할 트랜잭션 목록.

Solana 네트워크는 IPv6 MTU 크기 제약 조건과 일치하여 UDP에 대한 정보 클러스터의 빠르고 안정적인 전송을 보장하기 위해 IPv6 MTU 크기 제약 조건과 일치하는 최대 전송 장치 (MTU) 크기 1280 바이트를 준수합니다. 메시지 헤더는 3 개의 U8 정수로 구성되며 (IPv6의 40 바이트 및 Fragment 헤더의 경우 8 바이트)를 설명하면 1232 바이트의 사용 가능한 패킷 데이터가 예를 들어 Solana Transaction에 제한된 트랜잭션의 총 크기입니다. Solana 거래에서 각 서명에는 64 바이트가 필요하며 거래 요구 사항에 따라 달라질 수 있습니다. 반면에 메시지에는 지침, 계정 및 메타 데이터가 포함되어 있으며 각 계정마다 32 바이트가 필요합니다. Solana의 거래 메시지가 구성됩니다 메시지 헤더, 계정 주소, 최근 블록 해시 및 지침.

메시지 헤더는 거래의 계정 주소 배열에 포함 된 계정의 권한을 타협하고 식별합니다. 위에서 언급 한 바와 같이 3 개의 U8 정수가 포함되어 있으며, 이는 전체적으로 지정합니다.

  • 거래 및 메시지 버전 번호에 필요한 서명 수.
  • 서명이 필요한 읽기 전용 계정 주소 수.
  • 서명이 필요하지 않은 읽기 전용 계정 주소 수.

계정 주소

메시지에는 트랜잭션 내 지침에 필요한 모든 계정 주소가 포함 된 배열이 포함됩니다. 이 배열은 a로 시작합니다 소형 -U16 계정 주소 수를 인코딩 한 다음 계정 권한에 의해 주문한 주소가 이어집니다. 메시지 헤더의 메타 데이터는 각 섹션의 계정 수를 결정하는 데 사용됩니다.

최근 Blockhash

Solana 거래에서 모든 트랜잭션에는 최근 블록 해시가있어 거래가 실행 된 시간을 추적합니다. Blockhash는 중복 및 오래된 트랜잭션을 방지합니다.

사용자가 전송하는 모든 트랜잭션은 블록으로 확인됩니다. 거래의 블록 하쉬의 최대 연령은 150 블록입니다 (대상 슬롯 시간이 400ms라고 가정). 트랜잭션의 Blockhash가 최신 Blockhash보다 오래된 150 블록이면 만료 된 것으로 간주됩니다. 이는 특정 기간 내에 처리되지 않은 트랜잭션이 실행되지 않음을 의미합니다.

지침

트랜잭션 메시지는 아직 처리되지 않은 컴팩트 한 명령어로 구성됩니다. 이 소형 배열은 a로 시작합니다 소형 -U16 지침 수를 인코딩 한 다음 일련의 지침이 이어집니다. 배열의 각 명령어는 다음 정보를 지정합니다. 프로그램 ID, 컴팩트 한 계정 주소 인덱스 및 Opaque U8 데이터의 컴팩트 한 배열.

에이 프로그램 ID 지시를 처리 할 온 체인 프로그램을 식별합니다. 계정 주소 배열 내의 계정 주소를 가리키는 U8 지수로 표시됩니다. 지침에는 또한 a 계정 주소 지수의 소형 배열여기서 각 인덱스는 계정 주소 배열의 항목에 해당하며 명령에 필요한 계정을 나타냅니다. 또한, a 불투명 U8 데이터의 소형 배열 제공됩니다. 이것은 명령 세부 사항 및 프로그램이 명령어를 실행 해야하는 필요한 데이터 (예 : 기능 인수)를 포함하는 호출 된 프로그램에 특정한 U8 바이트 배열입니다.

솔라나 거래의 수명주기

간단한 Solana 거래는 Defi 프로토콜, NFT 민트 또는 Solana 블록 체인에서 발생하는 토큰 전송에 대한 거래 일 수 있습니다. Solana에서는 Solana가 계정이 데이터와 실행 가능한 코드를 모두 저장할 수있는 하이브리드 구조를 사용하기 때문에 거래는 빠르고 즉시 발생하는 경향이 있습니다. 따라서 Solana를 사용하면 각 계정이 다양한 운영을 수행하고 스마트 계약과 직접 상호 작용할 수있는 독립형 상태 머신 역할을 할 수 있습니다.

거래를 유발합니다

즉시 사용자는 지갑, DAPP 또는 인터페이스의 트랜잭션에 서명합니다. 서명 된 거래의 세부 사항은 Solana RPC 서버로 전송됩니다. 이 서버는 온 체인 데이터를 전달하는 데 도움이되면서 네트워크로의 트랜잭션의 진입 지점 역할을합니다. Solana의 RPC 서버는 체인 데이터에 액세스하는 데 중점을 둔 투표가 아닌 유효성 검사기입니다.

RPC 서버는 리더 일정을 확인한 후 현재 리더와 다음 두 리더에게 거래를 전달합니다. 리더는 4 개의 슬롯을 연속으로 제공하며 현재 위치에 대한 블록을 작성해야합니다. 일반적으로 슬롯은 400 밀리 초 지속됩니다.

거래 처리 및 시퀀싱

서명 된 거래가 현재 리더에게 도달하면 리더는 먼저 서명 된 거래를 검증 한 다음 거래를 예약하기 전에 거래를 구성합니다. 리더는 지정된 슬롯 내에서 서명 된 거래에 대해서만 책임이 있습니다.

Solana Validators는 Solana 클라이언트에서 제공되는 블록 빌딩 알고리즘을 사용하며 여기에는 트랜잭션 스케줄러가 포함됩니다. 이 스케줄러는 블록 생성 및 실행을위한 트랜잭션 순서에 중요합니다. 기본 스케줄러는 단일 스레드이며 프리오 그래프유효성 검사기는 다른 블록 구축 알고리즘을 구현할 수있는 옵션이 있습니다. 그만큼 프리오 그래프 알고리즘은 우선 순위 수수료와 같은 요소와 투표 거래인지 여부에 따라 거래를 우선시합니다. 또한 우선 순위가 높은 트랜잭션 (예 : 동일한 계정 또는 상태에 영향을 미치는 것)과 충돌하는 우선 순위가 낮은 트랜잭션 간의 링크를 생성하여 병렬로 실행되는 것을 방지합니다. 이를 통해 비 분화 트랜잭션이 동시에 실행될 수 있습니다. 트랜잭션이 블록에 포함되지 않으면 사용자는이를 재현해야합니다. 사용자는 거래와 함께 우선 순위 수수료를 포함시킬 수 있으며, 필요한 컴퓨팅 장치에 관계없이 기본 수수료는 변경되지 않습니다. 기본 수수료의 절반이 연소되고 나머지 절반은 검증기를 블록 빌딩에 제공합니다. 우선 순위 수수료 (SIMD-0096 이후의 유효성 검사기에 전적으로 진행됨)는 요청 된 컴퓨팅 장치에 따라 다르며, 이는 버클리 패킷 필터 (BPF) 바이트 코드 형식의 프로그램 카운터에 의해 결정됩니다.

RPC 서버는 빠르고 신뢰할 수있는 데이터 전송을 위해 설계된 통신 프로토콜 인 빠른 UDP 인터넷 연결 (QUIC)을 사용하여 리더 노드의 트랜잭션 처리 장치 (TPU)에 빠르고 안전한 연결을 설정합니다. 이 프로토콜은 데이터 패킷을 안전하게 전달하여 지연을 최소화하고 전반적인 네트워크 성능을 향상시킵니다. TPU는 여러 단계에서 트랜잭션을 처리하여 효율성과 보안을 보장합니다. 에서 페치 스테이지트랜잭션은 더 나은 관리를 위해 128 패킷의 배치로 그룹화됩니다. 동안 sigverify 단계각 트랜잭션의 서명은 변조를 방지하기 위해 검증되었으며 중복 처리를 피하기 위해 복제물이 제거됩니다. 그만큼 은행 단계 트랜잭션을 병렬로 실행하여 여러 트랜잭션을 동시에 처리 할 수 ​​있으며 관련 계정에 필요한 점검 및 업데이트가 이루어집니다. 마지막으로 방송 단계처리 된 트랜잭션은 네트워크로 방송되어 모든 노드에 새로운 트랜잭션의 모든 노드를 알립니다.

이더 리움과는 달리 Solana는 Mempool (Gulfstream 사용)이 없으므로 실행을 위해 대기하는 전 세계적으로 주문이 없습니다. 각 스레드의 대기열에는 로컬 주문이 있습니다. 트랜잭션은 어떤 상태를 읽어야하는지, 어떤 상태를 읽어야하는지, 어떤 상태를 실행 해야하는지 지정합니다. 스레드가 거래를 수행 할 준비가되면 작업을 수행하기 전에 필요한 계정 잠금을 얻으려고합니다. 필요한 잠금을 얻을 수없는 트랜잭션은 후속 시도를 위해 다시 시도됩니다.

Solana는 트랜잭션이 동일한 상태를 만질 필요가 없기 때문에 다른 체인보다 더 높은 성능을 달성합니다. 병렬로 실행할 수있어 체인의 처리량이 향상됩니다.

거래 방송 및 상태 업데이트

안정되고 최신 원장을 유지하기 위해 Solana 네트워크의 클러스터 내부의 검증기는 상태를 동기화합니다. 유효성 검사기 그룹으로 구성된이 클러스터는 블록 체인의 일관된 그림을 유지하기 위해 협력하고 모든 노드의 원장이 현재이며 네트워크의 현재 상태와 일치하도록 보장합니다. 리더가 거래를 실행하면 네트워크 전체에 즉시 전파되고 유효성 검사기의 원장 사본에 기록됩니다. 유효성 검사기의 초고준에 의해 블록이 확인되면 거래가 완료되어 블록 체인에 영구적으로 입력됩니다. 이 절차는 신뢰성과 신속성을 위해 간소화됩니다. 31 개 이상의 검증 된 블록이 블록에 구성되면 완성 된 것으로 간주됩니다. 사용자가 거래 진행 상황을 모니터링 할 수 있도록이 단계는 RPC를 통해 프론트 엔드로 다시 전달됩니다. 기본 기술의 상당 부분은 백그라운드에서 완벽하게 작동하여 프로세스를 신뢰할 수 있고 효율적으로 만듭니다. Solana의 합의 및 차단 전파 알고리즘은 빠르고 안전한 거래 마무리를 보장합니다.

결론

이 보고서에서는 사용자가 제출 한 지갑 트랜잭션에서 Solana 네트워크의 확인에 이르기까지 Solana 트랜잭션의 수명주기를 조사했습니다. 또한 Solana가 거래를 실행하고 주문하는 방법 및 Solana 거래의 구조를 조사했습니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다