天天看點

php如何調用以太坊JSON-RPC接口建立錢包?

首先下載下傳安裝geth,下載下傳位址如下: http://ethfans.org/wikis/Wallet-Mirror 安裝後會在安裝目錄生成一個geth.exe,需要使用指令行工具來運作它。

初始化

geth --datadir "chain" init piccgenesis.json           

piccgenesis.json檔案:

{
  "config": {
        "chainId": 33,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "coinbase" : "0x0000000000000000000000000000000000000000",
    "difficulty" : "0x4",
    "extraData" : "",
    "gasLimit" : "0xffffffff",
    "nonce" : "0x0000000000000042",
    "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
    "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
    "timestamp" : "0x00",
    "alloc": { }
}
}           

設定json-rpc

設定rpc并開啟rpc接口,rpc位址為127.0.0.1:8534:

geth --rpc --rpccorsdomain * --datadir ./mychain -rpcport 8534 --port 30308 --identity test --networkid 111111111 --rpcaddr 0.0.0.0 --rpcapi admin,miner,db,eth,net,web3,personal --nodiscover console           

注:這裡用的是測試網絡,不需要同步所有區塊,如果要正式應用需要一台linux伺服器,開啟主網同步所有區塊,在打開并設定rpc。

php 調用json-rpc

geth安裝完成,rpc接口開啟,下面就該用php調用geth的rpc方法了

也可以參考以下幾個連結:

https://github.com/ethereum/wiki/wiki/JSON-RPC
https://github.com/paritytech/parity/wiki/JSONRPC-personal-module           

go-ethereum APIs:

https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal
http://www.cocoachina.com/blockchain/20180125/22019.html           

PHP本文用的Thinkphp中的jsonrpc類:

public function index(){
vendor('jsonRPC.jsonRPCClient');
$client = new \jsonRPCClient('http://localhost:8534');
dump($client->personal_newAccount("111111"));
}           

一個錢包就建立好了,111111是密碼,是personal_newAccount這個方法的參數,還有其它rpc方法參考上面的連接配接。

原文《以太坊常見問題和錯誤》中的:

http://cw.hubwiz.com/card/c/ethereum-FAQ/1/1/18/

另外推薦幾個很受歡迎全網稀缺的互動教程:

  • php以太坊 ,主要是介紹使用php進行智能合約開發互動,進行賬号建立、交易、轉賬、代币開發以及過濾器和事件等内容。
  • python以太坊 ,主要是針對python圍繞web3.py進行區塊鍊以太坊應用開發的講解。
  • web3j ,主要是針對java和android程式員圍繞web3j庫進行區塊鍊以太坊開發的講解。
  • 以太坊開發 ,主要是介紹使用node.js、mongodb、區塊鍊、ipfs實作去中心化電商DApp實戰,适合進階。
  • 以太坊教程 ,主要介紹智能合約與dapp應用開發,适合入門。