本文主要是介绍The Libra Blockchain-开发者文档-(六)AC准入模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
准入控制(AC)
准入控制(AC:Admission Control)是Libra的公共API接口,它用于接收来自客户端的公共gRPC请求。
概述
准入控制(AC)处理于来自客户的两种类型的请求:
- 提交交易 - 向关联的验证器提交交易。
- 更新最新分布式账本 - 查询存储,例如帐户状态,交易日志,验证等。
实施细节
准入控制(AC)实现两个公共API:
- 提交交易(提交交易请求)
- 将对请求执行多次验证:
- 首先检查交易签名。 如果此检查失败,AdmissionControlStatus::Rejected将返回给客户端。
- 然后由vm_validator验证交易。 如果失败,则将相应的VMStatus返回给客户端。
- 一旦交易通过所有验证,AC将从存储中查询发送人的帐户余额和最新序列号,并将其与客户端请求一起发送到内存池。
- 如果内存池返回 MempoolAddTransactionStatus::Valid,则会将AdmissionControlStatu::Accepted 返回给客户端,表示提交成功。 否则,将相应的AdmissionControlStatus返回给客户端。
- 将对请求执行多次验证:
- 更新最新分布式账本(更新最新分布式账本请求). 在准入控制AC中不执行额外的处理。
- 请求将直接传递到存储进行查询。
文件夹结构
.├── README.md├── admission_control_proto│ └── src│ └── proto # Protobuf 定义文件└── admission_control_service└── src # gRPC service source files├── admission_control_node.rs # Wrapper to run AC in a separate thread├── admission_control_service.rs # gRPC service and main logic├── main.rs # Main entry to run AC as a binary└── unit_tests # Tests
该模块与以下内容交互:
内存池组件,用于接收从客户端提交交易。 存储组件,用于查询验证器存储。
这篇关于The Libra Blockchain-开发者文档-(六)AC准入模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!