lbcd icon indicating copy to clipboard operation
lbcd copied to clipboard

`invalidateblock` goes back one block at a time, and doesn't reorg properly

Open roylee17 opened this issue 3 years ago • 2 comments

For example,

100 -> 101 -> 102 -> 103  (main chain)
     \ 101a (side chain)
  1. invalidate one block at a time from the tip works.
$ getbestblock
{
  hash: HASH_OF_103
  height: 103
}

$ invalidateblock HASH_OF_103
$ invalidateblock HASH_OF_102

$ getbestblock
{
  hash: HASH_OF_101
  height: 101
}
  1. However, even if we invalidate block 101, the main chain doesn't reorg properly to block 101a
$ invalidateblock HASH_OF_101 
$ getbestblock
{
  hash: HASH_OF_101a
  height: 101a
}
$ getblock HASH_OF_101a
block HASH_OF_101a is not in the main chain
  1. invalidate more than one block at a time cause lbcd goes rogue. Starting to exhaust CPU and memory.
$ getbestblock
{
  hash: HASH_OF_103
  height: 103
}

$ invalidateblock HASH_OF_101
(lbcd goes rogue...)

roylee17 avatar Aug 16 '22 00:08 roylee17

https://github.com/lbryio/lbry-sdk/issues/3520

roylee17 avatar Sep 12 '22 16:09 roylee17

Just want to comment that this was recently fixed in btcd: https://github.com/btcsuite/btcd/pull/2196 , so the fix could be replicated here.

BrannonKing avatar Jun 20 '24 19:06 BrannonKing