博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
The Libra Blockchain-开发者文档-(六)AC准入模块
阅读量:4172 次
发布时间:2019-05-26

本文共 1141 字,大约阅读时间需要 3 分钟。

准入控制(AC)

准入控制(AC:Admission Control)是Libra的公共API接口,它用于接收来自客户端的公共gRPC请求。

概述

准入控制(AC)处理于来自客户的两种类型的请求:

  1. 提交交易 - 向关联的验证器提交交易。
  2. 更新最新分布式账本 - 查询存储,例如帐户状态,交易日志,验证等。

实施细节

准入控制(AC)实现两个公共API:

  1. 提交交易(提交交易请求)
    • 将对请求执行多次验证:
      • 首先检查交易签名。 如果此检查失败,AdmissionControlStatus::Rejected将返回给客户端。
      • 然后由vm_validator验证交易。 如果失败,则将相应的VMStatus返回给客户端。
    • 一旦交易通过所有验证,AC将从存储中查询发送人的帐户余额和最新序列号,并将其与客户端请求一起发送到内存池。
    • 如果内存池返回 MempoolAddTransactionStatus::Valid,则会将AdmissionControlStatu::Accepted 返回给客户端,表示提交成功。 否则,将相应的AdmissionControlStatus返回给客户端。
  2. 更新最新分布式账本(更新最新分布式账本请求). 在准入控制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

该模块与以下内容交互:

内存池组件,用于接收从客户端提交交易。 存储组件,用于查询验证器存储。

转载地址:http://bayai.baihongyu.com/

你可能感兴趣的文章
IDEA自动去掉无用的import
查看>>
js数字转换成汉字
查看>>
MySQL不同存储引擎底层真正存储结构
查看>>
MySQL存储引擎底层常见面试题
查看>>
MySQL Explain执行计划详解
查看>>
索引最佳实践具体实例
查看>>
临时关闭MySQL缓存
查看>>
HBase学习和使用
查看>>
LSTM
查看>>
牛客网 数字游戏
查看>>
逆波兰表达式
查看>>
逆波兰表达式
查看>>
K-means中K值的选取
查看>>
kmeans优化算法
查看>>
牛客网 构造队列
查看>>
牛客网 跳石板
查看>>
牛客网 最大的奇约数
查看>>
python大坑:AttributeError: 'module' object has no attribute 'Workbook'
查看>>
python 协程
查看>>
在写计算器时学到的
查看>>