以太坊go-ethereum客户端JSON-RPC API调用(一)
前几篇博客主要介绍了go-ethereum客户端不同环境的搭建,今天这篇博客是建立在前几排博客的基础上。当搭建完成之后,我们可以通过各种方式与节点进行交互(JavaScript Console、JSON-RPC 、web3等)。本篇以创建一个账户为例,介绍一下java调用JSON-RPC的方法及过程中可能会遇到的问题。
准备
当你准备使用不同的api接口时,在启动节点时要添加上不同的参数,比如你要使用rpc调用创建账户(personal操作),那么在启动的命令中就需要核实是否有–rpcapi参数,参数值中是否有personal选项,否则无法正常调用:
--rpcapi "db,eth,net,web3,personal,admin,miner"
api调用
当节点准备好之后,并确保网络畅通,下面就介绍一下java的具体代码。
首先在pom文件中引入,json-rpc的jar包:
<dependency>
<groupId>com.github.briandilley.jsonrpc4j</groupId>
<artifactId>jsonrpc4j</artifactId>
<version>1.4.6</version>
</dependency>
此依赖会传递引入jackson-core,请注意此jar包引入jackson-core与你系统中原有的jackson-core版本冲突问题。本人在这里踩过坑,因为两个版本导致各种莫名其妙的问题。如果有多个jackson-core,明确指定引入哪个版本的。
实例:
import com.googlecode.jsonrpc4j.JsonRpcHttpClient;
import java.net.URL;
/**
* @author zhuzhisheng
* @Description
* @date on 2016/12/31.
*/
public class TestJsonRpc {
public static void main(String[] args) {
// TODO 多个参数时使用例子
// String[] temp = new String[]{"0x12341234"};
// Object[] params = new Object[]{"0x1", "0x2", "0x8888f1f195afa192cfee860698584c030f4c9db1", temp};
// 密码为123456
Object[] params = new Object[]{"123456"};
String methodName = "personal_newAccount";
try {
JsonRpcHttpClient client = new JsonRpcHttpClient(new URL("http://127.0.0.1:8545"));
Object address = client.invoke(methodName, params, Object.class);
System.out.println(address);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
}
执行main方法,打印创建账户的地址。其他方法的调用可在此基础上进行扩展。对于多参数,数组类型的参考上面注释掉的一段代码。
注意事项
(1)jar包冲突问题;
(2)参数数组类型及具体参数类型;
(3)调用节点创建账户所花费时间,是否能满足系统要求;
PS:2016年的最后一天了,祝大家新年快乐!新的一年有新的收获!
以太坊go-ethereum客户端JSON-RPC API调用(一)的更多相关文章
- [中文] 以太坊(Ethereum )白皮书
以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译|巨蟹 .少平 译者注|中文读者可以到以太坊爱好者社区(www.ethfans.org)获取最新的以太坊信息. 当中本聪在2009年 ...
- 数字货币比特币以太坊买卖五档行情数据API接口
数字货币比特币以太坊买卖五档行情数据API接口 数字货币一般包含比特币BTC.以太坊ETH.瑞波币XRP.泰达币USDT.比特币现金BCH.比特币SV.莱特币LTC.柚子币EOS.OKB. ...
- 死磕以太坊源码分析之EVM如何调用ABI编码的外部方法
死磕以太坊源码分析之EVM如何调用ABI编码的外部方法 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家 ...
- 測试JSON RPC远程调用(JSONclient)
#include <string> #include <iostream> #include <curl/curl.h> /* 标题:JSonclient Auth ...
- 从零构建以太坊(Ethereum)智能合约到项目实战——第20章 搭建自己的私有链网络
P75 .1-以太坊私网建立 .合约编译.部署完全教程(1) 使用此博文进行安装配置:https://blog.csdn.net/w88193363/article/details/79402074 ...
- 以太坊(ethereum)开发DApp应用的入门区块链技术教程
概述 对初学者,首先要了解以太坊开发相关的基本概念. 学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...
- 以太坊(Ethereum)智能合约NodeJS/Web3 使用
一.概述 运行环境:Node.js.npm.Truffle.Solidity等 root@keke:~/go-ethereum# node -v v8.9.4 root@keke:~/go-ether ...
- 从零构建以太坊(Ethereum)智能合约到项目实战——第22章 玩转truffle framework 、Web3.js 框架
P84 .1-玩转truffle framework.Web3.js 框架 内容介绍 truffle官方网站:https://truffleframework.com/ P85 .2-truffle ...
- 从零构建以太坊(Ethereum)智能合约到项目实战——第21章 搭建联盟链
P78 .1-内容介绍 什么情况下建立自己测试用的PoA chain? 公司内网或无对外网络,无法同步区块 降低测试时等待区块的时间 不想碰到testrpc各种雷 PoA chain特点有 有别于Po ...
- 以太坊测试网络搭建以及RPC服务开启-配置注意事项
.Eth QA Test环境: 数据文件路径: C:\Users\Administrator\AppData\Roaming\Ethereum console启动参数: --rpc --testnet ...
随机推荐
- 【BZOJ4129】Haruna’s Breakfast(树上莫队)
[BZOJ4129]Haruna's Breakfast(树上莫队) 题面 BZOJ Description Haruna每天都会给提督做早餐! 这天她发现早饭的食材被调皮的 Shimakaze放到了 ...
- 延长xss的攻击(转)
XSS 的本质仍是一段脚本.和其他文档元素一样,页面关了一切都销毁.除非能将脚本蔓延到页面以外的地方,那样才能获得更长的生命力. 庆幸的是,从 DOM 诞生的那一天起,就已为我们准备了这个特殊的功能, ...
- Linux内核设计第一周学习总结 计算机如何工作
北京电子科技学院 20135310陈巧然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002 ...
- Python之旅:数字、字符串
一 数字 整型与浮点型 #整型int 作用:年纪,等级,身份证号,qq号等整型数字相关 定义: age=10 #本质age=int(10) #浮点型float 作用:薪资,身高,体重,体质参数等浮点数 ...
- Canny边缘检测算法原理及其VC实现详解(一)
转自:http://blog.csdn.net/likezhaobin/article/details/6892176 图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个 ...
- 配置pdo 的用户和密码,
注意:要进入mysql命令行来操作~~~~ grant all on *.* to pdo_root@'%' identified by 'pdo_pwd'; flush privileges
- 前端PHP入门-014-参数的引用
我们学习了变量的引用,我们来回顾一下知识: <?php $a = 10; $b = &$a; $a = 100; echo $a.'---------'.$b; ?> 而函数的参数 ...
- python---twisted的使用,使用其模拟Scrapy
twisted的网络使用 twisted的异步使用 一:简单使用 from twisted.internet import defer from twisted.web.client import g ...
- 1.ideal常用快捷键
Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如ge ...
- codeforces 872E. Points, Lines and Ready-made Titles
http://codeforces.com/contest/872/problem/E E. Points, Lines and Ready-made Titles time limit per te ...