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