Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(specs): block rules #3168

Merged
merged 2 commits into from
Mar 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions specs/src/specs/block_validity_rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,28 @@ availability by simply downloading the entire block.
> with Dishonest Majorities"](https://arxiv.org/abs/1809.09044) and in the
> [`celestia-node`](https://github.com/celestiaorg/celestia-node) repo.

Celestia specific validity rules can be categorized into two groups:
Celestia specific validity rules can be categorized into multiple groups:

### Block Rules

1. In `Block.Data.Txs`, all `BlobTx` transactions must be ordered after non-`BlobTx` transactions.

### Transaction Validity Rules

All `BlobTx` transactions must be valid according to the [BlobTx validity rules](../../../x/blob/README.md#validity-rules).
#### App Version 1

There is no validity rule that transactions must be decodable so the following rules only apply to transactions that are decodable.

1. Decodable transactions must pass all [AnteHandler](./ante_handler.md) checks.
1. Decodable non-`BlobTx` transactions must not contain a `MsgPayForBlobs` message.
1. Decodable `BlobTx` transactions must be valid according to the [BlobTx validity rules](../../../x/blob/README.md#validity-rules).

All remaining transactions must be decodable and pass all [AnteHandler](./ante_handler.md) checks.
#### App Version 2

For a complete list of modules see [state machine modules](./state_machine_modules.md).
1. All transactions must be decodable.
1. All transactions must pass all [AnteHandler](./ante_handler.md) checks.
1. Non-`BlobTx` transactions must not contain a `MsgPayForBlobs` message.
1. `BlobTx` transactions must be valid according to the [BlobTx validity rules](../../../x/blob/README.md#validity-rules).

### Data Root Construction

Expand Down
Loading