Infura

如何讓 Populus 與 Infura 上的節點對話?

  • February 8, 2017

我註冊了 Infura,他們給了我一個可以與之交談的節點的 URL,例如https://ropsten.infura.io/mytokenjsifejsij39kdjkjfdk. (部分開頭mytoken不是我真正的象徵。)

我想使用 Populus 部署和管理我的合約;我如何讓它連接?我嘗試在我的 populus.ini 和其他各種埠號排列中設置以下內容,但是當我嘗試連接到它時,例如使用populus chain init testnet,它會導致socket.error: [Errno 111] Connection refused.

[chain:testnet]
rpc_host = https://ropsten.infura.io/mytokenjsifejsij39kdjkjfdk
is_external = True
provider = web3.providers.rpc.RPCProvider

是否可以從 populus 連接到 Infura 節點,如果可以,我應該如何配置它?

對於 populus pre1.5.0的版本,簡短的回答是你不能。這是由於 gevent-http-client 依賴項中處理 SSL 證書的方式存在上游錯誤。

對於版本>=1.5.0,您可以將其放在配置文件中。

請注意,新的配置文件格式為 JSON。Populus 將嘗試自動為您升級舊的配置文件。

{
 "chains": {
   "testnet": {
     "chain": {"class": "populus.chain.ExternalChain"},
     "web3": {
       "provider": {
         "class": "web3.providers.rpc.HTTPProvider",
         "settings": {
           "endpoint_uri": "https://ropsten.infura.io",
         }
       }
     }
   }
 }
}

populus 附帶的預設設置文件通過預先配置的 Infura web3 連接提供了一種更短的方法來執行此操作。

{
 "chains": {
   "testnet": {
     "chain": {"class": "populus.chain.ExternalChain"},
     "web3": {"$ref": "web3.InfuraRopsten"}
   }
 }
}

如果這對你不起作用,請告訴我。populus Gitter 頻道通常是獲得問題答案的最快方式,但我也支持將它們發佈在這裡 :)

您可以嘗試不使用 infura 令牌嗎?

即簡單地說:

rpc_host = https://ropsten.infura.io

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