5个版本 (3个破坏性更新)
| 0.4.0 | 2024年7月4日 |
|---|---|
| 0.3.0 | 2024年5月15日 |
| 0.2.1 | 2024年4月27日 |
| 0.2.0 | 2024年4月12日 |
| 0.1.0 | 2024年3月11日 |
#25 in #miden
81 每月下载次数
用于 miden-node
505KB
10K SLoC
Miden节点RPC
RPC 是一个对外组件,客户端可以通过它与节点交互。它接收客户端请求(例如,与链的最新状态同步或提交交易),执行基本验证,并将请求转发到适当的组件。RPC 是 Miden节点 的组件之一。
架构
待办事项
使用方法
安装RPC
RPC可以作为 Miden节点 的一部分进行安装和运行。
API
RPC 使用在先前提到的配置文件中设置的端口号上的 gRPC协议 来服务连接。以下是支持方法的简要描述。
CheckNullifiers
获取给定nullifier哈希的证明列表,每个证明作为稀疏Merkle树
参数
nullifiers:[Digest]– nullifier哈希数组。
返回
proofs:[NullifierProof]– nullifier证明数组,位置对应于请求中的位置。
GetBlockHeaderByNumber
通过给定的块号检索块头,可选地附带Merkle路径和当前链长度以验证其包含。
参数
block_num:uint32(可选) – 目标块的块号。如果未提供,将返回最新的已知块。
返回
block_header:BlockHeader– 区块头。
GetBlockByNumber
根据给定的区块编号检索区块数据。
参数
block_num:uint32– 目标块的区块编号。
返回
block:Block– 以 Miden 原生格式编码的区块数据。
GetNotesById
返回与提供的笔记 ID 匹配的笔记列表。
参数
note_ids:[NoteId]- 我们要查询的笔记 ID 列表。
返回
notes:[Note]- 与请求的 NoteIds 列表匹配的笔记列表。
GetAccountDetails
返回指定 ID 的账户的最新状态。
参数
account_id:AccountId– 账户 ID。
返回
account:AccountInfo– 账户的最新状态。对于公共账户,这将包括描述当前账户状态的完整细节。对于私人账户,只返回最新状态的哈希和最后更新时间。
SyncState
返回客户端可以用来同步到最新链状态的链对象(账户、笔记、nullifiers)的信息。
此请求返回包含请求数据的下一个块。它还返回 chain_tip,即链中的最新区块编号。客户端应重复这些请求,直到 response.block_header.block_num == response.chain_tip,此时客户端已完全同步到链。
每个请求还返回有关创建的新笔记、nullifiers 等的信息。它还返回链 MMR delta,可用于更新链 MMR 的状态。这包括链 MMR 顶峰和链 MMR 节点。
为了保护一定的隐私,笔记标签和 nullifiers 过滤器仅包含哈希的高部分。因此,返回的数据包含过多的笔记和 nullifiers,客户端可以在其端对其进行额外的过滤。
参数
block_num:uint32– 从此块开始向客户端发送更新。account_ids:[AccountId]– 账户过滤器。note_tags:[uint32]– 笔记标签过滤器。对应于真实值的最高 16 位。nullifiers:[uint32]– nullifiers 过滤器。对应于真实值的最高 16 位。
返回
chain_tip:uint32– 链中最新块的编号。block_header:BlockHeader– 第一个符合指定标准的笔记所在的块的区块头。mmr_delta:MmrDelta– 更新从request.block_num + 1到response.block_header.block_num的部分 MMR 所需的数据。accounts:[AccountSummary]– 自request.block_num + 1以来更新但不在response.block_header.block_num之后的账户摘要。transactions:[TransactionSummary]– 包含在request.block_num + 1之后但不在response.block_header.block_num之后的交易摘要。- 每个
TransactionSummary包含交易标识符transaction_id,执行该交易的账户的account_id,以及交易所在的block_num区块号。
- 每个
notes:[NoteSyncRecord]– 所有笔记以及从response.block_header.note_root到的 Merkle 路径列表。nullifiers:[NullifierUpdate]– 在request.block_num + 1和response.block_header.block_num之间创建的 nullifiers 列表。- 每个
NullifierUpdate包含 nullifier 和block_num,即与该 nullifier 对应的笔记被消耗的区块号。
- 每个
SubmitProvenTransaction
将证明交易提交到 Miden 网络。
参数
transaction:bytes- 使用 Miden 的原生格式编码的交易。
返回
此方法不返回任何数据。
许可证
本项目遵循 MIT 许可。
依赖项
~60MB
~1M SLoC