From 67cb91f289319000e9bb774c67eaa3ab46c456af Mon Sep 17 00:00:00 2001 From: 1HXb9KMAtwNJqz4egi6hJx08EQgJajiBTH <1HXb9KMAtwNJqz4egi6hJx08EQgJajiBTH@reference.cash> Date: Mon, 30 Dec 2019 15:02:45 -0500 Subject: [PATCH] wiki commit --- .../block-level-validation-rules.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/protocol/blockchain/transaction-validation/block-level-validation-rules.md b/protocol/blockchain/transaction-validation/block-level-validation-rules.md index eb45dfe..7350662 100644 --- a/protocol/blockchain/transaction-validation/block-level-validation-rules.md +++ b/protocol/blockchain/transaction-validation/block-level-validation-rules.md @@ -13,4 +13,15 @@ blocka --> blocka2(Block A') blockb --> blockb2(Block B') ``` -Since `Block A'` and `Block B'` are at the same block height, there may be some nodes that treat `Block A'` as the most recent block (e.g. `Node A`) and others that treat `Block B'` as the most recent block (e.g. `Node B`). If a transaction is submitted to both `Node A` and `Node B` that spends an output created in a transaction in `Block A`, `Node A` may consider the transaction valid while `Node B` would reject it on the grounds that it is dependent on a UTXO that is not a part of `Block B'`'s history, which only contains `Block B'`, `Block B`, and `Block N` (and its parents). \ No newline at end of file +Since `Block A'` and `Block B'` are at the same block height, there may be some nodes that treat `Block A'` as the most recent block (e.g. `Node A`) and others that treat `Block B'` as the most recent block (e.g. `Node B`). If a transaction is submitted to both `Node A` and `Node B` that spends an output created in a transaction in `Block A`, `Node A` may consider the transaction valid while `Node B` would reject it on the grounds that it is dependent on a UTXO that is not a part of `Block B'`'s history, which only contains `Block B'`, `Block B`, and `Block N` (and its parents). + +Other block-level validation rules include: + + - Coinbase Transaction Reward Validation + - The coinbase transaction in a block must collect the correct reward for the block height. For more information see [Coinbase Transaction](/protocol/blockchain/block#coinbase-transaction). + - Transaction Chaining Limit + - Many nodes impose a limit of transactions that can be chained together in a single block. That is, if transaction Z spends an output of transaction Y, which spends an input of transaction X, and so on to Transaction A, the transaction may be rejected. + - This limit is often set to 25 chained transactions. + - Coinbase Transaction Block Height + - The coinbase transaction in a block must provide an unlocking script that that starts with a push operation which pushes the block height of the block it is contained in. + - This requirement was added in [BIP-34](/protocol/forks/bip-0034) to ensure that coinbase transactions are unique. \ No newline at end of file