每个小蚁节点 AntSharesCore-CLI 都可选的提供了一套 API 接口,用于从节点获取区块链数据,使得开发区块链应用变得十分方便。接口通过 JSON-RPC 的方式提供,底层使用 HTTP/HTTPS 协议进行通讯。要启动一个提供 RPC服务的节点,可运行以下命令:
dotnet AntSharesDaemon.dll /rpc
若要通过 HTTPS 的方式访问 RPC 服务器,需要在启动节点前修改配置文件 config.json,并设置域名、证书和密码:
{
"ApplicationConfiguration": {
"DataDirectoryPath": "Chain",
"NodePort": 10333,
"WsPort": 10334,
"UriPrefix": [ "https://*:10331", "http://*:10332" ],
"SslCert": "YourSslCertFile.xxx",
"SslCertPassword": "YourPassword"
}
} JSON-RPC 服务器启动后,会监听 TCP 端口,默认端口如下。P2P 和 WebSocket 的端口详见 小蚁节点介绍。
| 主网(Main Net) | 测试网(Test Net) | |
|---|---|---|
| JSON-RPC HTTPS | 10331 | 20331 |
| JSON-RPC HTTP | 10332 | 20332 |
| 方法 | 参数 | 说明 | 备注 |
|---|---|---|---|
| getbalance | <asset_id> | 根据指定的资产编号,返回钱包中对应资产的余额信息 | 需要打开钱包 |
| getbestblockhash | 获取主链中高度最大的区块的散列 | ||
| getblock | <hash> [verbose=0] | 根据指定的散列值,返回对应的区块信息 | |
| getblock | <index> [verbose=0] | 根据指定的索引,返回对应的区块信息 | |
| getblockcount | 获取主链中区块的数量 | ||
| getblockhash | <index> | 根据指定的索引,返回对应区块的散列值 | |
| getconnectioncount | 获取节点当前的连接数 | ||
| getrawmempool | 获取内存中未确认的交易列表 | ||
| getrawtransaction | <txid> [verbose=0] | 根据指定的散列值,返回对应的交易信息 | |
| gettxout | <txid> <n> | 根据指定的散列和索引,返回对应的交易输出(零钱)信息 | |
| sendrawtransaction | <hex> | 广播交易 | |
| sendtoaddress | <asset_id> <address> <value> [fee=0] | 向指定地址转账 | 需要打开钱包 |
| submitblock | <hex> | 提交新的区块 | 需要成为共识节点 |
一次典型的 JSON-RPC GET 请求格式如下:
下面以获取主链中区块的数量方法为例。
请求 URL:
http://somewebsite.com:10332?jsonrpc=2.0&method=getblockcount¶ms=[]&id=1
发送请求后,将会得到如下的响应:
{
"jsonrpc": "2.0",
"id": 1,
"result": 909129
}一次典型的 JSON-RPC Post 请求的格式如下:
下面以获取主链中区块的数量方法为例。
请求 URL:
http://somewebsite.com:10332
请求 Body:
{
"jsonrpc": "2.0",
"method": "getblockcount",
"params": [],
"id": 1
}发送请求后,将会得到如下的响应:
{
"jsonrpc": "2.0",
"id": 1,
"result": 909122
}你可以用 Chrome 扩展程序中的 Postman 来方便地进行测试(安装 Chrome 扩展程序需要科学上网),下面是测试截图

