java使用JSON-RPC进行BTC、LTC钱包开发
1、首先在本地安装BTC(LTC)钱包,安装包下载地址。
2、在数据文件夹中新建bitcoin.conf(litecoin.conf),默认数据文件夹位置在 C:\Users\Administrator.PC-20170606QNRN\AppData\Roaming\BitCoin
3、打开新建的配置文件,输入以下内容
rpcuser=userrpc
rpcpassword=userpassword
rpcallowip=127.0.0.1
rpcport=61315
server=1
4、打开钱包应用程序,通过cmd命令:netstat -ano|findstr "61315"
由此可见此端口已打开。
5、新建JAVA工程,创建两个类:CoinUtils.java,Constants.java
添加MAVEN依赖
<dependency> <groupId>com.github.briandilley.jsonrpc4j</groupId> <artifactId>jsonrpc4j</artifactId> <version>1.1</version> </dependency>
6、代码如下
package com.ant.wallet;public class Constants {public static String RPC_USER = "userrpc";public static String RPC_PASSWORD = "userpassword";public static String RPC_ALLOWIP = "127.0.0.1";public static String RPC_PORT = "61315";
}
package com.ant.wallet;import java.net.URL;
import java.util.HashMap;
import java.util.Map;import com.googlecode.jsonrpc4j.Base64;
import com.googlecode.jsonrpc4j.JsonRpcHttpClient;public class CoinUtils {private static CoinUtils instance;private static void init() throws Throwable {if(null == instance){instance = new CoinUtils();}}private JsonRpcHttpClient client;public CoinUtils() throws Throwable{// 身份认证String cred = Base64.encodeBytes((Constants.RPC_USER + ":" + Constants.RPC_PASSWORD).getBytes());Map<String, String> headers = new HashMap<String, String>(1);headers.put("Authorization", "Basic " + cred);client = new JsonRpcHttpClient(new URL("http://"+Constants.RPC_ALLOWIP+":"+Constants.RPC_PORT), headers);}public static CoinUtils getInstance() throws Throwable {init();return instance;}/*** 验证地址是否存在* @param address* @return* @throws Throwable*/public String validateaddress(String address)throws Throwable{return (String) client.invoke("validateaddress", new Object[] {address}, Object.class).toString();}/*** 如果钱包加密需要临时解锁钱包* @param password* @param time* @return* @throws Throwable*/public String walletpassphase(String password,int time)throws Throwable{return (String) client.invoke("walletpassphase", new Object[] {password,time}, Object.class).toString();}/*** 转账到制定的账户中* @param address* @param amount* @return* @throws Throwable*/public String sendtoaddress(String address,double amount)throws Throwable{return (String) client.invoke("sendtoaddress", new Object[] {address,amount}, Object.class).toString();}/*** 查询账户下的交易记录* @param account* @param count* @param offset* @return* @throws Throwable*/public String listtransactions(String account, int count ,int offset )throws Throwable{return (String) client.invoke("listtransactions", new Object[] {account,count,offset}, Object.class).toString();}/*** 获取地址下未花费的币量* @param account* @param count* @param offset* @return* @throws Throwable*/public String listunspent( int minconf ,int maxconf ,String address)throws Throwable{String[] addresss= new String[]{address};return (String) client.invoke("listunspent", new Object[] {minconf,maxconf,addresss}, Object.class).toString();}/*** 生成新的接收地址* @return* @throws Throwable*/public String getNewaddress() throws Throwable{return (String) client.invoke("getnewaddress", new Object[] {}, Object.class).toString();}/*** 获取钱包信息* @return* @throws Throwable*/public String getInfo() throws Throwable{return client.invoke("getinfo", new Object[] {}, Object.class).toString();}}
这样就实现了使用java代码与钱包进行通信。
以上列举了几个常用的方法,其他方法详见:这里
java使用JSON-RPC进行BTC、LTC钱包开发相关推荐
- java中将json字符串_Java中JSON字符串与java对象的互换实例详解
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
- Jmeter之Beanshell使用(二)Java处理JSON块
[环境] ①Jmeter版本:3.2,JDK:1.8 ②前置条件:将json.jar包置于..\apache-jmeter-3.2\lib\下,并将该jar包添加到测试计划的Library中:否则会报 ...
- java与json,java与json
1.json的基本语法 1.表示一个对象 {"name":'"zhangsan","age":22} {"name":& ...
- Java - Jackson JSON Java Parser API
文章目录 概述 依赖 Jackson JSON示例 基础数据 JSON转换为Java对象 Jackson JSON –将JSON转换为Map 概述 Jackson JSON Java Parser非常 ...
- java json太长_修复Long类型太长,而Java序列化JSON丢失精度问题的方法
Java序列化JSON时long型数值,会出现精度丢失的问题. 原因: java中得long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值). 解决办法一: 使用 ...
- Java之JSON数据
特别注意:使用JSON前需要导包 操作步骤地址:http://blog.csdn.net/baidu_37107022/article/details/70876993 1.定义 JSON(JavaS ...
- Java中JSON字符串与java对象的互换实例详解
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...
- java的json解析工具_json文件解析工具类(java)
附上java解析json文件内容的工具类 1.工具类 import com.alibaba.fastjson.JSONObject; import org.slf4j.Logger; import o ...
- 【Java】Java实现 JSON 的组装和解析
Java 中 JSON 的使用 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库. 下面是几个常用的 JSON 解析类库: Gson: 谷歌开发的 JSON 库,功能十 ...
最新文章
- 一键让二次元老婆微笑,还能把猫脸变成狗脸,这篇CVPR 论文真有趣
- magento中调用图片的方法
- mysql 主机 %_MySQL 开启远程链接(localhost 以外的主机)
- 骨骼捏脸功能的实现方法
- [转]Java中Set的深入研究
- DataFormatString格式化字符串的总结
- python函数拟合编程_Python应用实现双指数函数及拟合代码实例
- mysql 按月和年累加_广西柳州市市场监管局公布市2020年11月(第一批)电梯按需维保试点名单...
- oracle无法分区,oracle已存在的表添加新分区的方法
- shell if语句特殊用法(高级用法),工具安装判断
- 矩池云上安装AlphaFold教程
- python基础教程3下载-Python基础教程第3版中国PDF电子书免费下载
- Oracle CRS/ASM/RAC版本兼容对应表
- (转载)C/C++:sizeof('a')的值为什么不一样?
- 基于Jsp的简单论坛(BBS)的设计与实现(附代码)
- leaflet中文文档
- 51单片机学习笔记(2)——51单片机简介
- 中国农业大学计算机研究生专业课,2020年中国农业大学计算机科学与技术考研经验分享...
- 如何使用python批量压缩图片_使用python脚本批量压缩图片大小
- 如何修改、缩小截图图片大小,压缩图片。
热门文章
- 自己建网站时要注意哪些细节
- md 生成目录 码云_DuangDuangDuang!码云项目的 Readme.md 特殊技能
- cad隐藏图层命令快捷键_Auto CAD如何快速隐藏图层,快捷键是什么?
- 墨羽卿画第二章第5节:另一个世界,腊月廿四
- LeetCode:数组刷题(17道经典题目)
- 风光互补——三段式充电
- hdu-1052 Tian Ji -- The Horse Racing
- 【Vue教程】01:入门前的概述:关于VUE那些事儿
- 化工原理计算机辅助设计,化工原理课程设计总结与体会
- css3中-moz、-ms、-webkit、-o 各是什么意思