Skip to content

v0.25.3

Summary:
Right now only the nodes that failed to get queried after an attempt are removed from the avalanche datastructure. That means that there is no mechanims for removing nodes that never get selected for polling or are pending a proof should they get disconnected.

This diff addresses this issue by having the avalanche processor implementing the `NetEventsInterface` and allowing the `CConnman` to take several of these interfaces. By doing so the processor gets notified on each node disconnection via the `FinalizeNode` method and can handle the node removal properly.

This design would benefit from being turned into a proper notification handler with a register/unregister interface, but this is out of scope for this diff.

Depends on D11300 and D11301 (prevent reverse lock on shutdown).

Test Plan:
With Clang and Debug:
  ninja all check-all

Run the ASAN and TSAN builds.

Reviewers: #bitcoin_abc, tyler-smith

Reviewed By: #bitcoin_abc, tyler-smith

Subscribers: tyler-smith

Differential Revision: https://reviews.bitcoinabc.org/D11302
Assets 2
Loading