erigon-pulse/cmd/txpool
2021-09-24 09:42:17 +07:00
..
main.go Expose mdbx's txID to remote_kv (#2686) 2021-09-15 14:22:57 +07:00
readme.md add todo list to txpool readme 2021-09-24 09:42:17 +07:00

TxPool v2

Design docs: https://github.com/ledgerwatch/erigon/wiki/Transaction-Pool-Design

Has 2 modes: internal and external

Internal mode

Works inside Erigon: add --txpool.v2 flags to Erigon, and --txpool.v2 flag to RPCDaemon

External mode

Works in separated process and require external Sentry. TxPool connect to Erigon and Sentry. RPCDaemon connect to TxPool. Build by:

make txpool

Start by:

# Add `--state.stream --txpool.disable` flags to Erigon.
./build/bin/sentry
./build/bin/txpool

To change address/port of Erigon or Sentry:

./build/bin/txpool --private.api.addr localhost:9090 --sentry.api.addr localhost:9091 --txpool.api.addr localhost:9094

Increase pool limits

Will add this part soon [tbd]

ToDo list

[x] Remote-mode support - with coherent state cache [x] Persistence [x] Grafana board [x] Non-mainnet support [x] DevNet - doesn't send mined block notification on first mined block (because initialCycle = true) [x] DiscardReasons - user must understand clearly why tx were rejected [x] Notify about new pending transactions - we sending more than need [] Add cli options to manage pool limits: --txpool.pricelimit, --txpool.globalslots, --txpool.globalqueue (now each sub-pool has limit 200_000, and no pricelimit) [] Add way for simple introspection - where is tx and why [] Hard-forks support (now rules are parsed ones on txPool start) [] Add pool to docker-compose [] Add pool (db table) - where store recently mined txs - for faster unwind/reorg. [] Save history of local transactions - with 1 day expiration