钱包数据,单一文件,db 存储;

内核数据,单一文件,db 存储;

内存池,单一文件,简单文件存储;

节点联接,单一文件,简单文件存储;

黑名单,单一文件,简单文件存储。

当前,钱包数据约等于内核数据的十二分之一。

存储方式:

  • Key-Value 数据库
  • JSON 文件

Key-Value 典型代表有链、钱包;

JSON 文件典型代表有黑名单、交易池。

数据分类:

区块链网络中的每一个全节点,在网络中运行一段时间之后都会在本地存储上留下一些数据,我们可以按照历史和现在把它们分为两类:

  • 代表历史的持久化数据,原生数据 - 区块数据和交易数据都是历史,历史是从 Genesis 到达当前状态的路径。原生数据

  • 代表现在的状态数据,衍生数据 - 节点从 Genesis 处理到当前高度的所有区块和交易后形成的最终结果。状态随着区块的增加一直处于变化之中,交易是造成变化的原因。最常见的有 UTXO 集合。衍生数据

共识协议的作用是通过一系列的消息交换,保证每一个节点看到的当前状态是相同的,而实现这个目标的方式是保证每一个节点看到的历史是相同的。

只要历史相同(即所有交易的排序相同),处理交易的方式相同(把交易放在相同的确定性虚拟机里面执行),最后看到的当前状态就是相同的。

当我们说“区块链具有不可篡改性”的时候,指的是区块链历史不可篡改,相反,状态是一直在变化的。

不同的区块链保存历史和状态的方式不同的,其中的差异使得不同的区块链形成了各自的特点。

任意时刻的状态都是历史的一个子集,历史和状态包含的数据类型是同一维度的。

只要有Genesis和交易历史,任意时刻的历史状态都可以重新被计算出来(不考虑计算需要的时间)。

衍生数据是指原生数据被记录、存储后,经过算法加工、计算、聚合而成的系统的、可读取、有使用价值的数据。

原生数据是指数据从0到1的过程;

衍生数据是从1到f(1)的过程。

数据存储,比较关心:

用什么方式存,用什么数据库、存什么数据、表结构。

results matching ""

    No results matching ""