Skip to content

update_witnesses is not enough to handle reorgs #296

@zoedberg

Description

@zoedberg

As shown by the reorg_history test in rgb-tests the update_witnesses method is not enough to handle reorgs. This is because that method is just checking and updating the WitnessOrd of the saved witnesses. But transactions sending to blinded UTXOs are not linked to each other at the bitcoin level, meaning that a transaction disappearing from the chain/mempool could invalidate bundles associated to witnesses that could have a valid WitnessOrd. This issue was discussed also in RGB-WG/RFC#10. After that discussion, a solution based on consensus ordering was considered, but a working proposal was not found.

In RGB-WG/rgb-tests#30 there's a proposal to fix this, that consists in:

  • saving a set of invalid bundles (that will be filtered out from the state), also including descendant bundles of the witnesses that became invalid
  • removing from the aforementioned set the bundles that became valid again, including their descendants if possible

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions