-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Description
Validate transaction witness signatures and other 'phase 1' items. This equates to transaction validation for Conway Era
Intersect Milestone
MS5.6
Acceptance Criteria
- "Able to phase 1 validate all existing Transactions (TXs)"
- Validate from Conway era (M)
- Validate pre-Conway eras (S)
This means implementing the UTXO and UTXOW rule sets from the Haskell ledger - see lists in #329 and #424, for each era (Shelley, Mary, Allegra ...)
This should output a ValidationResult message on 'cardano.validation.tx-phase-1'. Errors should be typed and reflect the Haskell ledger rule names.
(UTXOW - UTxO Witness)
Expected Deliverables
- "Transaction Phase 1 validation module"
Actually an upgrade to existing modules TxUnpacker and UTXOState (possibly others as required)
- "Test cases and reports"
We'll need to show that we can
a) Validate all blocks in Mainnet to a recent tip (considered the source of truth for this)
b) Generate validation failures on a set of injected bad blocks triggering each rule - we think the "Golden Tests" contain these.
Design notes
Note about eras: that most rules are just copied forward. In cases like MIRs where functionality is removed, it simply won't be triggered. So we should have a single ruleset, we don't need to distinguish eras in the code, unless there is some case where the behaviour /changes/ between eras, in which case a simple if statement on the BlockInfo era will suffice.