From 926956f720686adb4d7c781037ec2c9bf1931830 Mon Sep 17 00:00:00 2001 From: Rootul Patel Date: Wed, 6 Mar 2024 22:41:28 -0500 Subject: [PATCH 1/2] specs: add block rules --- specs/src/specs/block_validity_rules.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/specs/src/specs/block_validity_rules.md b/specs/src/specs/block_validity_rules.md index b95cdf89af..e3ada6b6ba 100644 --- a/specs/src/specs/block_validity_rules.md +++ b/specs/src/specs/block_validity_rules.md @@ -35,7 +35,11 @@ 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 From 3f9a855e6d72e31652f47066c2a0e9a74464067d Mon Sep 17 00:00:00 2001 From: Rootul Patel Date: Wed, 6 Mar 2024 22:56:05 -0500 Subject: [PATCH 2/2] specs: revise transaction validity rules --- specs/src/specs/block_validity_rules.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/specs/src/specs/block_validity_rules.md b/specs/src/specs/block_validity_rules.md index e3ada6b6ba..858d4a8708 100644 --- a/specs/src/specs/block_validity_rules.md +++ b/specs/src/specs/block_validity_rules.md @@ -43,11 +43,20 @@ Celestia specific validity rules can be categorized into multiple groups: ### Transaction Validity Rules -All `BlobTx` transactions must be valid according to the [BlobTx validity rules](../../../x/blob/README.md#validity-rules). +#### App Version 1 -All remaining transactions must be decodable and pass all [AnteHandler](./ante_handler.md) checks. +There is no validity rule that transactions must be decodable so the following rules only apply to transactions that are decodable. -For a complete list of modules see [state machine modules](./state_machine_modules.md). +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). + +#### App Version 2 + +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