Infura
如何讓 Populus 與 Infura 上的節點對話?
我註冊了 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 pre
1.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