-
已验证的数据结构和存储方案可解决在Windows 10系统中安装Oracle 11g时遇到的兼容性和最低环境要求不达标的问题
资源介绍
四、经验证的数据结构和存储
在执行事务之后,验证者将对逻辑数据模型的更改,转换为用于表示数据库的已验证数据结构[7、8、9]的新版本。
此数据结构的简短验证器是对账本历史的约束性承诺,其中包括新执行的事务。与事务执行一样,此数据结构的生成
也是确定性的。
共识协议使用这个验证器来同意事务的顺序及其结果的执行(我们将在第5节内容详细讨论共识)。作为提交事务区
块的一部分,验证者将短验证器集体签名至结果数据库的新版本。
使用这种集体签名,客户端可信任数据库版本代表数据库账本历史的完整、有效和不可逆状态。
客户端可查询任意验证者(或数据库的第三方副本)来读取特定的数据库值,并使用验证器以及简短的证明来验证结
果。
因此,客户端不需要信任执行查询的一方,以确保结果读取的正确性。
Libra协议中的数据结构基于Merkle树,并受到其他区块链的启发;但是,在某些情况下,我们做出了一些稍微不同
的决定,下面我们会进行强调。首先,我们简要讨论创建验证器的Merkle树方法。然后我们描述经验证的数据结
构,从数据结构的根开始,然后我们讨论其中的子结构。图3描述了数据结构,并提供了本节内容的可视化指南。
图片3: (1)账本历史结构的根哈希是系统完整状态的验证器,即(2)由法定人数验证者签署。当事务添加到数据
库时,提交到账本历史的验证器(第4.2节)将增长(用虚线箭头表示)。账本历史的每个子叶都提交至一个(3)
TransactionInfo结构。此结构承诺(4)签署的事务(Ti),(5)该事务(Ei,第4.5节)期间产生的事件列表,以及
(6)该事务 (Si, 第4.3节)执行后的状态。该状态是一颗稀疏Merkle二叉树,其中每个子叶上都有一个 (7)帐户斑点。