nit
This commit is contained in:
parent
fe172ffba3
commit
eb880e5d2c
@ -44,7 +44,7 @@ In the Block SDK, each lane has its own set of rules and transaction flow manage
|
||||
|
||||
A block with separate `lanes` can be used for:
|
||||
|
||||
1. **MEV mitigation**: a top of block lane could be designed to create an in-protocol top-of-block auction (as we are doing with POB) to recapture MEV in a transparent and governable way.
|
||||
1. **MEV mitigation**: a top of block lane could be designed to create an in-protocol top-of-block auction (as we are doing with the Block SDK) to recapture MEV in a transparent and governable way.
|
||||
2. **Free/reduced fee txs**: transactions with certain properties (e.g. from trusted accounts or performing encouraged actions) could leverage a free lane to reward behavior.
|
||||
3. **Dedicated oracle space** Oracles could be included before other kinds of transactions to ensure that price updates occur first, and are not able to be sandwiched or manipulated.
|
||||
4. **Orderflow auctions**: an OFA lane could be constructed such that order flow providers can have their submitted transactions bundled with specific backrunners, to guarantee MEV rewards are attributed back to users. Imagine MEV-share but in protocol.
|
||||
|
||||
2
SPEC.md
2
SPEC.md
@ -1,6 +1,8 @@
|
||||
|
||||
# POB Specification
|
||||
|
||||
> **Note**: This specification is a work in progress and is subject to change.
|
||||
|
||||
## Abstract
|
||||
|
||||
The `x/builder` module is a Cosmos SDK module that allows Cosmos chains to host
|
||||
|
||||
@ -40,7 +40,7 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
// NewLanedMempool returns a new Blockbuster mempool. The block mempool is
|
||||
// NewLanedMempool returns a new Block SDK mempool. The laned mempool is
|
||||
// comprised of a registry of lanes. Each lane is responsible for selecting
|
||||
// transactions according to its own selection logic. The lanes are ordered
|
||||
// according to their priority. The first lane in the registry has the highest
|
||||
|
||||
@ -71,7 +71,7 @@ func NewApp() {
|
||||
// visit the README in block-sdk/block/base.
|
||||
//
|
||||
// MEV lane hosts an action at the top of the block.
|
||||
mevConfig := constructor.LaneConfig{
|
||||
mevConfig := base.LaneConfig{
|
||||
Logger: app.Logger(),
|
||||
TxEncoder: app.txConfig.TxEncoder(),
|
||||
TxDecoder: app.txConfig.TxDecoder(),
|
||||
@ -84,7 +84,7 @@ func NewApp() {
|
||||
)
|
||||
|
||||
// Free lane allows transactions to be included in the next block for free.
|
||||
freeConfig := constructor.LaneConfig{
|
||||
freeConfig := base.LaneConfig{
|
||||
Logger: app.Logger(),
|
||||
TxEncoder: app.txConfig.TxEncoder(),
|
||||
TxDecoder: app.txConfig.TxDecoder(),
|
||||
@ -93,12 +93,12 @@ func NewApp() {
|
||||
}
|
||||
freeLane := free.NewFreeLane(
|
||||
freeConfig,
|
||||
constructor.DefaultTxPriority(),
|
||||
base.DefaultTxPriority(),
|
||||
free.DefaultMatchHandler(),
|
||||
)
|
||||
|
||||
// Default lane accepts all other transactions.
|
||||
defaultConfig := constructor.LaneConfig{
|
||||
defaultConfig := base.LaneConfig{
|
||||
Logger: app.Logger(),
|
||||
TxEncoder: app.txConfig.TxEncoder(),
|
||||
TxDecoder: app.txConfig.TxDecoder(),
|
||||
|
||||
@ -107,7 +107,7 @@ $ go install github.com/skip-mev/block-sdk
|
||||
}
|
||||
```
|
||||
|
||||
c. Instantiate the blockbuster mempool with the application's desired lanes.
|
||||
c. Instantiate the Block SDK mempool with the application's desired lanes.
|
||||
|
||||
```go
|
||||
// 1. Create the lanes.
|
||||
@ -121,7 +121,7 @@ $ go install github.com/skip-mev/block-sdk
|
||||
// visit the README in block-sdk/block/base.
|
||||
//
|
||||
// MEV lane hosts an auction at the top of the block.
|
||||
mevConfig := constructor.LaneConfig{
|
||||
mevConfig := base.LaneConfig{
|
||||
Logger: app.Logger(),
|
||||
TxEncoder: app.txConfig.TxEncoder(),
|
||||
TxDecoder: app.txConfig.TxDecoder(),
|
||||
@ -134,7 +134,7 @@ $ go install github.com/skip-mev/block-sdk
|
||||
)
|
||||
|
||||
// Free lane allows transactions to be included in the next block for free.
|
||||
freeConfig := constructor.LaneConfig{
|
||||
freeConfig := base.LaneConfig{
|
||||
Logger: app.Logger(),
|
||||
TxEncoder: app.txConfig.TxEncoder(),
|
||||
TxDecoder: app.txConfig.TxDecoder(),
|
||||
@ -143,12 +143,12 @@ $ go install github.com/skip-mev/block-sdk
|
||||
}
|
||||
freeLane := free.NewFreeLane(
|
||||
freeConfig,
|
||||
constructor.DefaultTxPriority(),
|
||||
base.DefaultTxPriority(),
|
||||
free.DefaultMatchHandler(),
|
||||
)
|
||||
|
||||
// Standard lane accepts all other transactions.
|
||||
defaultConfig := constructor.LaneConfig{
|
||||
defaultConfig := base.LaneConfig{
|
||||
Logger: app.Logger(),
|
||||
TxEncoder: app.txConfig.TxEncoder(),
|
||||
TxDecoder: app.txConfig.TxDecoder(),
|
||||
@ -168,7 +168,7 @@ $ go install github.com/skip-mev/block-sdk
|
||||
```
|
||||
|
||||
d. Instantiate the antehandler chain for the application with awareness of the
|
||||
blockbuster mempool. This will allow the application to verify the validity
|
||||
LanedMempool. This will allow the application to verify the validity
|
||||
of a transaction respecting the desired logic of a given lane. In this walkthrough,
|
||||
we want the `FeeDecorator` to be ignored for all transactions that should
|
||||
belong to the free lane. Additionally, we want to add the `x/builder`
|
||||
@ -178,9 +178,9 @@ $ go install github.com/skip-mev/block-sdk
|
||||
```go
|
||||
import (
|
||||
...
|
||||
"github.com/skip-mev/pob/blockbuster"
|
||||
"github.com/skip-mev/pob/blockbuster/utils"
|
||||
builderante "github.com/skip-mev/pob/x/builder/ante"
|
||||
"github.com/skip-mev/block-sdk/block"
|
||||
"github.com/skip-mev/block-sdk/block/utils"
|
||||
builderante "github.com/skip-mev/block-sdk/x/builder/ante"
|
||||
...
|
||||
)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user