你能檢查一個節點是否正在修剪嗎?
是否可以檢查特定節點是否正在執行完整的區塊鍊或經過修剪的區塊鏈?
此外,如果可以的話,是否可以準確地檢查它們分配了多少(或大致)多少塊。
nServices
比特幣節點使用點陣圖宣傳他們的服務。第一個比特NODE_NETWORK
表示節點是否能夠將所有塊提供給其他網路參與者。修剪節點不會發出信號
NODE_NETWORK
,因為它們沒有完整的區塊鏈副本。但是,它們將返回儲存中的任何請求塊。由於最小修剪大小為 550 MB,因此它們至少能夠提供最後三天的塊。
如果您可以通過RPC連接到節點,您可以向節點發出
getblockchaininfo
命令,該命令將告訴您節點是否被修剪("pruned": True/False
)以及鏈被修剪的高度("pruneheight": X
)。該命令還將顯示鏈的目前高度 (
"blocks": X
),因此您可以通過從目前高度減去 pruneheight 來計算儲存塊的實際數量。舉個例子,這是測試網上修剪節點的 getblockchaininfo 的輸出:
{ "chain": "test", "blocks": 1261324, "headers": 1261324, "bestblockhash": "000000000000075568c48c5bd77bdbe2a11eaa3416ad1ec066f290158d862259", "difficulty": 2108481.043832448, "mediantime": 1517322442, "verificationprogress": 0.9999987734618496, "chainwork": "000000000000000000000000000000000000000000000035070d21569475cdd3", "pruned": true, ... "pruneheight": 1225344 }
所以節點儲存了 1261324 - 1225344 = 35980 個完整的塊。