Network
完整節點從哪裡獲取初始塊下載的區塊鏈?
我知道一個完整的節點需要做一個 IBD 才能驗證交易。因此,它下載到現在的賬本,這被稱為初始塊下載。
但我不明白/不知道的是,區塊鏈資訊是從哪裡下載的?其他完整節點是否參與此活動,或者此資訊是否儲存在某個地方並從那裡檢索?
是的,他們從他們連接的其他節點下載塊。
在比特幣核心中,你可以選擇是否成為修剪節點。在這兩種情況下,所有塊都被下載並完全驗證,但在修剪模式下,舊塊在驗證後一段時間後被刪除。這有很多含義,但其中之一是修剪的節點不能幫助新節點執行 IBD。
每個比特幣節點都連接到比特幣網路上的許多其他節點(對等節點)。把它想像成你與之分享資訊的朋友。您可以向他們詢問資訊,他們也可以詢問您。
所以新的比特幣節點,當它們第一次啟動時,會在網路上找到其他對等點,然後新節點將開始從區塊鏈中請求它還沒有的比特幣塊(全部!)。所有對等點都會響應,從他們自己的區塊鏈副本中共享請求的塊。
當塊到達時,您的新節點將驗證該塊是有效的,並且所有交易都是有效的,並且它連結到前一個塊,並且已經完成了 - 將其添加到它自己的區塊鏈副本中。
從 2009 年到今天,這個過程對所有區塊進行迭代,並且可能需要一天到幾週的時間,具體取決於一大堆因素。好消息是它只需要做一次!在初始塊下載 (IBD) 完成之後,保持最新是很少的工作 - 每 10 分鐘左右一個塊。
在 IBD 期間,您的節點將得到同行的很多幫助,然後一旦您完全同步,您的節點將能夠幫助其他人。
同樣,如果您的節點或您的一個對等節點關閉了一段時間,當它們回來時,相同的過程會重複,以便您再次獲得最新資訊。
真的很聰明:-)