1 说明
2 API列表
3 RPC APIs
3.1 区块
3.1.1 取得最新块信息
3.1.2 取得块信息
3.1.3 取得块数量
3.1.4 取得块哈希
3.1.5 取得块模版
3.1.6 提交块
3.2 账户
3.2.1 取得地址账户
3.2.2 取得账户地址
3.2.3 取得账户所有地址
3.2.4 取得余额
3.2.5 取得账户收款金额
3.2.6 查询账户列表
3.2.7 列出账户的收款信息
3.2.8 转账
3.2.9 设定账户
3.3 钱包
3.3.1 备份钱包
3.3.2 加密钱包
3.3.3 填满密钥池
3.3.4 钱包锁定
3.3.5 钱包解锁
3.3.6 修改钱包密码
3.4 交易
3.4.1 创建原始交易
3.4.2 解码原始交易
3.4.3 取得原始交易信息
3.4.4 取得交易信息
3.4.5 取得交易输出
3.4.6 取得交易输出设定信息
3.4.7 列出锁定的未动用输出
3.4.8 列出指定块之后的交易
3.4.9 列出交易
3.4.10 列出未动用输出
3.4.11 锁定未动用输出
3.4.12 从账户付款
3.4.13 向多个地址付款
3.4.14 发布原始交易
3.4.15 付款
3.4.16 设定交易费
3.4.17 对原始交易签名
3.5 网络
3.5.1 新增节点
3.5.2 取得新增节点信息
3.5.3 取得连接数
3.5.4 取得节点信息
3.6 服务
3.6.1 取得客户端信息
3.6.2 帮助
3.6.3 停止服务
3.7 地址
3.7.1 新增多重签名地址
3.7.2 创建多重签名地址
3.7.3 导出私钥
3.7.4 创建新地址
3.7.5 创建找零地址
3.7.6 取得地址收款金额
3.7.7 导入密钥
3.7.8 查询地址列表
3.7.9 列出地址的收款信息
3.7.10 信息签名
3.7.11 地址验证
3.7.12 验证信息
3.8 采矿
3.8.1 取得当前难度
3.8.2 判断是否采矿
3.8.3 取得采矿性能
3.8.4 取得内存池信息
3.8.5 取得采矿信息
3.8.6 取得内存池原始交易ID
3.8.7 计算
3.8.8 设定是否采矿
4 HTTP REST

说明

2016-02-28 14:02:15
阿土
6647
最后编辑:阿土 于 2016-02-28 19:40:49
简介:BitCoin Core提供了JSON-RPC和RestFul API,本文整理和说明比特币核心API的接口定义和使用方法

bitcoind 本身提供了操作和控制各个服务的功能接口,以JSON-RPC方式提供调用。另外还集成了bitcoin-cli,可以在bitcoin-core客户端直接访问。默认服务是仅限本机调用的,可以通过配置开启远程访问

Java

让Java使用HTTP基本认证的最简单方法是创建default Authenticator

final String rpcuser ="..."; 
final String rpcpassword ="...";   
Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
         return new PasswordAuthentication (rpcuser, rpcpassword.toCharArray());
    }
 });



这样一来,任何JSON-RPC Java库(或 URL POSTs)都可以和Bitcoin 服务器通信了。


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


.NET (C#)

使用标准的httprequest/response 对象可与rpc服务通信。 用序列化/反序列化Json库可以轻松许多:

  • JayRock for .NET 4.0
  • Json.Net for .NET 2.0 and above

下面的例子使用Json.Net:

 HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://localhost.:8332");
 webRequest.Credentials = new NetworkCredential("user", "pwd");
 /// important, otherwise the service can't desirialse your request properly
 webRequest.ContentType = "application/json-rpc";
 webRequest.Method = "POST";
 
 JObject joe = new JObject();
 joe.Add(new JProperty("jsonrpc", "1.0"));
 joe.Add(new JProperty("id", "1"));
 joe.Add(new JProperty("method", Method));
 // params is a collection values which the method requires..
 if (Params.Keys.Count == 0)
 {
  joe.Add(new JProperty("params", new JArray()));
 }
 else
 {
     JArray props = new JArray();
     // add the props in the reverse order!
     for (int i = Params.Keys.Count - 1; i >= 0; i--)
     {
        .... // add the params
     }
     joe.Add(new JProperty("params", props));
     }
 
     // serialize json for the request
     string s = JsonConvert.SerializeObject(joe);
     byte[] byteArray = Encoding.UTF8.GetBytes(s);
     webRequest.ContentLength = byteArray.Length;
     Stream dataStream = webRequest.GetRequestStream();
     dataStream.Write(byteArray, 0, byteArray.Length);
     dataStream.Close();
 
 
     WebResponse webResponse = webRequest.GetResponse();
 
     ... // deserialze the response
更多请参见bitcoin wiki中文版


变更记录
2016-02-28阿土  补充基本说明和调用方式
51chain是什么

51chain.net
恒生研究院旗下区块链技术社区

让区块链开发变简单

联系我们
联系人: 平风
电话: 0571-26691754
Email: niezx@hundsun.com
QQ: 251048392