Libra客户端API基于JSON-RPC协议。该规范定义了客户端API端点和类型,并提供了使用示例。目前官方实现的Java、Go、Python SDK均基于JSON-RPC接口实现。
已发布的稳定的方法列表(除非特别说明,该方法需要所有参数):
JSON-RPC是一种无状态、轻量级远程过程调用(RPC)协议。更多细节请参考JSON-RPC规范。
JSON-RPC响应对象通过以下字段进行扩展:
网络链id,例如,测试网络链id是2 |
服务端最新的账本版本号 |
服务端最新的账本时间戳(微秒级) |
可以使用此信息来验证网络中节点的活动/状态:如果时间戳或版本是旧的,这意味着请求命中了一个完整的节点,而不是最新的。
JSON-RPC协议允许对请求进行批处理。可以将任意数量的请求(默认情况下最多20个)合并成单个批处理并提交给服务器。这些请求将在单个请求上下文中一起处理。
如果在请求期间发生错误,它们将在error对象中返回,如:中定义的那样。对于任何无效的请求或参数请求,将返回一个带有人类可读信息的标准错误代码和消息。
除非下面特别提到,Libra JSON-RPC对于一般的服务器端错误将返回默认的错误代码-32000。在“message”和“data”字段中可能会返回更多的信息,但这并不能保证。
我们使用URI版本控制来版本化我们的API,当前版本是v1。例如,要命中testnet,服务器url是:。你可以查看api更新日志()了解更多关于API的变化。
将已签名的交易提交到一个完整的节点。
创建“data”参数的步骤:
-
iii. 合并以上两个字节
-
使用
Ed25519
和账户私钥签名消息 -
序列化SignedTransaction为字节,然后将十六进制编码字符串作为已签名交易的
data
参数。
- 虽然提交无效的交易会立即返回错误,但是提交成功并不意味着交易将被成功执行。 ,以确定交易是否被执行。
- 在Libra中没有部分执行,因此交易要么完全有效,要么根本没有效果。
- 有可能一个交易在成功提交后不能执行,因此你不能通过get_account_transaction方法找到它。为了避免无休止的等待,客户端应该设置一个合理的交易到期时间戳(RawTransaction#expiration_timestamp_secs),客户端可以继续尝试get_account_transaction,并在响应中使用交易到期时间戳检查libra_ledger_timestampusec。如果传递了到期时间戳,交易将不会被执行,因此客户端可以安全地用新的到期时间戳重新构造交易并再次提交。
交易过程中的错误由不同的错误代码表示:
内存池错误:不合法的序列号 |
内存池错误:帐户达到每个帐户的最大容量限制 |
内存池错误:无效更新(只gas价格上涨被允许) |
内存池错误:交易没有通过虚拟机验证 |
从这个查询的交易版本开始 |
限制返回的交易数,最大值为1000 |
如果设置为true,也会为每个交易获取事件(events) |
获取给定帐户地址的最新帐户信息。
十六进制编码的账户地址 |
获取由给定序列号的帐户发送的交易。
十六进制编码的账户地址 |
如果设置为true,也会为每个交易获取事件(events) |
获取该帐户发送的所有交易。
十六进制编码的账户地址 |
如果设置为true,也会为每个交易获取事件(events) |
获取区块链/账本的元数据。
交易版本,这个参数是可选的,默认是服务端最新的交易版本号 |
获取给定事件流的事件。
一个事件流全局唯一的标识符 |
- 对于与货币相关的事件,调用
get_currencies
获取事件键(例如:与LBR兑换汇率改变的事件键)。
返回事件对象()的数组。
获得Libra区块链支持的各种货币的信息。