• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 百科 查看內容
    • 6262
    • 0
    • 分享到

    Python以太坊開發節點和網絡選擇

    2018-8-2 22:00

    來源: 匯智網

    Python以太坊開發節點和網絡選擇


    為什么我需要連接到一個節點?

    以太坊協議定義了一種方法,用于人們通過網絡與智能合約相互作用。為了獲得關于合約、賬戶余額和新交易狀態等最新的信息,協議需要與網絡上的節點進行連接。這些節點不斷地共享最新的數據。

    Web3.Py是用于連接這些節點的Python庫。它不在內部運行它自己的節點。

    如何選擇使用哪個節點?

    由于以太坊的特點,這在很大程度上由個人的偏好來決定,但它會對安全性和可用性有重大影響。此外,節點軟件正在快速發展,所以請需要對當前可選項進行研究。我們不推薦任何特定的節點,但列出一些流行的選項和一些基本細節。

    最關鍵的決定之一是使用本地節點還是托管節點。來看看本地VS托管節點的簡單含義:

    本地節點:本地節點由你自己啟動并控制。它的安全和你的環境安全性一樣,在于你自身。當你在機器上運行geth或parity時,你就是在運行本地節點。
    托管節點:托管節點由其他人控制。當連接到Infura時,連接到托管節點。

    本地節點比托管節點有更好的安全性。惡意托管節點可以給你提供不正確的信息,用IP地址記錄你發送的交易,或者只是脫機運行。不正確的信息會引起各種各樣的問題,甚至包括資產流失。

    另一方面,在本地節點上,你的機器正在逐個驗證網絡上的所有交易,并提供最新狀態。不幸的是,這意味著使用大量的磁盤空間,有時顯著的帶寬和計算。另外,下載完整的區塊鏈歷史記錄有很大的前期成本。

    如果希望讓節點管理密鑰(流行的選項),則必須使用本地節點。注意,即使在自己的機器上運行一個節點,你仍然要信任節點軟件,并在該節點上創建的任何帳戶。

    最流行的自運行節點選項是:

    geth(go-ethereum) [1]
    parity [2]

    你可以在ethdocs.org[3] 中找到一個更完整的節點軟件列表。

    有些人認為,從零開始同步本地節點所需的時間太久,尤其是如果它們只是剛開始學習以太坊的話。解決這個問題的一種方法就是使用托管節點。

    最流行的托管節點選項是Infura [4]。你可以連接它,就像它是一個本地節點,有幾個注意事項。它不能(也不應該)為你提供私鑰,這意味著一些常見的方法,如w3.eth.sendTransaction()不可直接使用。要向托管節點發送交易,請閱讀有關本地私鑰的工作。

    一旦決定要選擇什么節點選項,就需要選擇連接哪個網絡。通常,你在公有鏈和測試鏈之間進行選擇。

    我可以用MetaMask作為節點嗎?

    MetaMask不是一個節點。它是一個與節點交互的接口。大致上,如果你把Web3.Py變成瀏覽器擴展,MetaMask就和web3.py是差不多的。

    默認情況下,MetaMask連接到一個Infura節點。也還可以設置MetaMask使用本地運行的節點。

    如果你試圖使用已在MetaMask中創建的帳戶,請參閱如何使用Web3.Py中的MetaMask帳戶 [5]?

    我應該連接哪個網絡?

    一旦你回答了我該如何選擇使用哪一個節點?你必須選擇連接哪個網絡。對于某些場景來說,這是很容易的:如果你有以太ether,你想消費它,或者你想與任何生產網絡上的智能合約交互,那么你連接到以太坊公有鏈網絡上。

    如果你想測試這些東西而不使用真正的以太ether,那么你需要連接到測試鏈。有幾個測試鏈可供選擇。一個測試網絡Ropsten,它是最類似于生產網絡的。然而,當你想測試一個智能合約的時候,已經有垃圾郵件和攻擊發生,這是有破壞性的。

    有一些替代網絡限制了垃圾郵件和攻擊的破壞,但是它們對節點軟件沒有完全標準化。geth運行自己的(Rinkeby),Parity運行自己(Kovan)。在這個Stackexchange Q&A [6] 中看到一個完整的比較。

    所以我們簡略的講,選擇這樣的方式:

    如果使用Parity,連接到Kovan
    如果使用Geth,連接到Rinkeby
    如果使用不同的節點,或測試挖掘,連接到Ropsten

    他們的每一個網絡都有自己版本的ether。生產網絡即公有鏈以太ether必須購買,自然,測試鏈上的以太ether通常是免費的。看看測試網是如何獲得以太的[7]?

    一旦確定了連接哪個網絡,并為該網絡設置節點,就需要決定如何連接它。在大多數節點中有一些選項。請參見選擇如何連接到節點[8]。

    文中標注的原文鏈接如下:

    [1] https://ethereum.github.io/go-ethereum/
    [2] https://www.parity.io/
    [3] http://ethdocs.org/en/latest/ethereum-clients/
    [4] https://web3py.readthedocs.io/en/stable/infura.io
    [5] https://web3py.readthedocs.io/en/stable/troubleshooting.html#use-metamask-accounts
    [6] https://ethereum.stackexchange.com/a/30072/1461
    [7] https://web3py.readthedocs.io/en/stable/troubleshooting.html#faucets
    [8] https://web3py.readthedocs.io/en/stable/providers.html#choosing-provider
    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频