Baker transaction submission server

Bakers currently obtain transactions from their mempool which holds the operations gossiped through the peer to peer network. It’s a convenient feature but it needn’t be the only way in which bakers accept transactions.

Since network participants know well in advance who is supposed to create a block and when, this opens the possibility of users directly submitting their transaction to the baker of the upcoming block.

One way this could be achieved is by offering a standardized RPC and a small server allowing bakers to directly accept transactions.

This has several benefits:

  • The baker can specify the fee they demand, which means users do not have to guess how large of a fee they should attach to the transaction to ensure inclusion in the next block.

  • This consumes less bandwidth as it does not have to hop through the gossip network

  • The baker can sign a receipt guaranteeing inclusion in the block and position in the block. With a simple protocol upgrade, smart-contracts could parse such signed receipts and detect situations where the guarantee wasn’t upheld (i.e. the block was produced but the transaction was not included) and allow slashing of the bakers. This gives some amount of instantaneous economic finality to users.

Running this server would be optional for bakers, so users can always fall back on the peer to peer network if the baker of the upcoming block offer this convenience.