本文共 2829 字,大约阅读时间需要 9 分钟。
对应官方开发者文档:
Libra区块链是一个通过加密认证的分布式数据库,它基于Libra协议。本文档简要介绍了Libra协议中的关键概念,有关Libra协议中所有元素的详细说明,请参阅。
Libra区块链分布式网络由来维护。也称为验证器。验证人(验证节点)通过共同遵守来促成区块链中的交易的数据的一致。 Libra testnet展示了Libra区块链软件的早期原型—即Libra Core。Libra协议两个核心基本概念 - 交易和状态。 在任何时间点,区块链都具有一个“状态”。状态(或称为分布式账本状态)表示链上数据的当前快照。 在执行了交易后会更改区块链的一个状态。
图1.1交易状态变更.图1.1表示执行交易时在Libra区块链上状态的一个变化。例:在状态SN-1时,Alice拥有110Libra Coin,Bob拥有52个Libra Coin。当交易(TN)发生后,区块链生成一个新的状态。交易TN(发送10Libra Coin从Alice到Bob)发生,状态从SN-1到SN。可以看到Alice的Libra Coin减少10,Bob的Libra Coin增加10。新的状态(SN)显示更新后的Libra Coin余额,在图1.1中可见。
Libra协议使用Move语言来实现功能函数F的操作。
Libra区块链的用户执行提交交易来请求更改分布式账本的状态,在区块链上交易包含如下:
交易脚本是一个自定义的程序,脚本中交易逻辑与Libra区块链分布式数据中的相关内容进行交互。
分布式账本或者称为Libra区块链的全局状态是由区块链中所有账户的状态组成,在执行交易时,每个验证节点必须知道区块链中的分布式数据库的最新的全局状态。。
Libra区块链中的所有数据都保存在分布式节点的数据库中,那么每个节点中都会有一个版本号,版本号是64位无符号型整数,对应系统执行的交易数。
数据库中的版本号允许验证者如下操作:Libra账户包含Move模块和Move资源(资产)。它由账户的地址来标识。这就意味上每个账户的状态都包含代码和数据:
账户地址
Libra账户的是地址是256位值。用户使用数字签名后来发布地址。账户的地址需通过用户公钥Hash加密。用户(代表用户或者监管的客户端)要发送交易要求用户通过自己的私钥签名后进行发送,
Libra用户发布的地址数量没有限制。申请账户需要拥有足够Libra Coin,才能支付创建账户的费用。Libra区块链中所有的数据都以数据库副本的模式存储在各个节点中,存储用于记录相关交易及交易函数执行后结果以及整体区块链的全局状态,区块链上执行的交易数据通过不断增长的来保存,通过Merkle树中“叶”附加至树上。
在区块链中,客户端无条件信任它从其他节点过来的接收的数据。客户端可以查询账户余额,可以请求是否处理了特定的交易,等等。和其他的Merkle树一样,分布式账本历史记录中可提供特定交易的O(logn)-sized(大小)的证明,其中n是处理的交易的总数。
Libra区块链的客户端创建建议,并将他们提交到验证器节点。验证器节点(和其他验证器节点一起)运行共识协议,执行交易,并将交易和执行结果存储在区块链中。验证器节点将决定筛选那些交易通过何种顺序添加到区块链中。
图1.2验证器的逻辑组件图验证器节点包含以下逻辑组件:
准入控制(AC)
内存池
共识
网络中的验证器节点通过共识组件对交易数据块进行处理,且通过协商,达成执行结果一致。
执行
虚拟机(VM)
存储
转载地址:http://kayai.baihongyu.com/