python 节点_python在以太坊开发中节点和网络如何选择?
以太坊節點
為什么我需要連接到一個節點?
以太坊協議定義了一種方法,用于人們通過網絡與智能合約相互作用。為了獲得關于合約、賬戶余額和新交易狀態等最新的信息,協議需要與網絡上的節點進行連接。這些節點不斷地共享最新的數據。
Web3.Py是用于連接這些節點的Python庫。它不在內部運行它自己的節點。
如何選擇使用哪個節點?
由于以太坊的特點,這在很大程度上由個人的偏好來決定,但它會對安全性和可用性有重大影響。此外,節點軟件正在快速發展,所以請需要對當前可選項進行研究。我們不推薦任何特定的節點,但列出一些流行的選項和一些基本細節。
最關鍵的決定之一是使用本地節點還是托管節點。來看看本地VS托管節點的簡單含義:
本地節點:本地節點由你自己啟動并控制。它的安全和你的環境安全性一樣,在于你自身。當你在機器上運行geth或parity時,你就是在運行本地節點。
托管節點:托管節點由其他人控制。當連接到Infura時,連接到托管節點。
本地節點比托管節點有更好的安全性。惡意托管節點可以給你提供不正確的信息,用IP地址記錄你發送的交易,或者只是脫機運行。不正確的信息會引起各種各樣的問題,甚至包括資產流失。
另一方面,在本地節點上,你的機器正在逐個驗證網絡上的所有交易,并提供最新狀態。不幸的是,這意味著使用大量的磁盤空間,有時顯著的帶寬和計算。另外,下載完整的區塊鏈歷史記錄有很大的前期成本。
如果希望讓節點管理密鑰(流行的選項),則必須使用本地節點。注意,即使在自己的機器上運行一個節點,你仍然要信任節點軟件,并在該節點上創建的任何帳戶。
最流行的自運行節點選項是:
你可以在ethdocs.org中找到一個更完整的節點軟件列表。
有些人認為,從零開始同步本地節點所需的時間太久,尤其是如果它們只是剛開始學習以太坊的話。解決這個問題的一種方法就是使用托管節點。
最流行的托管節點選項是Infura。你可以連接它,就像它是一個本地節點,有幾個注意事項。它不能(也不應該)為你提供私鑰,這意味著一些常見的方法,如w3.eth.sendTransaction()不可直接使用。要向托管節點發送交易,請閱讀有關本地私鑰的工作。
一旦決定要選擇什么節點選項,就需要選擇連接哪個網絡。通常,你在公有鏈和測試鏈之間進行選擇。
我可以用MetaMask作為節點嗎?
MetaMask不是一個節點。它是一個與節點交互的接口。大致上,如果你把Web3.Py變成瀏覽器擴展,MetaMask就和web3.py是差不多的。
默認情況下,MetaMask連接到一個Infura節點。也還可以設置MetaMask使用本地運行的節點。
如果你試圖使用已在MetaMask中創建的帳戶,請參閱如何使用Web3.Py中的MetaMask帳戶?
我應該連接哪個網絡?
一旦你回答了我該如何選擇使用哪一個節點?你必須選擇連接哪個網絡。對于某些場景來說,這是很容易的:如果你有以太ether,你想消費它,或者你想與任何生產網絡上的智能合約交互,那么你連接到以太坊公有鏈網絡上。
如果你想測試這些東西而不使用真正的以太ether,那么你需要連接到測試鏈。有幾個測試鏈可供選擇。一個測試網絡Ropsten,它是最類似于生產網絡的。然而,當你想測試一個智能合約的時候,已經有垃圾郵件和攻擊發生,這是有破壞性的。
有一些替代網絡限制了垃圾郵件和攻擊的破壞,但是它們對節點軟件沒有完全標準化。geth運行自己的(Rinkeby),Parity運行自己(Kovan)。在這個Stackexchange Q&A.中看到一個完整的比較。
所以我們簡略的講,選擇這樣的方式:
如果使用Parity,連接到Kovan
如果使用Geth,連接到Rinkeby
如果使用不同的節點,或測試挖掘,連接到Ropsten
他們的每一個網絡都有自己版本的ether。生產網絡即公有鏈以太ether必須購買,自然,測試鏈上的以太ether通常是免費的。看看測試網是如何獲得以太?
一旦確定了連接哪個網絡,并為該網絡設置節點,就需要決定如何連接它。在大多數節點中有一些選項。請參見選擇如何連接到節點。
分享我們的python以太坊教程,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
總結
以上是生活随笔為你收集整理的python 节点_python在以太坊开发中节点和网络如何选择?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python queue 调试_pyth
- 下一篇: java 内存空间_怎样用java实现存