erigon-pulse/cmd/txpool/readme.md
Russel Waters e56793d5ea
txpool: update cli flags (#7282)
it would appear that an extra `e` was added somewhere along the way to
the cli flags for txpool. If this was intentional I was curious as to
why, otherwise it seems like fixing the flag would remedy some
confusion. Thank you

Upon further investigation it would appear
https://github.com/ledgerwatch/erigon/blob/devel/cmd/utils/flags.go#L173
shows corrected spelling.
2023-04-08 06:52:04 +00:00

45 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TxPool v2
Transaction Pool - place where living "not-included-to-block-yet transactions".
Erigon's TxPool can work inside Erigon (default) and as separated process.
Erigon's pool implementation is not fork of Geths, has Apache license - Design
docs: https://github.com/ledgerwatch/erigon/wiki/Transaction-Pool-Design
95% of pool-related code (from p2p message parsing, to sorting logic) is inside this
folder: https://github.com/ledgerwatch/erigon-lib/tree/main/txpool
## Internal mode
It's default. No special flags required - just start Erigon.
RPCDaemon - flags `--private.api.addr` and `--txpool.api.addr` must have same value in this case.
## External mode
```
make txpool
# Add `--txpool.disable` flag to Erigon
# External TxPool require(!) external Sentry
./build/bin/sentry --sentry.api.addr=localhost:9091 --datadir=<your_datadir>
# Start TxPool service (it connects to Erigon and Sentry):
# --private.api.addr - connect to Erigon's grpc api
# --sentry.api.addr - connect to Sentry's grpc api
# --txpool.api.addr - other services to connect TxPool's grpc api
# Increase limits flags: --txpool.globalslots, --txpool.globalbasefeeslots, --txpool.globalqueue
# --txpool.trace.senders - print more logs about Txs with senders in this list
./build/bin/txpool --private.api.addr=localhost:9090 --sentry.api.addr=localhost:9091 --txpool.api.addr=localhost:9094 --datadir=<your_datadir>
# Add flag `--txpool.api.addr` to RPCDaemon
```
## ToDo list
[] Hard-forks support (now TxPool require restart - after hard-fork happens)
[] 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
[] move tx.rlp field to separated map, to make tx immutable