Pebble V2 is a new transaction scheduler for Solana block producers, with a complete redesign compared to Pebble V1: periodic auctions are replaced by rolling auctions held account by account.
  1. Priority order. A transaction is scheduled as soon as its accounts are free. Among transactions competing for the same free accounts, the one with the highest priority goes first; a transaction still waiting for another account does not hold up the others. Priority is the fee earned divided by the resources requested, as in the standard Solana schedulers.
  2. A change opens an auction. When a transaction modifies the data of an account, no other transaction writing to it is scheduled until the first one has left the validator in shreds, and for 5 ms after that.
  3. The best bid wins. After these 5 ms, the waiting transaction with the highest priority goes first.
Tx 1 writes AA is freeauction: ATx 2 writes A and Bwaits for A, then for Bauction: A, BTx 3 writes Blower priority, B is freeauction: BTx 4 writes CC is freeauction: C0 ms5 ms10 ms15 ms20 msarrivesscheduledsent in a shredauction on the accounts it changed (5 ms)
Tx 1 and Tx 4 find their accounts free and are scheduled on arrival. Tx 2 has to wait for the auction opened by Tx 1 on A. Tx 3 has a lower priority than Tx 2, but B is free when it arrives: it is scheduled at once, and the auction it opens on B is one more that Tx 2 has to wait for.

Restoring the value of priority fees

Today, the priority fee market is distorted: mempool access, spam (optimistic MEV) and payments to third parties for a privileged path are all ways to avoid paying the fee that real demand would set.
Pebble V2 closes these paths: on a contended account, the only way to win is a higher priority.

Fast transaction inclusion

External block builders gather transactions in batches, process them, then hand them over to the validator for execution. This adds delays that Pebble V2 does not have.
With Pebble V2, most transactions are executed when they arrive and sent to the network within about 2 ms.

Bundles

Pebble V2 is not compatible with bundles.
The legitimate use of bundles is mainly revert protection. Rolling auctions also enable it: a simple transfer emptying the fee payer or a nonce can cancel a transaction. This is cheap, both for the searcher and the validator.

Is 5 ms enough?

A 5 ms auction after a change may seem too short for real competition: bidders have to receive the shred, react, and get their transaction to the leader in time. But shred propagation is getting faster. Rotor, Alpenglow's successor to Turbine, is coming, and many commercial offers already provide optimized shred streams. Validators can also provide their leader shreds on demand, or team up with nearby validators or hosting providers to offer an aggregated stream of leader shreds.
We actually expect to shorten this delay as propagation improves, allowing more updates of the same account per slot and making Solana even more responsive.

See it in action

Pebble V2 is currently implemented in Firedancer, and live on mainnet on the PEBBLE validator.
Explore its recent blocks

Feel free to contact us for more information about Pebble V2.