Infura

如何在沒有第三方 API(如 infura)的情況下發佈到區塊鏈

  • November 4, 2019

我一直在使用 web3 nodejs 和 infura.io 來建構與乙太坊區塊鏈互動的應用程序,這一切都很棒,但我不喜歡我的應用程序出現故障點的想法,因為它們依賴於第三方(即 infura .io)。一個人如何在不使用第三方的情況下與區塊鏈進行互動,顯然這是可能的,因為 infura 自己必須這樣做

Infura 基本上只是執行一堆節點,它為您提供訪問權限。所以你只需要執行你自己的節點。

有幾個不同的節點客戶端可用;最受歡迎的是 Geth 和 Parity。您可以選擇任何您想要的客戶。所以只需下載客戶端程序,閱讀說明並開始將節點與區塊鏈同步。完全同步後,您可以像使用 Infura 一樣使用它(以及許多其他方式)。

如果您的目標是消除系統中的單點故障,則需要研究像 geth 這樣的點對點應用程序如何實現彈性。

用您擁有和控制的節點替換 infura 是一個很好的第一步,因為許多 dapp 都在使用 infura,並且可能成為攻擊目標以摧毀 dapp。但是,通過這樣做,您只是將一個故障點替換為另一個故障點。

geth 在對等點發現階段所做的是連接到受信任的引導節點列表。這些引導節點可以通知您的 geth 節點其他節點的地址。這樣,您最終會得到一個要從中同步的對等點列表。

如果一個節點倒下,還有很多其他節點來傳遞資訊,網路可以繼續執行。如果所有受信任的引導節點都失敗,則網路將停止執行。

現在如何在 dapp 中實現相同級別的彈性?如果您的應用程序在瀏覽器中執行,那將不是一件容易的事。該技術還不夠成熟,無法在 javascript 中進行相同類型的對等發現。我們的想法是擁有我們所說的輕客戶端。這種客戶端可以像 geth 那樣發現對等點,但不會嘗試同步操作所需的千兆字節數據。這些東西還在開發中。

如果您的應用程序是桌面應用程序,您可以像 AKASHA 那樣在您的應用程序中嵌入一個 geth 節點。

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