## Description
This PR moves consensus commit prologue to the beginning of the
checkpoint if it presents. This is to make sure
that the consensus commit prologue is before all the cancelled
transactions in the checkpoint, and hence
when doing sequential replay, we know which transactions are cancelled.
This is achieved by finding the consensus commit prologue in the pending
checkpoint, and always
places it the first before all other sorted transactions.
It also builds on several assumptions:
- There is at most one consensus commit prologue transactions in a
pending checkpoint.
- The consensus commit prologue shouldn't have any dependencies that
aren't in any previous checkpoints.
## Test plan
Added consensus commit prologue invariant check for all integration
simtests.
---
## Release notes
Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.
For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.
- [ ] Protocol:
- [ ] Nodes (Validators and Full nodes):
- [ ] Indexer:
- [ ] JSON-RPC:
- [ ] GraphQL:
- [ ] CLI:
- [ ] Rust SDK: