【區塊鏈】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);
相關推薦
【區塊鏈】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