Synchronization

-blocknotify 是否在追趕期間觸發?

  • January 21, 2017

我的節點落後了,我注意到沒有觸發-blocknoitfy中指定的操作。bitcoin.conf現在還可以,因為節點有很多事情要做,腳本無論如何也不會有任何好處。

這是正確的行為嗎?什麼時候blocknotify開始再次觸發?我的經驗是,在幾個小時甚至一天的停機時間之後,它會在追趕期間為每個塊觸發(例如,它可能同時觸發十幾個觸發器)

是的,這是設計使然。

notify 動作在函式BlockNotifyCallback( init.cpp) 中執行,您可以看到:

static void BlockNotifyCallback(bool initialSync, const CBlockIndex *pBlockIndex)
{
   if (initialSync || !pBlockIndex)
       return;
   // ...
}

initialSync參數來自IsInitialBlockDownload()(in validate.cpp)的返回值。它會檢查幾件事以確定初始塊下載是否正在進行。這裡的操作可能是檢查最近的已知塊是否具有比目前系統時間早 24 小時以上的時間戳。

因此,當您落後或少於 24 小時時,您似乎會開始收到通知。

引用自:https://bitcoin.stackexchange.com/questions/50900