From a7dc8aaf91baf416d7709a91c3a2dc1514ea0702 Mon Sep 17 00:00:00 2001 From: Lasaro Camargos Date: Mon, 14 Nov 2022 16:28:42 -0300 Subject: [PATCH] Disambiguates wording in EndBlock (#9698) The current text gives margin to committing changes to the app state during EndBlock, but it should only happen during Commit. Also, PrepareProposal is not allowed to modify transactions, but only the transaction set. --- spec/abci/abci++_basic_concepts.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/spec/abci/abci++_basic_concepts.md b/spec/abci/abci++_basic_concepts.md index 06b44b834..2ceb3fd23 100644 --- a/spec/abci/abci++_basic_concepts.md +++ b/spec/abci/abci++_basic_concepts.md @@ -82,7 +82,8 @@ call sequences of these methods. been locked at Tendermint level. Tendermint gathers outstanding transactions from the mempool, generates a block header, and uses them to create a block to propose. Then, it calls `RequestPrepareProposal` with the newly created proposal, called *raw proposal*. The Application - can make changes to the raw proposal, such as modifying transactions, and returns the + can make changes to the raw proposal, such as modifying the set of transactions or the order + in which they appear, and returns the (potentially) modified proposal, called *prepared proposal* in the `ResponsePrepareProposal` call. The logic modifying the raw proposal can be non-deterministic. @@ -109,9 +110,9 @@ call sequences of these methods. returned by `DeliverTx` are included in the header of the next block. - [**EndBlock**](./abci++_methods.md#endblock) It is executed once all transactions have been processed via - `DeliverTx` to inform the application that the block can now be committed and inform it of potential changes such - as a new validator set to be proposed in the next round. As with `DeliverTx`, cryptographic commitments of the responses returned - are included in the header of the next block. + `DeliverTx` to inform the application that no other transactions will be delivered as part of the current + block and to ask for changes of the validator set and consensus parameters to be used in the following block. + As with `DeliverTx`, cryptographic commitments of the responses returned are included in the header of the next block.