ZooBC 위키
데이터와 저장소

데이터 보관 비용 (롱제비티)

ZooBC 노드는 오래된 이력을 정리하므로, 일반 트랜잭션은 mainnet 노드에 30~60일 동안 남습니다(이력 정리). 롱제비티 기록은 선택한 트랜잭션 하나와 그것이 든 블록을, 기록에 돈이 남아 있는 동안 모든 노드에 보관합니다. 결제 증명, 문서의 해시, 먼 기한을 가진 에스크로가 어느 노드에서든 계속 읽힐 수 있게 하는 방법입니다.

기록 열기

기록을 여는 방법은 두 가지입니다.

  • 생존 필드. 버전 2나 3의 트랜잭션은 생존 필드를 담습니다. 이는 송신자 자신의 예치금으로, 0이거나 최소 0.1 ZBC(10,000,000 원자 단위)입니다. 여기에 예치금을 넣으면 바로 그 트랜잭션에 대한 기록이 열립니다(트랜잭션 봉투).
  • FundLongevity(유형 52). 어떤 계정이든 어떤 트랜잭션에든 자금을 낼 수 있습니다. 본문은 정확히 28바이트입니다. 대상 트랜잭션의 id(8바이트), 금액(8), 대상을 담은 블록의 높이(4), 대상의 크기(8, 본문과 메시지)입니다. 금액은 최소 0.1 ZBC여야 합니다.

첫 자금은 대상이 스냅샷 간격 하나, 즉 mainnet에서 172,800블록(약 30일)보다 젊을 때 도착해야 하며, 대상의 실제 높이와 크기를 명시해야 합니다. 이 기간 동안에는 모든 노드가 아직 대상을 가지고 있어 주장을 검사할 수 있습니다. 늦거나 잘못된 첫 자금은 수수료를 내는 무동작입니다. 수수료는 가져가고 아무것도 적립되지 않습니다.

이후의 추가 납부는 같은 크기를 명시해야 하며, 기록이 살아 있는 동안 언제든 할 수 있습니다. 그 가격은 가중 평균으로 기록의 가격에 섞입니다.

FundLongevity의 28바이트 본문, 첫 자금 기간, 그리고 두 개의 무료 간격.
FundLongevity의 28바이트 본문, 첫 자금 기간, 그리고 두 개의 무료 간격.

비용

기록이 열리면 대상의 크기와 MiB당 저장 가격(시작 시 0.05 ZBC)이 고정됩니다. 노드들은 어차피 대상 블록 이후 스냅샷 간격 두 개 동안 트랜잭션을 보관하므로, 그때까지 기록은 아무것도 내지 않습니다. 그 뒤로는 기간마다 한 번 다음을 냅니다.

rent = ceil(payload bytes × locked price ÷ 1,048,576), at least 1 unit

임대료는 예치금에서 가져가 롱제비티 풀에 입금되며, 롱제비티 풀은 코인베이스 추첨을 통해 매 블록 노드들에게 한 조각씩 지급합니다. 시작 가격에서 16바이트 페이로드는 기간당 77단위, 1,000바이트 페이로드는 4,769단위를 내므로, 더 큰 쪽이라도 최소 예치금 0.1 ZBC로 2,000개가 넘는 기간을 감당합니다. 기록의 돈이 0이 되면 기록은 풀리고, 그 트랜잭션은 다시 정리될 수 있습니다.

스냅샷은 자금이 적립된 트랜잭션을 그것을 담은 블록의 헤더와 함께 담으므로, 스냅샷에서 합류한 노드도 이를 보관합니다(스냅샷과 빠른 동기화).

기록 끝내기

임대료는 납부자들의 돈에서 선입선출로 빠져나갑니다. 가장 오래된 예치금을 다 쓴 뒤에 다음 것에 손을 댑니다. 기록은 누군가 여전히 비용을 내는 한 유지됩니다.

기록을 일찍 끝내려면, 돈이 아직 남아 있는 모든 납부자가 일반 CloseLongevity(유형 309)로 투표합니다. 그중 마지막 사람이 투표하면 기록이 닫히고 나머지는 롱제비티 풀로 갑니다.

  • 추가 납부를 하면 그 납부자의 투표는 철회되며, 새 납부자도 투표해야 합니다.
  • 키를 잃어버린 납부자는 그저 자기 돈이 떨어질 때까지 기록을 유지시킵니다.
  • 과금으로 아직 투표하지 않은 마지막 납부자의 돈이 다 쓰이면, 기록은 그 과금 블록에서 닫힙니다.

기록에 낸 것은 어떤 납부자에게도 돌아오지 않으므로, 누구도 다른 사람의 예치금을 가져갈 수 없습니다. CancelLongevity 유형(53)은 폐지되었으며, 모든 체인이 이를 거부합니다. ZooBC Foundation을 포함한 어떤 외부 당사자도 기록을 닫을 수 없습니다.

납부자들의 예치금은 가장 오래된 것부터 쓰입니다. 돈이 남은 모든 납부자가 투표하면 기록이 닫힙니다.
납부자들의 예치금은 가장 오래된 것부터 쓰입니다. 돈이 남은 모든 납부자가 투표하면 기록이 닫힙니다.

기록 조회

노드 API에는 기록과 가격을 위한 경로가 있습니다. /longevity, /longevity/quote, /accounts/<address>/survival, /accounts/<address>/objects, /objects/<id>입니다.

같이 보기