Go-Ethereum
如何通過 IPC on rails 連接 geth?
我想通過 IPC on rails 連接 geth。我開始 geth 如下。
$build/bin/geth --datadir "/home/vagrant/.ethereum" --networkid "1" --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --ipcpath "/home/vagrant/.ethereum/geth.ipc"
然後我嘗試
rails console
使用ethereum-ruby進行連接。但是,它返回錯誤。你能告訴我如何從 ruby 連接 geth 嗎?(它是否使用庫都沒有關係。[1] pry(main)> client = Ethereum::IpcClient.new("#{ENV['HOME']}/.ethereum/geth.ipc") => #<Ethereum::IpcClient:0x007f4f4365f470 @batch=[], @id=1, @ipcpath="/home/vagrant/.ethereum/geth.ipc"> [2] pry(main)> client.eth_coinbase NoMethodError: undefined method `eth_coinbase' for #<Ethereum::IpcClient:0x007f4f4365f470> from (pry):2:in `<main>'
您使用了錯誤的命令,命令是
coinbase
,而不是eth_coinbase
。我建議使用此程式碼:
eth = Ethereum::IpcClient.new
這將自動使用預設路徑獲取
geth.ipc
puts eth.coinbase["result"]
這將返回您的硬幣庫。
您可以看到,用於創建新方法的這一行沒有獲取 rpc 方法名稱的第一部分,而是在方法下劃線,so
eth_coinbase
will becoinbase
,eth_getBalance
will beget_balance
等等。
如果你使用新的
eth
gem,你必須創建一個 IPC 客戶端:ipc = Eth::Client.create "/home/vagrant/.ethereum/geth.ipc" ipc.eth_coinbase # or: ipc.default_account