1. 概述

账本是hyperchain平台中的重要模块,负责区块链账本数据的维护与组织。账本数据可以分成两部分:

  • 区块链数据
  • 账户数据

其中,区块链数据包括:区块、交易、回执等数据。这部分也就是我们传统意义上所说的区块链。而后者指代的是区块链上所有账户状态的集合,该状态集统称为世界状态。由于需要支持智能合约,因此hyperchain与以太坊一样,摒弃了比特币的UTXO模型而采用账户模型来组织数据,因而这部分数据称为账户数据。

区块链数据主要通过区块的形式进行串联。所有区块被从后向前有序地链接在一个链条里,每一个区块都指向其父区块。区块中包含了一批交易,由共识模块负责统一打包并定序。区块链节点在接收到一个区块之后,在原有的账户状态基础上,依次执行交易,在此期间读/写相关账户的状态数据。一笔交易执行结束,也就意味着区块链状态进行了一次变迁。

每一笔交易,在hyperchain中都会有一个对应的交易回执或者非法交易记录来表示最终的执行结果。倘若这笔交易是一笔合法的交易,则执行结束后,会将该交易执行的结果记录在交易回执中。反之,会将错误原因记录在一条非法交易记录中。

账本中各部分大体的逻辑关系可以如下图所示。

1. 概述 - 图1