Skip to content

Conversation

@arnetheduck
Copy link
Member

A block may become unviable for two main reasons:

  • the fork it was on is orphaned by chain finality - ie the block was valid in some history, but not any more in the canonical one
  • the block is invalid, either because it is itself invalid or it builds on an invalid block

Until now we've treated both kinds the same when it comes to the unviable quarantine - because of this, when checking gossip rules the client has in some cases opted for the more lenient "IGNORE" respons instead of using "REJECT".

This PR brings the client more closely in line with ignore/reject rules by tracking the original error that led to the unviablility.

  • use minilru instead of OrderedTable for simplified capacity management and performance
  • simplify quarantine operations that deal with unviables
  • remove unused quarantine events
  • keep track of the block being processed to avoid it being readded to the quarantine during processing

A block may become unviable for two main reasons:

* the fork it was on is orphaned by chain finality - ie the block was
valid in some history, but not any more in the canonical one
* the block is invalid, either because it is itself invalid or it builds
on an invalid block

Until now we've treated both kinds the same when it comes to the
`unviable` quarantine - because of this, when checking gossip rules the
client has in some cases opted for the more lenient "IGNORE" respons
instead of using "REJECT".

This PR brings the client more closely in line with ignore/reject rules
by tracking the original error that led to the unviablility.

* use `minilru` instead of `OrderedTable` for simplified capacity
management and performance
* simplify quarantine operations that deal with unviables
* remove unused quarantine events
* keep track of the block being processed to avoid it being readded to
the quarantine during processing
@github-actions
Copy link

github-actions bot commented Oct 30, 2025

Unit Test Results

       12 files  ±0    2 424 suites  ±0   1h 8m 36s ⏱️ + 3m 17s
12 630 tests +1  12 065 ✔️ +1  565 💤 ±0  0 ±0 
63 536 runs  +4  62 808 ✔️ +4  728 💤 ±0  0 ±0 

Results for commit f31cad5. ± Comparison against base commit 8fedcd4.

♻️ This comment has been updated with latest results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant