Nethereum

來自 Nethereum 的區塊鏈資訊

  • January 28, 2019

如何使用 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#的EthAPI根本不可用。

有關其他資訊,您需要從 Nethereum 中找到 JSON RPC API 的 C# 等效方法名稱。不幸的是,我沒有找到完整的列表,而且命名約定(至少對我而言)不是 100% 清楚的。在這裡,您可以找到一些線索,但清單並不完整。

選擇

一個更複雜的替代方法是直接使用 Nethereum 執行 json rpc api 呼叫。畢竟,web3 只是 JSON RPC API 的包裝器。

引用自:https://ethereum.stackexchange.com/questions/66155