* begin 2021.10.2 release cycle
* Revert "rpcdaemon: (#2752)" (#2762)
This reverts commit 2afd028d3d
.
* 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>
1.6 KiB
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 [x] Add --txpool.accountslots [x] 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