-
Notifications
You must be signed in to change notification settings - Fork 8
Closed
Labels
Description
Currently there are two types of checkpoints that can be created in the payload API:
- Executable checkpoints, that carry a bundle or a transaction
let checkpoint2 = checkpoint1.apply(tx1);
- Barriers, used as marker checkpoints that carry no state mutations but hint that all proceeding checkpoints should not be mutated by any pipeline step.
let checkpoint2 = checkpoint1.barrier();
We want to extend the barrier checkpoint type to carry optional string tags. Named barriers can be used to add extra context to the payload by marking regions that carry sequencer transactions, flashblocks, block builder txs, etc. The new syntax should be:
let checkpoint2 = checkpoint1.barrier(); // unnamed barrier
let checkpoint3 = checkpoint1.named_barrier("some-tag");
Starting points:
rblib/src/payload/checkpoint.rs
Line 199 in fc9a707
pub fn barrier(&self) -> Self { rblib/src/payload/checkpoint.rs
Line 141 in fc9a707
pub fn is_barrier(&self) -> bool {
Also while working on this, think if tagging could also benefit executable checkpoints and if tags should be a first-class citizen attachable to any type of existing and future checkpoint, not only barriers.