数据与存储
ZooBC 不仅保存支付,也保存数据。个人资料、发票、代币图标、一个小网页或一份大型档案,都能在链上或链旁找到自己的位置。链所保存的内容每个节点都必须存储,因此空间是要付费的:没有任何东西被免费且永久地保存,租金归承担保存工作的节点所有。
保存数据的四种方式
| 内容 | 大小 | 字节存放在哪里 | 文章 |
|---|---|---|---|
| 一行数据集记录 | 属性最长 256 字节,值最长 4,096 字节 | 在链状态中,每个节点上 | 数据集 |
| 一个 DFS 文件 | 最大约 64 KiB | 在它自己的交易中,由节点保存在链旁 | 链上文件(DFS) |
| 一个存储文件 | 最多 100,000 个 1 MiB 的分片 | 每个分片存放在五个已注册节点上;链上只有清单 | 去中心化存储池 |
| 一笔由押金保存的交易 | 一笔交易 | 在它所在的区块中,每个节点上 | 付费保存数据(存续) |
没有任何东西是免费保存的
每种数据每个周期支付一次租金:在 mainnet 上,一个周期为 172,800 个区块,约 30 天。下面的价格是起始值,席位可以通过投票把它们一直降到一个原子单位(价格投票)。
- 数据集租金。 数据集行和 DFS 文件按其字节数每 MiB 支付 0.05 ZBC,进入长效池。
- 文件租金。 存储文件每 MiB 支付 0.05 ZBC,不足 1 MiB 的部分按 1 MiB 计,进入存储池;存储池向证明自己持有分片的节点付酬。
- 存续租金。 保存一笔交易的记录在两个免费周期之后为其字节付费,进入长效池。
- 账户租金。 每个持有 ZBC 的账户支付 0.01 ZBC,进入长效池(账户租金与清理)。从 0.5.8 版本起,任何投票都不能把它提高到每个周期 10 ZBC 以上。
钱用完了,数据也就随之消失:数据集行被停用,存储文件被修剪,被保存的交易变为可修剪,无力支付的账户被清理,其零头转入长效池。正是租金把废弃账户和垃圾账户(包括密钥已丢失的账户)从每个节点都必须保存的状态中清除出去,而这一过程中不会损失任何 ZBC。
ZBC 从不销毁(ZBC 从不销毁)。长效池通过 coinbase 抽奖 在每个区块中向节点支付一部分(资金池)。租金没有任何部分归 ZooBC Foundation,也没有人因持有币而把它作为利息赚取。
历史与过去
在一条与快照挂钩的界限以下,节点会删除旧区块和旧交易,因此在 mainnet 上,运行中的节点保存 30 到 60 天的区块(历史修剪)。当前状态,例如余额和记录,不会以这种方式被修剪。
保存从区块 0 起每一份快照的,是去中心化存储,而不是每个节点,因此任何人都能重建过去任意一份快照时的状态(归档与读取过去)。
本类别的文章
- 数据集:小型记录,有所有者、押金和租金
- 链上文件(DFS):交易之内的小文件
- 去中心化存储池:大文件、其持有者和存储证明
- 付费保存数据(存续):让一笔交易在修剪之后仍被保存
- 历史修剪:节点删除什么、保留什么
- 归档与读取过去:快照与读取过去
另见
本主题下的文章
- 付费保存数据(存续)
存续押金如何让一笔交易及其所在区块在修剪之后仍保存在每个节点上,它的费用是多少,谁可以为它出资,以及记录如何结束。 - 历史修剪
ZooBC 节点会删除哪些旧区块和旧交易,始终保留哪些,以及为什么在 mainnet 上运行中的节点保存 30 到 60 天的区块。 - 去中心化存储池
大文件如何被切成 1 MiB 的分片,由一次共同抽签选出的五个已注册节点持有,每小时接受一次证明,并由租金支付费用。 - 归档与读取过去
ZooBC 的去中心化存储如何保存自区块 0 以来的每一份快照,使任何人都能重建并核对过去任意一份快照时的状态。 - 数据集
链上的小型记录:一个账户在另一个账户名下写入的属性及其值,归入带有所有者、押金地址和租金的对象之中。 - 链上文件(DFS)
DFS 文件是最大约 64 KiB 的小文件,其内容随交易一起传送,其记录是“dfs:”前缀下的一行数据集记录。