标签:操作 序列号 org 网络 参数 过程 width 描述 图片
为了更加深入的理解Libra的交易生命周期,我们将跟随一个交易的全过程,从其被提交到Libra validator始,直至其被添加到区块链上止。我们将“放大”来看每个validator逻辑组件及与其他组件之间的交互。
Libra客户端构造 原始交易 (此处称为T5raw),从Alice的账户中转移10Libra币到Bob的账户中。原始交易应包含以下字段:每个字段都通过超链接关联到词汇定义表。
客户端使用Alice的私钥对交易T5raw 签名 。签名后的交易T5 包括下列内容:
为了描述交易T5的生命周期, 我们有如下假设:
在本节中我们将讨论交易T5的生命周期, 从其被提交到Libra validator始,直至其被添加到区块链上止。
下图展示了validator 节点相关组件之间的交互链的相关节点。在熟悉交易生命周期的所有步骤后,你可以进一步了解各步骤中相应组件的交互信息。
注意:本图标中的所有箭头都起始于发起交互或操作的组件,终止于执行操作的组件。此处箭头 不表示数据的读取,写入或返回。
FIGURE 1.1 交易生命周期
1 — 客户端将交易T5 提交给validator V1 ,V1 的准入控制组件(AC)接受该交易。(客户端 → AC AC.1)
2 — AC 利用虚拟机组件 (VM) 执行查验,如签名验证,检查Alice账户余额是否充足,检查交易V1 是否 被重复广播等(AC → VM AC.2, VM.1)
3 — 当交易T5 通过查验后, AC 将交易T5 发送到to V1’的内存池(AC → 内存池 AC.3, MP.1)
4 — 内存池将交易T5 保存在内存缓冲区中。内存池内可能已经包含了从Alice账户地址发送的多个交易。
5 — 利用内存池共享协议, V1 将发送其内存池中所有交易(包括交易T5) 给其他validator(V2 to V100) 并将从其他validator接受到的交易存储在自身的内存池中(Mempool →其他 Validators MP.2)
6 — 作为本轮共识发起者V1 将从其内存池中提取一个区块,并通过共识组件复制分发给其他的validator。(共识组件 → 内存池MP.3, CO.1)
7 — V1 的共识组件负责协调所有validator发送的区块中交易的顺序。(共识 → 其他Validators CO.2).关于此处提出的共识协议LibraBFT,请参阅技术性文献Libra区块链中的状态机复制
###区块的执行和共识的达成
8 — 作为共识达成过程的一个步骤,交易区块(包括交易 T5) 被提交给执行组件。(共识 → 执行CO.3, EX.1)
9 — 执行组件通过虚拟机(VM)管理交易的执行。应注意,此处的执行是在达成共识前的推测性执行。(执行→ VM EX.2, VM.3)
10 — 在上述执行完成后,执行组件将交易区块将(包含T5)附加到 (分布式账本的历史)Merkle累加器 上,形成内存/临时版本Merkle累加器。执行(发起和推测)交易的结果会返回到共识组件。(共识 → 执行CO.3, EX.1).从共识指向执行的箭头表示该执行请求由共识组件发起。(为了减少歧义,本文中将不使用箭头表示数据流).
11 — (共识发起者)V1 试图与其他共识参与者,即其他validator就该区块的执行结果达成共识。(共识→ 其他 Validators CO.3)
###区块的提交
12 — 当对区块的执行结果达成共识并签名的validator数量上具有绝对优势时,V1‘的执行组件将从缓存中读取区块的推测性执行结果,并将区块中的所有交易提交到永久存储中。(共识 → 执行CO.4, EX.3), (Execution → Storage EX.4, ST.3)
13 — Alice账户现在的余额为100Libra币,序列号为6.如T5 被Bob重复广播,该交易将被拒绝,因为Alice账户的序列号(6)大于被重复广播的交易的序号(5)
在上一部分中, 我们举例说明了一个典型的交易生命周期,从其被提交到Libra validator始,直至其被添加到区块链上止。现在我们将更加深入的探究validator处理交易并响应请求时,组件间的交互。对下述人员,这些信息可能十分值得参考:
为叙述方便,我们假设客户端提交一个交易TN 给一个validatorVX.对每个validator组件,我们将在其相对应子章节中具体描述组件之间的交互。此处应注意,用以描述组件间交互的子章节顺序并未严格按照其执行顺序。组件间的大部分交互都与交易的执行有关,少数与客户端发出的(查询区块链上的已知信息)请求有关。
我们先来看validator 节点的核心逻辑组件:
每一小节结尾都附有Libra Core中的相应文档。
 不能入群请加管理微信,拉你进群=>
不能入群请加管理微信,拉你进群=>
标签:操作 序列号 org 网络 参数 过程 width 描述 图片
原文地址:https://www.cnblogs.com/x-poior/p/11216420.html