Nethereum
來自 Nethereum 的區塊鏈資訊
如何使用 Nethereum獲取最新的區塊、coinbase 和其他資訊?
正如所承諾的,我在這裡發布一個簡單的例子。對於每個存在的 web3 實現(例如,Javascript、Python 和 C#),所有語言的主要思想都是相同的。
乙太坊客戶端
首先,我們需要啟動一個乙太坊客戶端(例如,geth、parity、nethereum),並啟用所需的 rpcapi(或 ipcapi,如果您希望它僅在本地工作)。例如
geth
:geth --rpccorsdomain="*" --rpcapi db,eth,net,web3,personal,miner --rpcaddr 0.0.0.0 --rpc
對選項的簡短評論:
rpc
啟用 rpc 伺服器rpcapi
公開選定的 RPC API。在此連結中,您可以獲得總體概覽。在這種情況下,我選擇了(基本上所有 API)rpccorsdomain
限制可以執行呼叫的IP地址(在這種情況下我選擇了所有IP,它不安全)rpcaddr
表示使用哪個地址,使用 0.0.0.0 您使用其外部 IP簡單的 NETHEREUM-WEB3 範例
要配置一個簡單的 web3 Nethereum 項目,您可以按照這個 5 步教程進行操作。現在我們想用 C# 從正在執行的 geth 實例中讀取資訊。
首先,我們需要實例化一個與客戶端連接的 web3 實例(在我的例子中,正在執行的乙太坊實例的地址是我在 192.168.1.6 上的樹莓派 PI)
var web3 = new Web3("http://192.168.1.6:8545");
在下文中,我報告了您要求的一些電話:
- 塊號:
var blockNumber = await web3.Eth.Blocks.GetBlockNumber.SendRequestAsync(); Console.WriteLine($"Block Number: {blockNumber.Value}");
- 幣庫:
var coinbase = await web3.Eth.CoinBase.SendRequestAsync(); Console.WriteLine($"Coinbase: {coinbase}");
如果介面
eth
不屬於rpcapi
客戶端的選項,那麼C#的Eth
API根本不可用。有關其他資訊,您需要從 Nethereum 中找到 JSON RPC API 的 C# 等效方法名稱。不幸的是,我沒有找到完整的列表,而且命名約定(至少對我而言)不是 100% 清楚的。在這裡,您可以找到一些線索,但清單並不完整。
選擇
一個更複雜的替代方法是直接使用 Nethereum 執行 json rpc api 呼叫。畢竟,web3 只是 JSON RPC API 的包裝器。