Json-Rpc

什麼是 http://localhost:8545?

  • December 24, 2021

為什麼一些與乙太坊相關的網站(例如 regis.nu,還有很多其他網站)告訴我他們找不到執行在http://localhost:8545的節點,我該怎麼辦?

Regis.nu 允許我創建一個“輕錢包”,然後我必須在其中放一些乙太幣,但我真的不想這樣做。我想用我自己的錢包。我試著開始’geth’,但現在我要進入深水,我不會游泳。

所以問題:如何在http://localhost:8545啟動一個節點?

http://localhost:8545是您本地執行的乙太坊節點軟體的 RPC 埠。

執行時geth,乙太坊節點軟體的 Go 實現,創建和配置這個 RPC 服務的命令行參數如下:

user@Kumquat:~$ geth --help | grep rpc
 --rpc                         Enable the HTTP-RPC server
 --rpcaddr "127.0.0.1"         HTTP-RPC server listening interface
 --rpcport "8545"              HTTP-RPC server listening port
 --rpcapi "db,eth,net,web3"    API's offered over the HTTP-RPC interface
 --rpccorsdomain               Domains from which to accept cross origin requests (browser enforced)

和的預設值--rpcaddr將允許 regis.nu 網頁連接到您的本地節點。但是,您需要配置以允許您的 Web 瀏覽器訪問您的本地乙太坊節點。--rpcport``--rpcapi``geth``--rpccorsdomain

要在本地電腦上啟動一個節點,為 regis.nu 網頁提供對您節點的訪問權限,請嘗試:

geth --rpc --rpcaddr "127.0.0.1" --rpcport "8545" \
 --rpc --rpccorsdomain "http://regis.nu" console

注意:設置--rpccorsdomain"http://regis.nu"將適用於 regis.nu 網頁。如果您在連接時遇到問題,請開始測試"*"以檢查網頁是否可以連接到您的節點,然後找到正確的設置以最大程度地降低安全風險 - 請參閱跨域資源共享了解更多資訊。請注意,使用"*"可能有風險。

查看從regis.nu連結的 regis.nu/main.js中的 JavaScript 程式碼,您將看到:

module.exports={nodeAddress:["http://localhost:8545","http://104.41.138.167:8545"], ...}

該頁面將首先嘗試在本地連接到您的 RPC 埠,然後嘗試在 IP 地址 104.41.138.167 處可用的 RPC 埠。

我在我的網路瀏覽器中載入http://regis.nu,然後點擊Start按鈕,但網站無法連接到我本地執行的 RPC 埠gethhttp://localhost在允許regis.nu 網頁連接到我的本地geth節點並列出我的帳戶之前,我必須在瀏覽器中暫時允許我的 NoScript 外掛。

有用的參考:

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