Bitcoin-Core-Development
Bitcoin Core 功能測試框架中的node、peer、mininode有什麼區別?
我正在學習 Bitcoin Core 中的功能測試框架。我看到正在使用術語“節點”、“對等節點”和“小節點”。這些是如何定義的,它們有何不同?
當您執行 P2P 功能測試時,您正在啟動連接到完整節點(執行完整 C++ 程式碼)的 regtest 節點(執行簡化的 Python 程式碼)以測試 P2P 功能。
正如約翰紐伯里在這裡概述的那樣:
節點是 bitcoind 實例。這是正在測試其行為的事物。每個 bitcoind 節點都由一個 Python TestNode 對像管理,該對像用於啟動/停止節點、管理節點的數據目錄、讀取節點的狀態(例如程序狀態、日誌文件),並通過不同的介面與節點互動。
我們可以用來與節點互動的介面之一是 P2P 介面。使用此介面到節點的每個連接都由 Python P2PInterface 或派生對象(由 TestNode 對象擁有)管理。我們可以為每個 bitcoind 節點打開零個、一個或多個 P2P 連接。該節點將這些連接視為對等點。
由於歷史原因,mininode這個詞被用來指代我們用來連接bitcoind節點的那些P2P介面對象(程式碼最初取自 https://github.com/jgarzik的’mini-node’分支/pynode/tree/mini-node)。
但是,此PR 19760(於 2020 年 8 月合併)已刪除對mininode的所有引用,因此比特幣核心回購中的任何程式碼或目前文件目前都沒有提及 mininode。顯然,repo 之外的以前的 PR 和過時的文件仍將引用 mininode。