포털 네트워크 프로토콜을 사용하여 기록 만료

이 기사는 기계로 번역되었습니다
원문 표시

최종 체인 이력 포털 서브네트워크

최종 체인 이력은 포털 와이어 프로토콜 위에 구축된 서브네트워크입니다. 그 목표는 최종 확정된 이더리움(ETH) 기록 데이터의 분산 저장을 제공하는 것입니다.

네트워크의 노드들은 로컬에 모든 과거 헤더를 저장하는 실행 계층 클라이언트라고 가정합니다. 실행 계층 클라이언트가 아닌 노드들은 주어진 블록 번호에 대한 블록 헤더를 얻을 방법이 필요할 것입니다(콘텐츠 확인을 위해).

부록 섹션에서 기존 포털 이력 서브네트워크와의 비교 및 제안된 변경 사항에 대한 근거를 제공합니다.

[이하 생략]

이 아이디어의 시각화는 다음 이미지에서 보여집니다.

block_number (uint64)의 비트를 조작하여 이를 달성합니다:

  1. 16개의 최하위 비트(사이클 비트)와 48개의 최상위 비트(오프셋 비트) 교환
  2. 원하는 방식으로 다른 사이클의 블록 오프셋은 오프셋_비트의 순서를 반전시켜 수행
  3. 마지막으로, 도메인 공간(uint256)의 값을 얻기 위해 0을 추가

다음 이미지는 블록 번호 12'345'678에 대한 이 과정을 보여줍니다.

거리 함수(XOR)와의 상호작용

XOR을 거리 함수로 사용하기 때문에, 반경이 도메인 공간의 연속된 섹션을 포함하지 않을 수 있습니다(저장된 범위에 "구멍"이 생길 수 있음). 이는 큰 문제가 되지 않습니다. 왜냐하면:

  • 반경의 최소 절반은 연속적으로 보장됩니다.
    • 이 연속된 섹션에는 노드ID가 포함됩니다
  • 반경이 2의 거듭제곱이면, 전체 저장된 범위가 연속적입니다.
    • 클라이언트가 고정된 반경을 사용한다고 가정하면, 이를 강제할 수 있습니다

사이클_비트 선택

사이클_비트 선택에는 균형을 맞춰야 할 두 가지 절충안이 있습니다:

  • 더 큰 값은 각 피어가 더 짧은 연속 블록 시퀀스를 많이 저장하는 대신 더 긴 연속 블록 시퀀스를 적게 저장함을 의미합니다
  • 더 큰 값은 또한 특정 블록 범위(예: 체인의 헤드 근처)에 대한 수요가 더 많은 경우, 동일한 노드가 해당 요청을 더 오래 처리할 것임을 의미합니다

사이클_비트=16 값은 대부분의 언어에서 함수 구현을 단순화하고(바이트 vs. 비트 수준 조작), 각 피어가 전체 콘텐츠의 최소 1/256 (≈0.4%)를 저장한다고 가정하면 최소 256개의 연속 블록 시퀀스도 저장할 것이기 때문에 선택되었습니다(좋은 균형으로 느껴집니다).


출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트