Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Stop building on top of blocks that take too long to be approved #3103

Closed
rphmeier opened this issue May 25, 2021 · 2 comments · Fixed by #3277
Closed

Stop building on top of blocks that take too long to be approved #3103

rphmeier opened this issue May 25, 2021 · 2 comments · Fixed by #3277
Labels
J0-enhancement An additional feature request.

Comments

@rphmeier
Copy link
Contributor

Generally a block that takes a long time to be approved will be disputed, but there may be liveness attacks where an adversary interferes with the ability of nodes to recover the available data. If the adversary is performing this type of liveness attack, the block should be ignored by authorship until it is approved. This will be for blocks that are not approved within a few minutes of being imported.

There are two approaches:

  1. Use the blacklisting feature of Substrate. This is most convenient but will cause edge-cases when the block eventually does get approved. We'd have to un-blacklist it in a way that doesn't race with disputes.
  2. Refactor fork-choice rule logic in Substrate to plug in approval-voting to the chain selection system, while still accounting for the BABE counting rules.
@rphmeier rphmeier added the J0-enhancement An additional feature request. label May 25, 2021
@rphmeier
Copy link
Contributor Author

if fork-choice in Substrate were implemented more as a comparator, we could build a pipeline out of it:

  • inspect the set of possible leaves
  • filter them down to ancestors using approval-voting, so we ignore blocks that take forever
  • choose the best one of those using the BABE scoring rule

@burdges
Copy link
Contributor

burdges commented May 27, 2021

I envisioned zero penalties for no-shows but perhaps we should revisit this design decision if our validators prove too heterogeneous.

@ghost ghost closed this as completed in #3277 Jun 21, 2021
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
J0-enhancement An additional feature request.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants