ZooBC 위키
데이터와 저장소

아카이브와 과거 조회

일반 ZooBC 노드는 최근 이력만 보관합니다. 30~60일치 블록과 최신 스냅샷 세 개입니다. 아카이브는 3년 전의 계정 잔액처럼 먼 과거에 대한 질문에 답합니다. 블록 0 이후의 모든 스냅샷을 한 컴퓨터가 아니라 분산 저장소에 나누어 보관하며, 스파인 체인과 바이트 단위로 대조해 확인할 수 있습니다.

모든 노드가 보관하는 것

mainnet에서 172,800블록(약 30일)마다 각 노드는 스냅샷을 씁니다. 스냅샷은 그 높이보다 760블록 아래 시점의 체인 상태 전체, 즉 모든 잔액, 레지스트리 좌석, 기록입니다. 노드들은 작업 시점을 엇갈리게 하지만, 모든 노드의 바이트는 똑같습니다. 스냅샷은 하나의 CBOR 문서이며, SHA3-256 해시로 이름이 붙는 102,400바이트 청크로 잘립니다. 파일 전체의 해시, 모든 청크의 해시, 기준 높이를 담은 매니페스트는 등록 좌석의 3분의 2가 공동 서명하는 하루 단위의 느린 체인인 스파인 체인의 블록에 게시됩니다.

스냅샷 안의 어떤 것도 서명되지 않습니다. 스냅샷의 권위는 그것을 지정한 공동 서명된 스파인 블록에서 나오므로, 바이트가 매니페스트의 해시와 일치하는 한 누가 제공하든 스냅샷은 진본입니다. 스냅샷은 새 노드가 빠르게 합류하는 수단이기도 합니다(스냅샷과 빠른 동기화).

각 노드는 자기 디스크에 최신 스냅샷 세대 세 개만 보관합니다. 노드가 다른 노드의 합류를 돕는 데는 그것으로 충분하며, 지금까지 만들어진 모든 스냅샷을 모든 노드에 보관하면 운영자마다 매달 디스크 비용이 늘어날 것입니다. 오래된 블록도 정리됩니다(이력 정리).

아카이브

버전 0.5.8부터 블록 0 이후의 모든 스냅샷을 보관하는 것은 모든 노드가 아니라 분산 저장소입니다. 각 스냅샷의 청크는 다른 저장 파일의 조각과 마찬가지로 추첨으로 뽑힌 등록 노드 다섯 개가 보관합니다(storage_replication)(분산 저장소 풀). 각 노드는 자기의 마지막 스냅샷 세 개만 보관하며, 모든 스냅샷을 보관하는 노드는 없습니다.

어떤 단일 컴퓨터도 이력을 보관하지 않으므로, 어떤 단일 운영자도 이를 잃거나 숨길 수 없습니다. 한 조직이 운영하는 아카이브 서버라면, 그것이 ZooBC Foundation이라 해도 바로 그 단일 지점이 될 것입니다. 버려지는 것도 없습니다. 아카이브는 맨 첫 스냅샷까지 거슬러 올라갑니다.

아카이브 청크를 보관하는 것은 등록 노드의 저장 의무의 일부입니다. 저장 에포크마다 롱제비티 풀의 10 %가 표본으로 뽑힌 청크를 증명하는 노드들에게 똑같이 나뉘어 지급됩니다(풀).

한 노드는 최근 스냅샷 세 개를 보관하고, 아카이브는 블록 0 이후의 모든 스냅샷을 보관하며, 각 청크는 추첨으로 뽑힌 노드 다섯 개에 있습니다.
한 노드는 최근 스냅샷 세 개를 보관하고, 아카이브는 블록 0 이후의 모든 스냅샷을 보관하며, 각 청크는 추첨으로 뽑힌 노드 다섯 개에 있습니다.

과거 조회

과거 어느 시점의 상태를 원하는 사람은 스파인을 따라 그 시점에 찍힌 스냅샷까지 거슬러 올라가 매니페스트를 읽습니다. 보유자들에게서 스냅샷의 청크를 가져와 각 청크를 매니페스트의 해시와 대조하므로, 보유자는 거짓 청크를 끼워 넣을 수 없습니다. 그다음 스냅샷을 다시 조립하고 전체의 해시를 확인한 뒤, 그 높이의 상태, 즉 그 순간의 모든 잔액, 좌석, 기록을 다시 만듭니다. 어떤 단일 노드도 이력을 보관하지 않으며, 아카이브 노드도 필요하지 않습니다.

스파인을 따라가고, 매니페스트를 읽고, 청크를 가져와 확인하고, 상태를 다시 만듭니다.
스파인을 따라가고, 매니페스트를 읽고, 청크를 가져와 확인하고, 상태를 다시 만듭니다.

이 확인에는 보유자에 대한 신뢰가 필요 없습니다. 스파인은 좌석들이 공동 서명하고, 그 매니페스트가 모든 청크의 해시를 고정하므로, 거짓 청크는 즉시 드러납니다.

과거를 보는 다른 방법

  • 롱제비티 예치금은 선택한 트랜잭션 하나와 그 블록을 예치금이 남아 있는 동안 모든 노드에 보관합니다(데이터 보관 비용 (롱제비티)).
  • 운영자는 keep_all_history로 자기 노드에 모든 이력을 보관할 수 있습니다. 이는 기본값이 아닌 로컬 선택입니다.
  • 아카이브 노드는 노드 옆에서 인덱싱 서비스를 실행하고 익스플로러의 검색과 통계를 제공합니다(익스플로러와 아카이브 노드).

같이 보기