以太坊go-ethereum用戶端JSON-RPC API調用(一)__JSON

來源:互聯網
上載者:User

前幾篇部落客要介紹了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年的最後一天了,祝大家新年快樂。新的一年有新的收穫。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.