以太坊網絡
分布式, 在共識的基礎上由參與節點維護和保護區塊鏈的點對點網絡。請參閱挖礦。
以太坊網絡統計
EthStats.net?是以太坊網絡實時統計的儀表板。該儀表板顯示重要信息,例如當前區塊,哈希難度,天然氣價格和天然氣支出。網頁上顯示的節點只是網絡上實際節點的選擇。任何人都可以將他們的節點添加到EthStats儀表板。Github上的Eth-Netstats README描述了如何連接。
EtherNodes.com?在以太網主網和現代測試網上顯示節點數量和其他信息的當前和歷史數據。
Distribution of client implementations on the current live network?:? 以太鏈的實時統計.?
公有鏈,私有鏈和聯盟鏈
今天的大多數以太坊項目都依靠以太坊作為公共區塊鏈,該區塊鏈可以接入更多的用戶,網絡節點,貨幣和市場。然而,通常有理由選擇私人區塊鏈或聯盟區塊鏈(在一組受信任的參與者中)。例如,許多垂直行業的公司(如銀行業務)都希望以太坊成為自己的私人區塊鏈的平臺。
以下是博客文章“公共和私人區塊鏈”的摘錄,其中解釋了基于權限的三種區塊鏈之間的區別:
公開區塊鏈:公開區塊鏈是世界上任何人都可以閱讀的區塊鏈,世界上任何人都可以發送交易,并希望在他們有效的情況下將其包括在內,并且世界上的任何人都可以參與共識流程 - 流程用于確定添加到鏈中的塊以及當前狀態。作為集中或準中央信任的替代品,公共區塊鏈通過隱含經濟學得到保護 - 經濟激勵和使用機制的密碼驗證相結合,例如工作證明或股權證明,遵循一般原則,即某人可以擁有的程度共識過程中的影響力與他們可以承擔的經濟資源的數量成正比。這些區塊鏈通常被認為是“完全去中心化的”。
聯盟區塊鏈:聯盟區塊鏈是一個區塊鏈,其共識流程由預先選定的一組節點控制;例如,可以想象一個由15家金融機構組成的聯盟,每個聯盟都運營一個節點,其中10個必須簽署每個區塊才能使區塊有效。閱讀區塊鏈的權利可能是公開的,或者僅限于參與者,并且還有混合路線,例如區塊的根哈希值與API一起公開,允許公眾成員進行有限數量的查詢取回區塊鏈狀態某些部分的密碼證明。這些區塊鏈可能被視為“部分去中心化”。
私有區塊鏈:完全私有區塊鏈是區塊鏈,寫權限集中在一個組織中。讀取權限可能是公開的或限制在任意范圍內??赡艿膽冒▎蝹€公司內部的數據庫管理,審計等,因此在許多情況下公眾可讀性可能不是必要的,但在其他情況下,需要公共可審計性。
雖然這些私有/聯盟區塊鏈可能與公有區塊鏈沒有任何關系,但他們仍然通過投資以太坊軟件開發來為整個以太坊生態系統做出貢獻。隨著時間的推移,這將轉化為軟件改進,共享知識和就業機會。
如何連接
Geth不斷嘗試連接到網絡上的其他節點,直到它具有對等點。如果您的路由器上啟用了UPnP或在面向Internet的服務器上運行了以太網,它還會接受來自其他節點的連接。
Geth通過稱為發現協議的東西找到同行。在發現協議中,節點彼此閑聊以找出網絡上的其他節點。為了最初開始,geth使用一組引導節點,其終點記錄在源代碼中。
檢查連接和ENODE ID
要檢查交互式控制臺中客戶端連接的對等點的數量,net模塊有兩個屬性,可以為您提供關于對等點數量以及您是否是偵聽節點的信息。
要獲得有關連接的對等方的更多信息(如IP地址和端口號,支持的協議),請使用admin對象的peers()函數。admin.peers()返回當前連接的對等體列表。
要檢查geth使用的端口并找到您的enode URI,請執行以下操作:
加快區塊鏈的下載速度
當您啟動以太坊客戶端時,以太坊區塊鏈會自動下載。下載以太坊區塊鏈所需的時間可能因客戶端,客戶端設置,連接速度和可用對等點的數量而異。以下是更快速獲取以太坊區塊鏈的一些選項。
使用geth
如果您正在使用geth客戶端,則可以采取一些措施加速下載以太坊區塊鏈的時間。如果您選擇使用--fast標志執行以太坊快速同步,則不會保留過去的事務數據。
在執行全部或部分正常同步操作后,您不能使用此標志,這意味著在使用此命令之前,不應該有以太坊區塊鏈的任何部分。 有關更多信息,請參閱此以太坊Stack.Exchange答案。
以下是您希望更快速地同步客戶端時使用的一些標志。
--fast:?
此標志可以通過狀態下載進行快速同步,而不是下載完整的塊數據。這也將大幅減少區塊鏈的大小。注意:只有在您從頭開始同步您的區塊鏈并僅出于安全原因第一次下載區塊鏈時,才能運行fast??吹?a target="_blank" rel="nofollow">這個Reddit帖子獲取更多信息。
--cache=1024
兆字節的內存分配給內部緩存(最小16MB /數據庫強制)。默認值是16MB,因此根據您的計算機有多少RAM應該有所作為,將此數值增加到256,512,1024(1GB)或2048(2GB)。
--jitvm
該標志啟用JIT VM。
控制臺的完整示例命令:
有關快速同步和區塊鏈下載時間的更多討論,請參閱此Reddit帖子。
導出/導入區塊鏈
如果已經同步完整的以太坊節點,則可以從完全同步的節點導出區塊鏈數據并將其導入到新節點中。您可以通過geth export filename導出完整節點并使用geth import filename將區塊鏈導入到您的節點中來完成geth。詳情請看這個鏈接
靜態節點,信任節點和啟動節點
Geth支持一個稱為靜態節點的功能,如果您有某些您始終想要連接的對等節點。靜態節點在斷開連接時重新連接。您可以通過在 /static-nodes.json中添加如下內容來配置永久靜態節點(這應該與您的chaindata和keystore文件夾所在的文件夾相同)
您還可以使用admin.addPeer()通過Javascript控制臺在運行時添加靜態節點
常見的連接問題
有時你就是無法連接。最常見的原因是:
*你當地的時間可能不正確。參加以太坊網絡需要準確的時鐘。檢查你的操作系統如何重新同步你的時鐘(例如sudo ntpdate -s time.nist.gov),因為即使是12秒太快也可能導致0個同級。
* 某些防火墻配置可能會阻止UDP通信流量。您可以使用控制臺上的靜態節點功能或admin.addPeer()手動配置連接。
要在沒有發現協議的情況下啟動geth,可以使用--nodiscover參數。在運行測試節點或在運行實驗測試網絡時, 可以這么做.?