Pebble is an alternative scheduler for Frankendancer and Firedancer.
The goal is to increase validator revenue compared to the default scheduler, while ensuring:
- independence: no reliance on an external block builder,
- compliance with SFDP requirements,
- alignment with expected scheduling behavior under Constellation,
- Jito compatibility, if desired.
Unlike balanced strategy, or Agave greedy scheduler, non-vote and non-bundled transactions are only scheduled during periodic auctions (typically, every 45 or 50 ms).
This kind of scheduler, called Frequent Batch Auctions (FBA) or Frequent Batch Ordering (FBO), requires transaction senders seeking fast inclusion to compete solely through priority fees, rather than:
- trying to outpace others to reach the validator first, or
- paying tips to one or more transaction landing services in the hope that one of them will be able to deliver the transaction sooner, or has contracted with the validator or its external block builder for some opaque prioritization.
The key objective is therefore to restore the value of priority fees.
To use Pebble for your validator, clone one of the pebble branch from Puffin Github repository. For instance, for version v0.1004:
git clone -b v0.1004.40101-pebble https://github.com/puffin-validator/firedancer.git
and modify the
schedule_strategy and auctions_per_slot configurations as explained in default.toml.PUFFIN is running Pebble on mainnet since epoch 986.