-
解决在Windows 10系统中安装Oracle 11g时遇到的兼容性问题以及不满足最低环境要求的问题,以达成账本状态的正常运行
资源介绍
二、逻辑数据模型
Libra区块链中的所有数据都存储在单一版本的数据库当中[14, 15]。版本号是与系统已执行的事务数相对应的无符号
64位整数。在每个版本i中,数据库都包含一个元组 (Ti, Oi, Si) ,它们分别表示事务 (Ti),事务输出(Oi)以及账本状
态 (Si)。给定一个确定性执行函数Apply,这个元组的含义是:对账本状态Si−1执行事务Ti会产生输出Oi以及新账本状
态Si,即Apply(Si−1, Ti) → ⟨Oi, Si⟩。
Libra协议使用Move语言来实现确定性执行函数(请参见第3节内容)。在本节内容中,我们将重点介绍版本化数据
库,它允许验证者:
1. 根据 新版本的账本状态执行事务;
2. 响应客户端有关当前和以前版本的账本历史记录的查询;
我们首先解释存储在单个版本中的账本状态的结构,然后讨论版本化账本历史视图(History view)的目的。
2.1 账本状态
账本状态代表了有关Libra生态系统的基本事实,包括每个用户在给定版本中持有的Libra币的数量。每个验证者必须
知道 新版本的账本状态,以便执行新的事务。
Libra协议使用基于帐户的数据模型[16]对账本状态进行编码。状态被构造为一个键值存储,它将帐户地址键映射到帐
户值。账本状态下的账户值是已发布Move资源和模块的集合。这个 Move资源存储数据值,而模块则存储代码。初
始帐户集及其状态在创始账本状态中指定(见第3.1节)。
帐户地址:帐户地址是一个256位的值。要创建新帐户,用户首先为签名方案生成一个新的验证/签名密钥对 (vk,
sk),并使用公共验证密钥vk的加密哈希作为帐户地址a = H(vk)。当从现有账户发送的事务调用这个
create_account(a) Move指令时,则这个新账户就会在账本状态中创建。这通常发生在一笔事务尝试将Libra发送到
尚未创建的地址a的帐户时。
在地址a中创建新帐户后,用户可使用私人签名密钥sk,签署要从该帐户发送的事务。该用户还可以在不更改其地址
的情况下,更改用于签署交易的密钥(例如,主动更改密钥或响应密钥可能被盗的情况)。
Libra协议不会将帐户链接到用户的真实身份(即没有KYC)。用户可通过生成多个密钥对来*创建多个帐户。由同
一用户控制的帐户没有固有的相互联系。该方案参照了比特币和以太坊,为用户提供了假名性 (又称半匿名)[19]。
- 上一篇: java招商银行接口文档,源码
- 下一篇: 招商银行的API函数(开发文档)