Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Level 5 chain can get in a case where it doesn't verifiy/finalize a publicly broadcasted block #258

Open
cheeseandcereal opened this issue Nov 22, 2019 · 0 comments

Comments

@cheeseandcereal
Copy link
Contributor

cheeseandcereal commented Nov 22, 2019

  • Dragonchain Version: 4.2.0
  • Entrypoint: txn_processor

On an L5, the check_confirmations method exists at the end of transaction processor execution in order to check the public network for confirmations of the last broadcasted L5 block.

If there is any issue checking confirmations for this block, the method is set to essentially ignore this, and simply try to check again next run of the transaction processor.

The problem comes here:

last_confirmed_block = get_last_confirmed_block()

If an L5 were to get into a state where it's unable to check for confirmations all the way until it creates another block, it will simply 'forget' to check for confirmations from the old block, because it is hard-coded to only check for confirmations of (and subsequently close/out finalize) the most recently created block.

This needs to be fixed so that check_confirmations can check all unconfirmed blocks, not just the most recent one.

@cheeseandcereal cheeseandcereal changed the title Level 5 chain can get in a case where it never verifies a publicly broadcasted block Level 5 chain can get in a case where it doesn't verifiy/finalize a publicly broadcasted block Nov 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant