1. 程式人生 > >【區塊鏈】Android通過Geth RPC介面實現接入以太坊私有鏈

【區塊鏈】Android通過Geth RPC介面實現接入以太坊私有鏈

Android通過Geth RPC介面實現接入以太坊私有鏈

環境:mac os & android studio

一、啟動私有鏈

搭建方法見 here

啟動並設定RPC埠:

geth --identity "linoy" --rpc --rpccorsdomain "*" --datadir "./" --port "30303" --nodiscover --rpcapi "personal,db,eth,net,web3,miner" --networkid 1999 console 2>>geth.log

需要注意的是rpcapi 引數:

這個命令指示了允許通過RPC訪問的命令。預設情況下,Geth允許web3。

當你準備使用不同的api介面時,在啟動節點時要新增上不同的引數,比如你要使用rpc呼叫建立賬戶(personal操作),那麼在啟動的命令中就需要核實是否有–rpcapi引數,引數值中是否有personal選項,否則無法正常呼叫

二、Android studio新建專案並新增.jar包

下載地址:here

新建專案

選擇project

匯入jar包

將你要匯入的jar包拖入libs資料夾內,然後

三、設定佈局檔案

<Button
        android:id="@+id/showView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="getBlock"/>

<TextView
        android:layout_width="match_parent"
android:layout_height="match_parent" android:id="@+id/textview"/>

四、設定許可權

<uses-permission  android:name="android.permission.INTERNET"/>

五、主程式碼

package com.example.pro.blockchain1;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import
android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; import org.alexd.jsonrpc.JSONRPCException; import org.alexd.jsonrpc.JSONRPCHttpClient; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Button showButton; private TextView textview; public static final int SHOW = 0; private Handler handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case SHOW: String a = (String) msg.obj; textview.setText(a); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textview=(TextView)findViewById(R.id.textview); showButton = (Button) findViewById(R.id.showView); showButton.setOnClickListener(this); } @Override public void onClick(View v) { if(v.getId() == R.id.showView) { show(); } } private void show() { new Thread(new Runnable() { @Override public void run() { try { String url = "http://10.0.2.2:8545"; //注意,不是127.0.0.1 JSONRPCHttpClient client = new JSONRPCHttpClient(url); Map<String, Object> map = new HashMap(); List paramsList = new ArrayList(); map.put("json-rpc", "2.0"); map.put("method", "web3_clientVersion"); map.put("params", paramsList); map.put("id", "67"); String st = client.callString("web3_clientVersion", map); Message msg = new Message(); msg.what =SHOW; msg.obj = st; handler.sendMessage(msg); } catch (JSONRPCException e) { // textview.setText("step wrong??"); e.printStackTrace(); } } }).start(); } }

可以看到結果:

這裡寫圖片描述

其他事例

String url = "http://10.0.2.2:8545";
JSONRPCHttpClient client = new JSONRPCHttpClient(url);
Map<String, Object> map = new HashMap();
List paramsList = new ArrayList();
map.put("id", "1");
map.put("json-rpc", "2.0");
map.put("params", paramsList);

//personal_listAccounts
String st = client.callString("personal_listAccounts", map);

//personal_newAccount
paramsList.add("123456");
String st = client.callString("personal_newAccount", map);

參考文件:here & here

API文件:here & here

相關推薦

區塊Android通過Geth RPC介面實現接入私有

Android通過Geth RPC介面實現接入以太坊私有鏈 環境:mac os & android studio 一、啟動私有鏈 搭建方法見 here 啟動並設定RPC埠: geth --identity "linoy" --rpc -

android app通過Geth RPC介面實現遠端呼叫

記錄一下APP怎麼通過以太坊的RPC介面實現遠端呼叫。此過程的環境為Window7和Android studio2.2.3。以web3_clientVersion為例。更多用法參考Geth JSON-RPC和Management APIs。首先啟動geth私有鏈並設定RPC埠

[區塊]1.Ubuntu Geth 搭建私有環境

  前言 1.1 本文基於Ubuntu 作業系統。 1.2 geth的全稱是go-ethereum,是一個以太坊客戶端,用go語言編寫,應該是目前最常用的客戶geth。 1.3 ubuntu預設root用不啟用的,終端下輸入sudo passwd root(即

區塊入門(2):搭建私有(private network of ethereum),以及挖礦的操作..

percent symbol 令行 sans miners margin ima ear 建立 在做一些測試工作的時候, 為了方便控制以及更快的進入真正的測試工作,可能需要搭建一個私有的以太坊網絡. 而以太坊節點之間能夠互相鏈接需要滿足1)相同的協議版本2)相同的netwo

區塊,使用 Go-Ethereum 搭建私有

區塊鏈 私有鏈 以太坊 go語言 1、什麽是Ethereum(以太坊)  以太坊(Ethereum)並不是一個機構,而是一款能夠在區塊鏈上實現智能合約、開源的底層系統,以太坊從誕生到2017年5月,短短3年半時間,全球已有200多個以太坊應用誕生。以太坊是一個平臺和一種編程語言,使開發人員能夠

私有geth的操作

以太坊私有鏈中geth的操作 1、新建賬戶 區塊鏈中的賬戶是由一個公鑰和一個私鑰組成的,公鑰是別人可以轉錢給你的地址 第一種方式不先指定私鑰: personal.newAccount() 第二種先指定私鑰: personal.newAccount("123456")

區塊私有環境搭建)、

     最近一直在學習區塊鏈技術、區塊鏈中三種鏈(公有鏈、私有鏈、聯盟鏈)、 私有鏈環境搭建:       1、window系統   64 位、              2、以太坊錢包  (0.8.1) 點選開啟連結              3、以太坊geth客

區塊學習(三)Windows下搭建私有環境

儘管windows下做以太坊區塊鏈開發環境搭建可能出現各種各樣未知錯誤,但大家還是應該積極的探索。 一:安裝geth客戶端          Windows要求必須是64位系統,從官方網站下載編譯好的win64客戶端,下載解壓後只有一個Geth.exe問價,執行安裝即可,

使用 Go-Ethereum 1.7.2搭建私有

lean nic 腳本 ica welcome accounts oot db4 upgrade 1、什麽是Ethereum(以太坊)   以太坊(Ethereum)並不是一個機構,而是一款能夠在區塊鏈上實現智能合約、開源的底層系統,以太坊從誕生到2017年5月,短短3年

私有

cor hash 私有 fff account 數據 post port sta sudo apt-get updatesudo apt-get installsoftware-properties-commonsudo add-apt-repository -yppa:e

私有挖礦操作指南

lin 鏈接 chain body 參數 golang安裝 java 文件的 語言 先總體說一下步驟: 1.操作系統準備 linux(centos6.7) 2. golang安裝 3.下載以太坊 4. 安裝以太坊 5. 創世區塊文件的準備 6. 創世區塊初始化 7. 以太坊

私有下智能合約部署

配置文件 臺電腦 問題: != 第一步 attribute int lock asc 上一篇文章實現了搭建私有鏈,以下進行智能合約的部署 一、 編寫合約 簡單的乘法例子: pragma solidity ^0.4.2; contract test { functio

docker 搭建私有搭建

min self odi auto ora ucc lib color 技術 最近區塊鏈,火得不行,身邊也有朋友準備玩這個,說是搭了一個星期,沒有把環境搭建起來,叫我幫忙看看環境怎麽搭建 於是我找到了官方的地址 https://github.com/ethereum

CentOS7搭建私有

系統版本 難度 adb alloc tab ffi web lB golang 1、 環境準備:Win10 64位安裝 VM VirtualBox,操作系統版本: CentOS-7-x86_64-Everything-1611.iso(7.71G)。 切換root賬號,方

如何搭建私有

version ans 就是 logs top 過程 log info ini 在開發以太坊時,很多時候需要搭建一條以太坊私有鏈,通過本文一起看看如何在Mac上進行搭建。 寫在前面 閱讀本文前,你應該對以太坊語言有所了解,如果你還不了解,建議你先看以太坊是什麽 go-eth

新手如何優雅地部署第一個私有

今天我們先在windows系統上學習入門以太坊。 首先,我們先要下載以太坊錢包,https://ethfans.org/wikis/Home 在這個網站上下載官方錢包映象,這幾個都可以下載下來,他們各有優勢和用處(具體的由於篇幅先不贅述)但今天Ethereum Wallet和Get

Windows 環境下搭建私有節點

1.搭建以太坊私有鏈節點 下載Geth ,下載地址: https://geth.ethereum.org/downloads/ 2.安裝Geth,在安裝的過程中不要安裝C盤中 3.建立創世區塊檔案 在安裝目錄下建立一個genesis.json檔案,內容如下:

Ubuntu 命令環境下搭建私有節點

前言:本文使用以太坊解壓版搭建,桌面環境則可以直接使用瀏覽器進行下載,無需使用 Winscp 進行傳輸 1.搭建以太坊私有鏈節點 下載Geth ,下載地址: https://geth.ethereum.org/downloads/ 使用 Winscp 傳輸到 Ubunt

私有搭建,建立節點叢集,部署智慧合約,攻擊智慧合約

本文目的: 1.搭建Ethereum私有鏈和節點叢集; 2.熟悉以太坊智慧合約的部署和使用流程; 3.瞭解以太坊智慧合約的應用和常見安全性問題; 一、以太坊私有鏈搭建 參考:https://blog.csdn.net/sportshark/article

私有與聯盟的坑

記錄區域網下,多個私有節點連線為聯盟鏈的坑創世區塊的建立儲存為json格式{ "nonce": "0x0000000000000042", "timestamp": "0x00", "parentHash": "0x0000000000000