用curl玩转AMA Protocol:7个必知的RPC端点与返回结构详解
【免费下载链接】node项目地址: https://gitcode.com/GitHub_Trending/node95/node
如果你刚接触 AMA Protocol,想通过 curl 快速调用其 RPC 端点查询链上数据,这篇文章就是为你准备的。AMA Protocol 是一个面向 AI Agent 的隐私 Layer 1 公链,采用基于 MatMul 矩阵乘法的 UPoW 共识,出块时间仅 500ms,签名使用 BLS12-381,智能合约基于 WASM。本文将带你逐个掌握 7 个最常用的 RPC 接口,并详细拆解每个端点的返回 JSON 结构,让你无需任何 SDK 就能用 curl 玩转链上查询。
准备工作:快速了解 AMA Protocol RPC
AMA Protocol 节点(AmadeusD)内置了一个轻量级 HTTP 服务器(multiserver.ex),所有 RPC 端点都以/api/开头,返回 JSON 格式数据。你只需要一个 curl 命令即可调用:
curl -s https://mainnet-rpc.ama.one/api/chain/stats💡 测试网 RPC 地址为
https://testnet-rpc.ama.one,开发调试建议先连测试网。
节点内部还提供了一套 RPC 客户端封装(rpc_api.ex),服务端路由则集中在 multiserver.ex 中,想深入源码可以对照查看。
端点一:/api/chain/stats — 一键查看全网状态
这是最常用的"总览"接口,返回当前区块高度、供应量、验证者等核心指标,对应实现见 api_chain.ex。
curl -s https://mainnet-rpc.ama.one/api/chain/stats返回结构的关键字段:
| 字段 | 含义 |
|---|---|
height | 当前区块高度 |
tip_hash | 最新区块哈希(Base58) |
total_supply | 总供应量 |
circulating | 流通量 |
burned | 已销毁的 AMA |
tx_pool_size | 交易池待处理数量 |
pflops | 全网算力估算(PFLOPS) |
端点二:/api/chain/tip — 获取最新区块详情
想拿到链上最新一笔确认,直接查 tip 即可,返回当前链头 entry 的完整信息。
curl -s https://mainnet-rpc.ama.one/api/chain/tip返回结构要点:
entry.hash:区块哈希(Base58)entry.header.height:区块高度entry.header.signer:出块者公钥entry.tx_count:该区块包含的交易数entry.consensus.score:共识得分(≥0.67 表示已达最终性)
端点三:/api/chain/height/{height} — 按高度查询历史区块
想回看某个历史区块,把高度填进 URL 即可,非常适合写区块浏览器的分页逻辑。
curl -s https://mainnet-rpc.ama.one/api/chain/height/100000若加txs变体/api/chain/height_with_txs/{height}还能一并返回区块内的所有交易(见 multiserver.ex)。找不到时会返回{"error":"not_found"}。
端点四:/api/chain/tx/{txid} — 查询单笔交易状态
交易哈希通常以 Base58 编码,用这个端点可以查看交易是否上链、执行结果如何。
curl -s https://mainnet-rpc.ama.one/api/chain/tx/<TXID>返回结构包含:
hash:交易哈希tx.signer:发送方公钥tx.action.contract/tx.action.function:调用的合约与函数tx.action.args:调用参数列表receipt.success:执行是否成功receipt.result:执行结果metadata.entry_hash:所在区块哈希
配合/api/tx/submit_and_wait/{packed}?finalized=true还能提交交易并等待最终确认,转账场景可直接参考 rpc_api.ex 的封装写法。
端点五:/api/wallet/balance/{pk}/{symbol} — 查询钱包余额
这是新手最常用的端点:传入 Base58 公钥即可查询余额,第二个路径参数可以指定币种(默认 AMA)。
curl -s https://mainnet-rpc.ama.one/api/wallet/balance/<你的公钥>/AMA返回结构:
{ "error": "ok", "balance": { "symbol": "AMA", "flat": 5000000000, "float": 5.0 } }📌
flat是最小单位整数,float是带小数的展示值,转账时记得用flat精度。实现见 api_wallet.ex。
想查地址上所有资产,用/api/wallet/balance_all/{pk},会返回各币种余额数组。
端点六:/api/epoch/score — 查看全网矿工得分榜
AMA Protocol 的 UPoW 共识需要矿工求解 MatMul 矩阵运算,这个端点返回当前 epoch 的矿工算力得分排名(见 api_epoch.ex)。
curl -s https://mainnet-rpc.ama.one/api/epoch/score返回形如[[矿工公钥, 得分], ...]的数组,按得分降序排列。追加公钥(/api/epoch/score/{pk})可查询单个矿工得分。配合/api/chain/stats中的diff_bits与pflops字段,可以估算当前全网难度。
端点七:/api/contract/view/{contract}/{function} — 只读调用智能合约
AMA Protocol 支持 WASM 智能合约,这个 GET 端点可以零 gas 地只读调用任意合约函数,非常适合查询合约状态。
curl -s "https://mainnet-rpc.ama.one/api/contract/view/<合约哈希>/get"返回结构:
{ "success": true, "result": "5", "logs": [] }其中result是函数返回值(可能是 Base58 编码的二进制)。需要传参时,可以通过pk查询参数指定调用者身份。想了解合约开发,可以查看 contract_samples/ 目录下的 AssemblyScript 与 Rust 示例。
常见问题速查
Q1:返回 429 代表什么?说明触发了节点限流(rate_limiter.ex 中有窗口计数),降低请求频率即可。
Q2:返回not_found怎么办?链上数据不存在,或该节点启用了裁剪(pruner)且数据已被归档,可换主网 RPC 节点重试。
Q3:为什么有的返回值是 Base58?公钥、哈希等二进制数据统一用 Base58 编码输出,便于传输和展示,解析时可保持原样,切勿当作普通字符串处理。
Q4:如何本地起一个 RPC 测试节点?参考 README.md:clone 仓库后用TESTNET=true ./amadeusd启动本地测试网,把 RPC 指向http://127.0.0.1:80即可随意调试。
小结
以上 7 个 AMA Protocol RPC 端点覆盖了链状态、区块、交易、钱包、矿工与合约六大查询场景,配合 curl 足以完成绝大多数链上数据采集需求。先用测试网练手,再接入主网,别忘了控制请求频率、区分 Base58 编码,你就能把 AMA Protocol 的数据玩得明明白白。🎉
【免费下载链接】node项目地址: https://gitcode.com/GitHub_Trending/node95/node
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考