erigon-pulse/cmd/txpool/readme.md
2021-10-01 09:15:45 +07:00

57 lines
1.6 KiB
Markdown

# 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 --txpool.api.addr localhost:9090` flags 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
[x] Handle "NewBlock" message with 200K transactions re-calculation - in under 50ms
[x] Add --txpool.globalslots, --txpool.globalqueue,--txpool.globalbasefeeeslots
[] Add --txpool.accountslots
[] Add --txpool.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