开发环境和工具

1. window 10 64
2. 比特核心钱包:bitcoin core 64
配置过程
1. 下载比特币核心钱包,下载链接https://bitcoin.org/en/download
2. 安装完不要运行。启动测试网络,这个需要下的数据比较少,大概10G。如图,第二个启动项
3. 启动后会弹出如图页面:

 选择数据存放的位置(正式环境需要100G,随着时间而增加),这个地址下面还需要使用,请记住。
4. 同步数据,如下图所示

 下边进度条消失就是同步完了。
5. 配置rpc。在数据存放位置新建一个文件名称是bitcoin.conf,内容如下
testnet=0
server=1
rpcuser=wang
rpcpassword=123456
rpctimeout=30
rpcport=18332
rpcconnect=127.0.0.1
testnet=0是测试网络,正式环境去掉这一行,并把rpcport=18332改为rpcport=8332
6. 代码使用了jsonrpc4j,maven依赖如下
<dependency>
<groupId>com.github.briandilley.jsonrpc4j</groupId>
<artifactId>jsonrpc4j</artifactId>
<version>1.1</version>
</dependency>
6.1. 简单公用类
public class ClientUtil {

    public static JsonRpcHttpClient getClient() {
JsonRpcHttpClient client = null;
try {
String cred = Base64.encodeBytes(("wang" + ":" +"123456").getBytes());
Map<String, String> headers = new HashMap<String, String>(1);
//身份认证
headers.put("Authorization", "Basic " + cred);
client = new JsonRpcHttpClient(new URL("http://127.0.0.1:18332"),headers);
} catch (MalformedURLException e) {
e.printStackTrace();
}
return client;
} public static Object result(String command, Object[] objects) {
JsonRpcHttpClient client = ClientUtil.getClient();
Object result = null;
if(client != null) {
try {
result = client.invoke(command, objects,Object.class);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
return result;
}
}
6.2. 发送比特币
   @Test
public void sendfrom() {
String result = (String) ClientUtil.result("sendfrom", new Object[]{"","2MzFix1Fnndi1wAvg9B7dLfRgL25FuC4J7x","0.0001"});
System.out.println(result);
}
第二个参数是对方的地址,第三个参数是金额。
6.3. 生成一个地址,并监测对方是否发送
    /**
* 生成一个收款地址,等待接收
*/
@Test
public void newAddressAndReceived() {
String result = (String) ClientUtil.result("getnewaddress", new Object[]{""});
System.out.println(result); while (true) {
Double received = (Double) ClientUtil.result("getreceivedbyaddress", new Object[] {result});
if(received > 0) {
System.out.println(received);
break;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
7. 免费领取测试网络比特币地址:https://testnet.coinfaucet.eu/en/
    api:https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
 

通过rpc访问比特币核心钱包的更多相关文章

  1. [翻译]QT core wallet manual 狗狗币核心钱包使用教程

    译注:比特币没赶上可以玩狗狗币啊,水电厂包不起可以用CPU挖啊.为了顺应时代潮流,了解一下区(fa)块(heng)链(cai)和加密货币技术,准备从研究狗狗币开始.网上找了一圈没有看到很好的入门级教程 ...

  2. dubbo入门学习(一)-----分布式基础理论、架构发展以及rpc、dubbo核心概念

    一.分布式基础理论 1.什么是分布式系统? <分布式系统原理与范型>定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统” 分布式系统(distributed ...

  3. 最著名的著名的比特币BTC钱包地址-中本聪的钱包

    最著名的著名的比特币BTC钱包地址-中本聪的钱包1.比特币创始人中本聪 1PTFYUG6nCzRrByoRfGT5kefUNuZjNF84o这个地址还是比特币的创世地址,比特币从未移动过,其中的50币 ...

  4. 04.UTXO:未使用的交易输出,比特币核心概念之一

    在比特币系统上其实并不存在“账户”,而只有“地址”.只要你愿意,你就可以在比特币区块链上开设无限多个钱包地址,你拥有的比特币数量是你所有的钱包地址中比特币的总和.比特币系统并不会帮你把这些地址汇总起来 ...

  5. 比特币系列钱包的UTXO总结

    1.通过比特币钱包的WalletNotify配置来处理 本钱包内的交易信息的 推送.BlockNotify数据更多,不适合交易所的监听

  6. hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以及HTTP访问。而随着hadoop周边组件的增多,完全记不住哪个端口对应哪个应用,特收集记录如此,以便查询。这里包含我们使用到的组件:HDFS, YARN, Hbase, Hive, ZooKeeper:

    组件 节点 默认端口 配置 用途说明 HDFS DataNode 50010 dfs.datanode.address datanode服务端口,用于数据传输 HDFS DataNode 50075 ...

  7. [币严区块链]数字货币交易所之比特币(BTC)钱包对接 | 自建节点JSON-RPC访问

    BTC钱包对接流程 一.   部署BTC钱包节点 二.   分析BTC钱包的API 三.   通过JSON-RPC访问BTC钱包API 四.   部署测试 一.部署钱包节点 交易平台对接BTC之前,要 ...

  8. BTC钱包对接流程

    BTC钱包对接流程: 部署钱包节点 分析钱包的API 通过JSON-RPC访问钱包API 部署测试 1.部署钱包节点 虚拟币交易平台对接所有的虚拟币之前,都要在自己的服务器上部署一个钱包节点,首先要找 ...

  9. 比特币客户端Electrum使用介绍

    简介 比特币的客户端很多,为什么选择Electrum. 首先Electrum真的很轻量,安装马上可以用,不用下载几百G的区块链账本.我之前安装bitcoin核心客户端,这是个完整节点.下载账本都要好多 ...

随机推荐

  1. 03-c#入门(简易存款利息计算器v1.0)

    本想把练习题做了的结果放上来,不过发现附录是有答案的,就算了吧,自己做了没问题就行了哈.之前提到过,要是有朋友有想法,需要做小工具我可以帮忙实现,不过貌似大家都很忙.SO,自己学完第4章后,决定做一个 ...

  2. Shopping(山东省第一届ACM省赛)

    Shopping Time Limit: 1000MS Memory limit: 65536K 题目描述 Saya and Kudo go shopping together.You can ass ...

  3. 用svg制作loading动画

    首先说明:由于各浏览器对svg动画事件支持不统一,此loading动画在Firefox,Opera,Chrome中均没有问题,IE和Safari中有问题,可能是不支持SIML写动画的语法, 但是用Ca ...

  4. mvc action controller area

    获取控制器名称: ViewContext.RouteData.Values["controller"].ToString(); 获取Action名称: ViewContext.Ro ...

  5. SpringMVC国际化

    如何将我们网站的其它内容(如菜单.标题等)做国际化处理呢?这就是本篇要将的内容->国际化. 一.基于浏览器请求的国际化实现: 首先配置我们项目的springservlet-config.xml文 ...

  6. 2015.05.14:codesmith

    安装: 安装好codesmith会有两个软件:一个编译器(CodeSmith Generator Explorer),一个生成工具(CodeSmith Generator Studio) 破解: 一般 ...

  7. Salesforce 数据清洗

    新系统上线后,需要导入历史数据,但是旧数据格式,数据缺失,数据错误,奇异值,属性归类与新系统有很大的gap.因此我们需要建立一套数据动态清洗规则给Salesforce系统,通过这些规则自动清洗导入数据 ...

  8. (转)TortoiseGit(乌龟git)保存用户名密码的方法

    返回博客列表 转 TortoiseGit(乌龟git)保存用户名密码的方法 元谷 发布时间: 2014/05/03 23:07 阅读: 20529 收藏: 21 点赞: 12 评论: 3 window ...

  9. Spark Streaming源码解读之State管理之UpdataStateByKey和MapWithState解密

    本期内容 : UpdateStateByKey解密 MapWithState解密 Spark Streaming是实现State状态管理因素: 01. Spark Streaming是按照整个Bach ...

  10. 常用linux维护命令

    cat /etc/issue  查看linux版本信息