bitcoined

你给的官方文档是中文翻译的,不全,看看英文的:https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)

0. 下载

不解释了

1. 运行

此章节是中文wiki没有的。英文:https://en.bitcoin.it/wiki/Running_Bitcoin

运行后,Bitcoin 会作为服务启动,就类似 httpd 或者 mysqld 一样,此时 bitcoind 会在 127.0.0.1 监听 8332 端口的请求。

2. JSON-RPC

中文链接有误。

可以在下面链接查看 JSON-RPC:http://json-rpc.org/wiki/specification

顺便在看看 JSON: http://json.org
RPC(Remote Procedure Call)意思是远程过程调用,我们可以在本地直接调用远端的函数和功能,Procedure。调用的格式通常有:

  • XML-RPC: 所有的调用以 XML 格式进行,比较常见的就是 wordpress 的博客客户端,一般都是通过 XML-RPC 发布博客。
  • JSON-RPC:相比 XML 来说,JSON 更加轻量级,于是 bitcoind 使用 JSON-RPC 来和服务器端通讯。

3. 通讯

我们使用客户端操作 bitcoin 时(即和 bitcoin 服务器通讯),不需要引入 bitcoin 提供的任何类库,只需要对应语言的 JSON-RPC 库即可。或者再底层一些,只要有 HTTP 库即可。

JSON-RPC 的官网只提供了 Python 包, 由于我没有使用过 Java 的 JSON-RPC 库,在此我就不推荐了。你可以自行去 github 或者 sourceforge 搜索。

可以看看这个(英文,不过很好理解) http://json-rpc.org/wiki/specification,非常非常的简单,以至于你都不想使用 JSON-RPC 库了,或许一个 cURL 就已经绰绰有余力了。

我大致翻译一下规范:

请求 Request

发送给服务器的请求包括 3 个参数

  • method - 你想要调用的方法
  • params - 方法参数
  • id - 不解释

回应 Response

回应也是 3 个值:

  • result
  • error
  • id

示例

比如服务器端有一个方法,两数相加:add(num1, num2)

我们这样远程调用它

我们向服务器发送一个 json:

{
    "method": "add",
    "params": [
        1,
        2
    ],
    "id": 1
}

服务器会返回:

{
    "result": 3,
    "error": null,
    "id": 1
}
时间: 2024-11-05 14:42:45

bitcoined的相关文章