Network
客戶端和節點如何從去中心化網路下載數據?
我一直認為節點和客戶端將從“網路”下載數據。全節點將下載整個區塊鏈狀態,而輕客戶端將僅從“網路”下載所有塊的根雜湊。但我從未真正更深入地了解所有這些將如何發生。
- 由於沒有集中的端點向其他人發出新節點或客戶端即將加入網路的信號,分散網路如何知道節點或客戶端已加入網路,因此應該“八卦”或傳輸有什麼新的交易嗎?
- 由於網路本質上是去中心化的,新節點或客戶端如何以及在哪裡知道從哪裡下載他們的狀態數據?同樣,沒有指定的端點可以呼叫並說“我想下載狀態數據”。如果沒有指定的端點,客戶端或節點如何知道他們可以從哪些其他節點或客戶端下載這些數據,以及他們將從中下載的特定來源是可靠的還是惡意的?
- 例如,如果一個輕客戶端下載了一堆假的根雜湊怎麼辦?輕客戶端可以驗證根雜湊,但是,如果輕客戶端以某種方式從同一個惡意全節點檢索證明,然後提供與假根雜湊匹配的假證明,該怎麼辦?輕客戶端會認為一切都經過驗證且良好嗎?
每個節點都包含與其通信的先前節點的列表。當一個節點上線時,它會連接之前的節點並告訴它再次上線。如果一個節點在連接到外部獲取的引導節點列表之前沒有連接到網路。
節點從任何對等節點下載數據。每個乙太坊節點都會驗證所有傳入的塊及其交易,以確保維護鏈的完整性。