ZooBC 위키
데이터와 저장소

체인 위의 파일 (DFS)

ZooBC에는 파일을 보관하는 방법이 두 가지 있습니다. DFS 파일은 작은 내용을 위한 것입니다. 파일은 자기 트랜잭션 안에 담겨 전달되고, 체인은 이를 소유자의 데이터셋 행으로 기록합니다. 더 큰 파일은 분산 저장소로 가며, 체인에는 결코 닿지 않는 조각으로 잘립니다. 이 문서는 DFS 파일을 다룹니다.

기록과 내용

어떤 소유자가 어떤 경로에 둔 DFS 파일은 데이터셋 행 (owner, owner, "dfs:" + path)입니다. 설정자와 수신자는 모두 소유자이고, 속성은 dfs: 뒤에 경로를 붙인 것입니다. 행의 값은 메타데이터 기록을 16진수로 적은 것입니다.

  • 내용의 SHA3-256 해시와 크기
  • 권한(0644)
  • 타임스탬프 두 개
  • 청크의 수와 각 청크의 해시

내용 자체는 트랜잭션 본문 안에 담겨 전달됩니다. 본문은 최대 65,536바이트이므로 DFS 파일은 최대 약 64 KiB를 담습니다. 노드들은 그 바이트를 체인 옆의 로컬 청크 테이블에 보관하며, 이는 합의 상태의 일부가 아닙니다. 체인의 행이 해시를 담고 있으므로 누구나 내용을 그것과 대조해 확인할 수 있습니다.

경로

경로는 /로 시작하며 길이는 최대 1,024바이트입니다. //, .., NUL 바이트, 캐리지 리턴, 줄 바꿈을 포함할 수 없습니다. 끝의 /는 떨어지므로 /a/b/와 /a/b는 같은 파일을 가리킵니다. dfs:나 dfs:dir: 아래의 행은 DFS 트랜잭션만 기록할 수 있으며, 둘 중 어느 접두사든 SetupAccountDataset은 거부됩니다.

만들기, 갱신, 삭제

트랜잭션유형하는 일
DFSCreateFile8경로에 내용과 함께 파일을 만듦
DFSUpdateFile264같은 경로의 내용을 교체함
DFSDeleteFile520파일을 제거함

이미 있는 파일 위에 만들기, 그리고 없는 파일의 갱신이나 삭제는 수수료를 내는 무동작입니다. 수수료가 부과되고 아무것도 바뀌지 않습니다. 따라서 앱은 만들기와 갱신 중 하나를 고르기 전에 그 경로의 행을 읽어야 합니다.

임대료와 환불

DFS 행은 다른 것과 다를 바 없는 데이터셋 객체입니다. 누구나 자금을 넣을 수 있는 자체 예치금 주소(ZBS_…)가 있으며, 자기 바이트(속성과 16진수 값)에 대해 기간마다 데이터셋 임대료를 냅니다. 시작 가격에서는 mainnet 기준 기간당 MiB당 0.05 ZBC입니다. 임대료는 예치금에서, 그다음 소유자에게서 가져가며 롱제비티 풀에 입금됩니다. 둘 다 낼 수 없으면 다른 데이터셋과 마찬가지로 행이 비활성화됩니다.

DFS 파일을 삭제하면 소유자를 포함한 각 납부자가 예치금 중 자기가 쓰지 않은 부분을 돌려받습니다. 돈은 선입선출로 소비됩니다. 가장 오래된 납부금을 다 쓴 뒤에 다음 것에 손을 대므로, 가장 최근의 납부자들이 가장 많이 돌려받습니다.

DFS 파일인가, 저장된 파일인가

DFS 파일저장된 파일
크기최대 약 64 KiB1 MiB 조각 최대 100,000개
내용트랜잭션 안보유 노드 다섯 개의 조각, 체인에는 결코 없음
체인에 있는 것dfs: 아래 행 하나매니페스트: 루트, 크기, 조각 id
변경같은 경로에서 갱신과 삭제새 내용은 새 루트를 가지므로 새 파일
임대료가 가는 곳롱제비티 풀스토리지 풀
접근 통제없음: 내용이 공개 트랜잭션 안에 있음허용 목록이 있는 비공개 플래그

어느 방법도 ZooBC Foundation의 컴퓨터나 업로드한 사람의 컴퓨터에 의존하지 않습니다.

파일을 보관하는 두 방법: 트랜잭션 안의 DFS 파일, 또는 노드 다섯 개가 보관하는 조각으로 잘린 저장된 파일.
파일을 보관하는 두 방법: 트랜잭션 안의 DFS 파일, 또는 노드 다섯 개가 보관하는 조각으로 잘린 저장된 파일.

같이 보기