libra交易的生命周期

描述交易的生命周期,从客户端提交开始到交易在Libra区块链确认(引用官方图片):

交易的生命周期

接收交易

1. 客户端将交易提交给验证器 ,验证器的准入控制(AC)组件接收该交易。

AdmissionControlClient:submit_transaction -> AdmissionControlClient:submit_transaction_opt->
AdmissionControlService:submit_transaction -> AdmissionControlService:submit_transaction_inner

2. 验证检查

AdmissionControlService:can_send_txn_to_mempool->
VMValidator:validate_transaction->StorageRead:update_to_latest_ledger ->MoveVM:validate_transaction

3.加入到内存池

AdmissionControlService:add_txn_to_mempool->MempoolClient:add_transaction_with_validation->
MempoolClient:add_transaction_with_validation_opt->
MempoolService:add_transaction_with_validation

发布交易到其他验证器节点

4.内存池将交易保存到内存缓冲区中

Mempool:add_txn ->TransactionStore:insert

5. 内存池共享协议,将共享其内存池中的所有交易给其他验证器广播交易,并将从其他验证器接收的交易放入其自己的内存池中

SharedMempool:outbound_sync_task -> SharedMempool:sync_with_peers
SharedMempool:inbound_network_task ->SharedMempool:process_incoming_transactions

块提议

6.提议者/领导者将从其内存池中提取一个交易块,并通过其共识组件将此块作为提议复制到其他验证器

EventProcessor:process_new_round_event ->ProposalGenerator:generate_proposal ->MempoolProxy:pull_txns

7.共识模块负责在所有验证器之间协调提议块中交易的顺序

ConsensusNetworkImpl:broadcast_proposal ->RotatingProposer:process_proposal

区块执行和达成共识

8. 交易块被传递给执行组件

SyncManager:execute_and_insert_block-> BlockStore:execute_and_insert_block->
ExecutionProxy:compute->ExecutionProxy:execute_block_async-> VMExecutor:execute_block

9. 执行组件在虚拟机中管理交易的执行

BlockProcessor:process_command->TransactionBlock:queue_execute_block_response_sender

10.执行组件将块中的交易附加到Merkle累加器

VMExecutor::run-> VMExecutor:execute_block->VMExecutor:process_vm_outputs

11. 试图与参与共识的其他验证者就该块的执行结果达成共识

EventProcessor:process_winning_proposal->EventProcessor:process_vote->SyncManager:fetch_quorum_cert

区块提交

12. 提交块中的所有交易至持久存储

BlockProcessor:run ->BlockProcessor:save_blocks_to_storage

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值