IntersectMBO / IntersectMBO/cardano-ledger

Clarify which phase1 validation is skipped for `isValid == False` transactions

Open
#4,695 1 comment 0 reactions 0 assignees View on GitHub
:fountain_pen: documentation
Dominant language
Haskell
Stars
295
Forks
179
Avg merge
4d 7h
Merged PRs (30d)
29

Description

Figure out a consistent story about Tx for phase2: what should be validated what should not.

It would be useful to create a document that outlines all parts of the transaction that are epxected to be valid when transaction itself is marked as phase2 invalid.

It is possible that we do some redundant checks that might not be necessary for such transactions.

It is important to note in such document that by default it is expected for all transactions to be phase1 valid, because normal operations of the mempool will prevent phase1 invalid transactions. However, the protocol does not prevent some custom version of the node to add phase2 invalid transactions to the chain that have some aspects of such transactions to be invalid, because those aspects do not affect the ledger state.

Therefore, this ticket could be phrased slightly differnetly:

Document exactly which parts of the transaction are validated, whenever `isValid == False`

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by tracing phase1 and phase2 validation for transactions with `isValid == False`, including the mempool and ledger context. Done means a document precisely lists which transaction parts are validated, which are skipped or redundant, and the phase1-validity assumption.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
blockchain, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.