erigon-pulse/cmd/txpool/readme.md

57 lines
1.6 KiB
Markdown
Raw Normal View History

# TxPool v2
2021-09-17 11:21:21 +00:00
Design docs: https://github.com/ledgerwatch/erigon/wiki/Transaction-Pool-Design
Has 2 modes: internal and external
## Internal mode
2021-10-01 02:15:45 +00:00
Works inside Erigon: add `--txpool.v2` flags to Erigon, and `--txpool.v2 --txpool.api.addr localhost:9090` flags to
RPCDaemon
2021-09-17 11:21:21 +00:00
## 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
2021-09-29 07:55:43 +00:00
[x] Handle "NewBlock" message with 200K transactions re-calculation - in under 50ms
[x] Add --txpool.globalslots, --txpool.globalqueue,--txpool.globalbasefeeeslots
Stable 2021 10 02 (#2794) * begin 2021.10.2 release cycle * Revert "rpcdaemon: (#2752)" (#2762) This reverts commit 2afd028d3dd5d136ff28401ad16a7f0d736d96d9. * Pool v2: --txpool.pricelimit support (#2763) * --txpoo.pricelimit support * Pool v2: --txpool.accountslots flag support (#2765) * Update signal_windows.go (#2767) Trap os.interrupt instead of SIGINT and SIGTERM * Update stage_finish.go : notifications to rpc daemon (#2755) * Dockerfile: switch to go1.17 and alpine3.14 (#2766) * add logs in recoverFromDb func (#2769) * eip 1559 in miner (#2773) * Inner errors (#2774) * Clean up DEBUG category logs (#2776) - move many DEBUG logs into TRACE category * Decoding incarnation implemented (#2764) * WIP decoding incarnation specifically * Changed decodeIncarnation to be an external function * added tests to for decoding incarnations * ran gofmt -w -s * changed test name, and changed incarnations to 4 * Created a test which tests if it returns an error when there is one * ran gofmt * Capitalized all tests and made breaking test * added an error check * changed decodingForStorage for decodingIncarnationFromStorage * ran gofmt -w -s * No senders is fine (#2775) * IntermediateHash stage - switch from incremental to re-generate mode - if jump > 100K blocks (#2781) * Enable "State stream" by default (#2780) * No json rpc streaming (#2779) * reduce_bach_concurrency_default * RPCDaemon: reduce --rpc.batch.concurrency default from 50 to 2 (#2784) * Integration to print right stage in logs (#2785) * remove debug prints * RemoteDB: don't spend time to close cursors on end of tx - server will cleanup everything well (#2786) * Fermion genesis block (#2787) * updated Fermion genesis block * Updated Fermion genesis block: added precompiles * Rpcdaemon: add --tevm flag to enable experiment (#2788) * Reworkings of state compression experiments (#2790) * Changes * Progress * Another way * More * More * Produce encoding * Add uncoded characters * cleanup * Add sortdict * Fixes * Use patricia from erigon-lib * Cleanup * Switch to dynamic programming, optimise allocations in FindMatches * Optimise allocations * Reduce allocations * Switch to main branch of erigon-lib, reduce allocations further Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local> Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local> * Ignore MaxPeers param for staticpeers (#2789) Co-authored-by: Aleksandr Borodulin <a.borodulin@axioma.lv> * less warnings * Update skip_analysis.go (#2792) * Extend preverified hashes for mainnet and ropsten (#2793) Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local> Co-authored-by: Alex Sharov <AskAlexSharov@gmail.com> Co-authored-by: Andrea Lanfranchi <andrea.lanfranchi@gmail.com> Co-authored-by: Enrique Jose Avila Asapche <eavilaasapche@gmail.com> Co-authored-by: e-danko <89912851+e-danko@users.noreply.github.com> Co-authored-by: ledgerwatch <akhounov@gmail.com> Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local> Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local> Co-authored-by: Alexandr Borodulin <sashaborodulin@gmail.com> Co-authored-by: Aleksandr Borodulin <a.borodulin@axioma.lv>
2021-10-07 12:02:18 +00:00
[x] Add --txpool.accountslots
[x] Add --txpool.pricelimit
2021-09-24 02:42:17 +00:00
[] 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