Libra区块链由分布式的Validator节点网络维护, 或简称为Validator。Validator集体遵循共识协议 决定区块链中交易的进行次序。
Libra测试网络是Libra区块链项目早期原型,即Libra Core的Demo 。
交易和状态
Libra协议的两个核心基本概念为交易和状态在任一时间点,区块链都有一个所谓的状态。状态(或成为分布式账本状态)表示区块链上数据此时的快照。交易的执行会改变区块链的状态。
图 1.1 交易状态变更.
图 1.1 展示了执行交易时,Libra区块链的状态变化。例如,在状态 SN-1 时,Alice 的余额为110 Libra币, Bob的余额为52 Libra币.交易发生后,区块链生成一个新的状态。在状态 SN-1 的前提下,交易 TN 发生,则状态由 SN-1 变更为 SN 。Alice的余额减少10Libra币,Bob的余额增加了10Libra币新的状态SN 展示了状态更新后的账户余额情况。在图1.1中:
交易
Libra区块链客户端通过提交交易请求来更新分布式账本状态。区块链上一个签名交易包括:
交易脚本是任意包含对交易逻辑编码的程序,能够与Libra区块链中发布的数字资产进行交互。
分布式账本状态
分布式账本状态,又称为Libra区块链全局状态,是区块链上所有账户状态的集合。想要执行交易,每个Validator必须获得区块链上分布式数据库的最新全局状态。更多见版本化数据库.
版本化数据库
Libra区块链上的所有数据都存储在一个单一版本化的分布式数据库上。版本号为无符号的64位整数,与系统内已经执行的交易数量相对应。
版本化数据库允许Validator:
账户
Libra账户包括Move模块和Move资源。由账户地址标识。这也意味着每个账户的状态都包含代码和数据两方面。
账户可以包含任意数量的Move资源和Move模块。
账户地址
Libra账户地址为一个256位的值。用户可以使用电子签名来声明地址。对于一个账户,其地址由用户的公钥通过密码学Hash(或托管的客户端)生成,用户必须通过相应的私钥签名才能从此账户发起交易。
Libra对用户的账户地址的数量不做限制。但申请新账户地址时,必须通过另一Libra币充足的账户支付申请费用。
证明
Libra区块链上的所有数据都存储在一个单一版本化的分布式数据库上,存储被用来对交易区块和交易结果的持续确认。区块链是一个不断增长的Merkle交易树. 每次区块链上有新的交易执行,交易树都会增加一片“叶子”。
区块链上存储的每个操作都可以进行加密验证,结果性证明也可以证实没有数据缺损。例如,如果客户端发送了对最新的 n 笔交易的查询请求,证明可以验证查询响应中没有遗漏任何一笔交易记录。
Validator 节点 (validator)
Libra区块链的客户端创建交易并提交到Validator节点。Validator节点(和其他Validator节点共同)运行共识协议,执行交易,并将交易和执行结果存储在区块链中。Validator节点判定哪些交易可以被添加到区块链上,以及以何种次序添加。
图 1.2 VALIDATOR逻辑组件
Validator节点 包括以下逻辑组件:
准入控制 (AC)
内存池
共识
执行
虚拟机 (VM)
存储
存储被用来持久化保存已确认的交易区块和交易结果;
更多Validator组件与其他组件的交互信息,请参考交易生命周期.
参考:
欢迎页.
My First Transaction — Guides you through executing your very first transaction on the Libra Blockchain using the Libra CLI client.
Getting Started with Move — Introduces you to a new blockchain programming language called Move.
Life of a Transaction — Provides a look at what happens “under the hood” when a transaction is submitted and executed.
Libra Core Overview — Provides the concept and implementation details of the Libra Core components through READMEs.
CLI Guide — Lists the commands (and their usage) of the Libra CLI client.
Libra Glossary — Provides a quick reference to Libra terminology.
翻译:Jadris Lau 校对:Zhe Wang