* Illustrate the bug through prints
* Change consensus API to a single ResolveVirtual call
* nil changeset is not expected when err=nil
* Fixes a deep bug in the resolve virtual process
* Be more defensive at resolving virtual when adding a block
* When finally resolved, set virtual parents properly
* Return nil changeset when nothing happened
* Make sure the block at the split point is reversed to new chain as well
* bump to version 0.12.4
* Avoid locking consensus twice in the common case of adding block with updateVirtual=true
* check err
* Parents must be picked first before set as virtual parents
* Keep the flag for tracking virtual state, since tip sorting perf is high with many tips
* Improve and clarify resolve virtual tests
* Addressing minor review comments
* Fixed a bug in the reported virtual changeset, and modified the test to verify it
* Addressing review comments
* Avoid creating the chain iterator if high hash is actually low hash
* Always use iterator in nextPruningPointAndCandidateByBlockHash
* Initial failing test
* Minimal failing test + some comments
* go lint
* Add simpler tests with two different errors
* Missed some error checks
* Minor
* A workaround patch for preventing the missing utxo child diff bug
* Make sure we fully resolve virtual
* Move ResolveVirtualWithMaxParam to test consensus
* Mark virtual not updated and loop in batches
* Refactor: remove VirtualChangeSet from functions return values
* Remove workaround comments
* If block has no body, virtual is still considered updated
* Remove special error ErrReverseUTXODiffsUTXODiffChildNotFound
Co-authored-by: Ori Newman <orinewman1@gmail.com>
* Unite all reachability stores
* Upgrade script
* Fix tests
* Add UpdateReindexRoot to RebuildReachability
* Use dbTx when deleting reachability stores
* Use ghostdagDataWithoutPrunedBlocks when rebuilding reachability
* Use next tree ancestor wherever possible and avoid finality point search if the block is too close to pruning point
* Address the boundary case where the pruning point becomes the finality point
* some minor fixes
* Remove RebuildReachability and use manual syncing between old and new consensus for migration
* Remove sanity test (it failed when tips where not in the same order)
Co-authored-by: msutton <mikisiton2@gmail.com>