Role of abci::deliverTx - how to reject correctly?

Is it enough to reject an invalid transaction in checkTx or should deliverTx also do the checking (again)?

What happens when a transaction is rejected in deliverTx phase? would it not be included in the block? Since block creation is already in-progress at that point, is it correct to reject a block in deliverTx method?

1 Like