有大神会使用bitcoind吗?


bitcoind,不多解释,懂的人懂得。

有大神会用吗?特别是java调用bitcoind。如何使用。

官方API https://zh-cn.bitcoin.it/wiki/API_reference_(JSON-RPC)

看了老半天没看懂,java的尤其看不懂。

编程 java bitcoin api

wahha 11 years, 10 months ago

你给的官方文档是中文翻译的,不全,看看英文的: 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
}

4. 最后

再补充一个,bitcoin 支持的 API 调用列表(英文): https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list

enjoy it !!!

auron answered 11 years, 10 months ago

Your Answer