如何使用 geth 和 json rpc 在兩個地址之間轉移 ETH
我的伺服器上正在執行geth 。我正在建立一個充當錢包的 php 網站。現在我能夠創建地址。我需要能夠在同一節點上的地址之間存取 ETH。我用下面的命令開始 geth。
go-ethereum/build/bin/geth console --rpc --rpcapi="db,eth,net,web3,personal,web3" --rpccorsdomain "*" --syncmode "light"
如何通過 rpc 在 geth 上實現錢包的功能?是否有為此的命令或 API 呼叫?我發現很難理解文件。
更新:我想做的是將 ETH 從一個帳戶轉移到另一個帳戶。以下是我嘗試的 api 呼叫以及我在 php 類中呼叫傳輸函式時在瀏覽器中遇到的錯誤。有人可以糾正我嗎
{“jsonrpc”:“2.0”,“id”:1,“method”:“personal_signAndSendTransaction”,“params”:
$$ [{“from”:“0xb60e8dd61c5d32be8058bb8eb970870f07233155”,“to”:“0xd46e8dd67c5d32be8058bb8eb970870f07244567”,“gas”:“0x76c0”,“gasPrice”:“0x9184e72a000”,“value”:“0x9184e72a”,“data”:“0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675”} $$“密碼”]}
致命錯誤:未擷取的 RPCException:json:無法將數組解組為 eth.SendTxArgs 類型的 Go 值
{“jsonrpc”:“2.0”,“id”:1,“method”:“personal_sendTransaction”,“params”:
$$ [{“from”:“0xb60e8dd61c5d32be8058bb8eb970870f07233155”,“to”:“0xd46e8dd67c5d32be8058bb8eb970870f07244567”,“gas”:“0x76c0”,“gasPrice”:“0x9184e72a000”,“value”:“0x9184e72a”,“data”:“0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675”} $$“密碼”]}
致命錯誤:未擷取的 RPCException:方法personal_sendTransaction 不存在/不可用拋出
{“jsonrpc”:“2.0”,“id”:1,“method”:“eth_sendTransaction”,“params”:
$$ {“from”:“0xb60e8dd61c5d32be8058bb8eb970870f07233155”,“to”:“0xd46e8dd67c5d32be8058bb8eb970870f07244567”,“gas”:“0x76c0”,“gasPrice”:“0x9184e72a000”,“value”:“0x9184e72a”,“data”:“0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675”} $$}
致命錯誤:未擷取的 RPCException:帳戶被鎖定拋出
請幫忙!
在 Geth 控制台中,您可以使用 sendTransaction 函式:
web3.eth.sendTransaction({ from: "0xE618A4B5A516f371Ce26d9A1DBE7839F4e3812GB", to: "0xE618A4B5A516f371Ce26d9A1DBE7839F4e3812CB", value: web3.toWei(1, "ether") })
您可以使用eth_sendtransaction將交易發送到目的地
在參數部分
params: [{ "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155", "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567", "gas": "0x76c0", // 30400 "gasPrice": "0x9184e72a000", // 10000000000000 "value": "0x9184e72a", // 2441406250 "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675" }]
您應該取回交易簽名
{ "id":1, "jsonrpc": "2.0", "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" }
這適用於以前在 geth 中解鎖的帳戶