Closed LLFourn closed 1 year ago
@LLFourn What was the conclusion of our talk this morning? Are we planning to include or exclude all errors, or have the ability to check Additions
for any non-monotone changes?
As non-monotone behavior of TxGraph
will result in non-monotonicity of structures such as TxOutIndex
and ChainGraph
(that depend on TxGraph
).
@evanlinjin Since we model the blockchain data source as always giving correct info in general I think we should just not have error cases when the blockchain contradicts itself for now. I think the right way to solve this for users who want guarantees that this can't happen is to use full transactions only.
In the end @evanlinjin and I decided to remove this conflict resolution stuff in apply changeset and follow the approach that "apply changeset" is only safe if you got the changeset from the creation method itself. This keeps this simpler for now.
commits:
ChainGraph
would be OK with theTxGraph
only having txout for the chain transaction rather than a full transaction.Note: we currently check for conflicts in the changeset with the chain graph's own state but not within the changeset itself which can lead to an inconsistent ChainGraph (conflicting txs).
Fixes #132