* Merge qa to master (#750)
* Added checks to RPC requests and introduced new flags to customise the parameters (#657)
* added a check to reject rpc requests with batch size > the one set using a newly added flag (rpcbatchlimit)
* added a check to reject rpc requests whose result size > the one set using a newly added flag (rpcreturndatalimit)
* updated the config files and docs
* chg : trieTimeout from 60 to 10 mins (#692)
* chg : trieTimeout from 60 to 10 mins
* chg : cache.timout to 10m from 1h in configs
* internal/cli/server : fix : added triesInMemory in config (#691)
* changed version from 0.3.0 to 0.3.4-beta (#693)
* fix nil state-sync issue, increase grpc limit (#695)
* Increase grpc message size limit in pprof
* consensus/bor/bor.go : stateSyncs init fixed [Fix#686]
* eth/filters: handle nil state-sync before notify
* eth/filters: update check
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Daniil <daniil.melnik@chainstack.com>
* core, tests/bor: add more tests for state-sync validation (#710)
* core: add get state sync function for tests
* tests/bor: add validation for state sync events post consensus
* Arpit/temp bor sync (#701)
* Increase grpc message size limit in pprof
* ReadBorReceipts improvements
* use internal function
* fix tests
* fetch geth upstread for ReadBorReceiptRLP
* Only query bor receipt when the query index is equal to # tx in block body
This change reduces the frequency of calling ReadBorReceipt and
ReadBorTransaction, which are CPU and db intensive.
* Revert "fetch geth upstread for ReadBorReceiptRLP"
This reverts commit 2e838a6b1313d26674f3a8df4b044e35dcbf35a0.
* Restore ReadBorReceiptRLP
* fix bor receipts
* remove unused
* fix lints
---------
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
* Revert "chg : trieTimeout from 60 to 10 mins (#692)" (#720)
This reverts commit 241843c7e7.
* Arpit/add execution pool 2 (#719)
* initial
* linters
* linters
* remove timeout
* update pool
* change pool size function
* check nil
* check nil
* fix tests
* Use execution pool from server in all handlers
* simplify things
* test fix
* add support for cli, config
* add to cli and config
* merge base branch
* debug statements
* fix bug
* atomic pointer timeout
* add apis
* update workerpool
* fix issues
* change params
* fix issues
* fix ipc issue
* remove execution pool from IPC
* revert
* fix tests
* mutex
* refactor flag and value names
* ordering fix
* refactor flag and value names
* update default ep size to 40
* fix bor start issues
* revert file changes
* debug statements
* fix bug
* update workerpool
* atomic pointer timeout
* add apis
* Merge branch 'add-execution-pool' of github.com:maticnetwork/bor into arpit/add-execution-pool
* fix issues
* change params
* fix issues
* fix ipc issue
* remove execution pool from IPC
* revert
* merge base branch
* Merge branch 'add-execution-pool' of github.com:maticnetwork/bor into arpit/add-execution-pool
* mutex
* fix tests
* Merge branch 'arpit/add-execution-pool' of github.com:maticnetwork/bor into arpit/add-execution-pool
* Change default size of execution pool to 40
* refactor flag and value names
* fix merge conflicts
* ordering fix
* refactor flag and value names
* update default ep size to 40
* fix bor start issues
* revert file changes
* fix linters
* fix go.mod
* change sec to ms
* change default value for ep timeout
* fix node api calls
* comment setter for ep timeout
---------
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
* version change (#721)
* Event based pprof (#732)
* feature
* Save pprof to /tmp
---------
Co-authored-by: Jerry <jerrycgh@gmail.com>
* Cherry-pick changes from develop (#738)
* Check if block is nil to prevent panic (#736)
* miner: use env for tracing instead of block object (#728)
---------
Co-authored-by: Dmitry <46797839+dkeysil@users.noreply.github.com>
* add max code init size check in txpool (#739)
* Revert "Event based pprof" and update version (#742)
* Revert "Event based pprof (#732)"
This reverts commit 22fa4033e8.
* params: update version to 0.3.4-beta3
* packaging/templates: update bor version
* params, packaging/templates: update bor version
---------
Co-authored-by: SHIVAM SHARMA <shivam691999@gmail.com>
Co-authored-by: Pratik Patil <pratikspatil024@gmail.com>
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Daniil <daniil.melnik@chainstack.com>
Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
Co-authored-by: Dmitry <46797839+dkeysil@users.noreply.github.com>
* core, miner: add sub-spans for tracing (#753)
* core, miner: add sub-spans for tracing
* fix linters
* core: add logs for debugging
* core: add more logs to print tdd while reorg
* fix linters
* core: minor fix
* core: remove debug logs
* core: use different span for write block and set head
* core: use internal context for sending traces (#755)
* core: add : impossible reorg block dump (#754)
* add : impossible reorg block dump
* chg : 3 seperate files for impossoble reorg dump
* add : use exportBlocks method and RLP blocks before writing
* chg : small changes
* bump : go version from 1.19 to 1.20.1 (#761)
* Revert "bump : go version from 1.19 to 1.20.1 (#761)"
This reverts commit 4561012af9.
* core/vm: use optimized bigint (#26021)
* Add holiman/big
* Fix linter
* Bump version to v0.3.5
* fix lints from develop (few lints decided to appear from code that was untouched, weird)
* upgrade crypto lib version (#770)
* bump dep : github.com/Masterminds/goutils to v1.1.1 (#769)
* mardizzone/pos-1313: bump crypto dependency (#772)
* dev: chg: bumd net dependency
* dev: chg: bump crypto dependency
* dev: chg: bump crypto dependency
* bump dep : golang.org/x/net to v0.8.0 (#771)
* Verify validator set against local contract on receiving an end-of-sprint block (#768)
* Verify validator set against local contract on receiving an end-of-sprint block
* Fix tests
* Respect error returned by ParseValidators
* Keep going back until a parent block presents
* core/txpool: implement DoS defenses from geth (#778)
* Hotfixes and deps bump (#776)
* dev: chg: bump deps
* internal/cli/server, rpc: lower down http readtimeout to 10s
* dev: chg: get p2p adapter
* dev: chg: lower down jsonrpc readtimeout to 10s
* cherry-pick txpool optimisation changes
* add check for empty lists in txpool (#704)
* add check
* linters
* core, miner: add empty instrumentation name for tracing
---------
Co-authored-by: Raneet Debnath <raneetdebnath10@gmail.com>
Co-authored-by: SHIVAM SHARMA <shivam691999@gmail.com>
Co-authored-by: Evgeny Danilenko <6655321@bk.ru>
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
* packaging,params: bump to v0.3.6 (#782)
* v0.3.6 fix (#787)
* Fix get validator set in header verifier
* chg : commit tx logs from info to debug (#673)
* chg : commit tx logs from info to debug
* fix : minor changes
* chg : miner : commitTransactions-stats moved from info to debug
* lint : fix linters
* refactor logging
* miner : chg : UnauthorizedSignerError to debug
* lint : fix lint
* fix : log.Logger interface compatibility
---------
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
* Remove unnecessary sorting of valset from header in verification
* dev: chg: version bump
---------
Co-authored-by: SHIVAM SHARMA <shivam691999@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
Co-authored-by: marcello33 <marcelloardizzone@hotmail.it>
* core: improve locks in txpool (#807)
* added a write lock to the txs.filter method and a read lock to the txs.reheap method - both of which are called by Filter during reorg adjustments to txpool
* txpool reorg locks
* more locks
* locks
* linters
* params, packaging: update version for v0.3.8-beta release
* core: add logs in reheap
---------
Co-authored-by: Alex <dalexwatts@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
* Merge qa to master (#808)
* Added checks to RPC requests and introduced new flags to customise the parameters (#657)
* added a check to reject rpc requests with batch size > the one set using a newly added flag (rpcbatchlimit)
* added a check to reject rpc requests whose result size > the one set using a newly added flag (rpcreturndatalimit)
* updated the config files and docs
* chg : trieTimeout from 60 to 10 mins (#692)
* chg : trieTimeout from 60 to 10 mins
* chg : cache.timout to 10m from 1h in configs
* internal/cli/server : fix : added triesInMemory in config (#691)
* changed version from 0.3.0 to 0.3.4-beta (#693)
* fix nil state-sync issue, increase grpc limit (#695)
* Increase grpc message size limit in pprof
* consensus/bor/bor.go : stateSyncs init fixed [Fix#686]
* eth/filters: handle nil state-sync before notify
* eth/filters: update check
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Daniil <daniil.melnik@chainstack.com>
* core, tests/bor: add more tests for state-sync validation (#710)
* core: add get state sync function for tests
* tests/bor: add validation for state sync events post consensus
* Arpit/temp bor sync (#701)
* Increase grpc message size limit in pprof
* ReadBorReceipts improvements
* use internal function
* fix tests
* fetch geth upstread for ReadBorReceiptRLP
* Only query bor receipt when the query index is equal to # tx in block body
This change reduces the frequency of calling ReadBorReceipt and
ReadBorTransaction, which are CPU and db intensive.
* Revert "fetch geth upstread for ReadBorReceiptRLP"
This reverts commit 2e838a6b1313d26674f3a8df4b044e35dcbf35a0.
* Restore ReadBorReceiptRLP
* fix bor receipts
* remove unused
* fix lints
---------
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
* Revert "chg : trieTimeout from 60 to 10 mins (#692)" (#720)
This reverts commit 241843c7e7.
* Arpit/add execution pool 2 (#719)
* initial
* linters
* linters
* remove timeout
* update pool
* change pool size function
* check nil
* check nil
* fix tests
* Use execution pool from server in all handlers
* simplify things
* test fix
* add support for cli, config
* add to cli and config
* merge base branch
* debug statements
* fix bug
* atomic pointer timeout
* add apis
* update workerpool
* fix issues
* change params
* fix issues
* fix ipc issue
* remove execution pool from IPC
* revert
* fix tests
* mutex
* refactor flag and value names
* ordering fix
* refactor flag and value names
* update default ep size to 40
* fix bor start issues
* revert file changes
* debug statements
* fix bug
* update workerpool
* atomic pointer timeout
* add apis
* Merge branch 'add-execution-pool' of github.com:maticnetwork/bor into arpit/add-execution-pool
* fix issues
* change params
* fix issues
* fix ipc issue
* remove execution pool from IPC
* revert
* merge base branch
* Merge branch 'add-execution-pool' of github.com:maticnetwork/bor into arpit/add-execution-pool
* mutex
* fix tests
* Merge branch 'arpit/add-execution-pool' of github.com:maticnetwork/bor into arpit/add-execution-pool
* Change default size of execution pool to 40
* refactor flag and value names
* fix merge conflicts
* ordering fix
* refactor flag and value names
* update default ep size to 40
* fix bor start issues
* revert file changes
* fix linters
* fix go.mod
* change sec to ms
* change default value for ep timeout
* fix node api calls
* comment setter for ep timeout
---------
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
* version change (#721)
* Event based pprof (#732)
* feature
* Save pprof to /tmp
---------
Co-authored-by: Jerry <jerrycgh@gmail.com>
* Cherry-pick changes from develop (#738)
* Check if block is nil to prevent panic (#736)
* miner: use env for tracing instead of block object (#728)
---------
Co-authored-by: Dmitry <46797839+dkeysil@users.noreply.github.com>
* add max code init size check in txpool (#739)
* Revert "Event based pprof" and update version (#742)
* Revert "Event based pprof (#732)"
This reverts commit 22fa4033e8.
* params: update version to 0.3.4-beta3
* packaging/templates: update bor version
* internal/ethapi :: Fix : newRPCTransactionFromBlockIndex
* fix: remove assignment for bor receipt
---------
Co-authored-by: SHIVAM SHARMA <shivam691999@gmail.com>
Co-authored-by: Pratik Patil <pratikspatil024@gmail.com>
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Daniil <daniil.melnik@chainstack.com>
Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
Co-authored-by: Dmitry <46797839+dkeysil@users.noreply.github.com>
* Setting up bor to use hosted 18.04 runner as ubuntu provided 18.04 runner is end of life
---------
Co-authored-by: SHIVAM SHARMA <shivam691999@gmail.com>
Co-authored-by: Pratik Patil <pratikspatil024@gmail.com>
Co-authored-by: Jerry <jerrycgh@gmail.com>
Co-authored-by: Daniil <daniil.melnik@chainstack.com>
Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
Co-authored-by: Dmitry <46797839+dkeysil@users.noreply.github.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: marcello33 <marcelloardizzone@hotmail.it>
Co-authored-by: Raneet Debnath <raneetdebnath10@gmail.com>
Co-authored-by: Raneet Debnath <35629432+Raneet10@users.noreply.github.com>
Co-authored-by: Alex <dalexwatts@gmail.com>
Co-authored-by: Daniel Jones <djones@polygon.technology>
* merge geth v1.10.15
* fix: Removed FastSync from cli server
* fix: TestHeadersRLPStorage
* Added t.skip(ETH2 in bor)
* fix: flow in create consensus engine
* bumped version
* Fix typo
* increase block time
* remove file
* bumped version
* merge gethv1.10.17
* bumped version
* fix failing tests
* Bump Go version to v1.18 (#368)
* Bump Go version to v1.18.1
* Build using netgo tag
This will create a static build using Go native networking stack.
Checked and it works stable for all archs and distros.
* Fix meta
* Bump version
* Meta as stable
Co-authored-by: Shivam Sharma <shivam691999@gmail.com>
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
Co-authored-by: Sandeep Sreenath <sandeep.sreenath@gmail.com>
Co-authored-by: Victor Castell <victor@victorcastell.com>
* core: added local tx pool test case
* core, crypto: various allocation savings regarding tx handling
* core/txlist, txpool: save a reheap operation, avoid some bigint allocs
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
* core: use uint64 for total tx costs instead of big.Int
* core: added local tx pool test case
* core, crypto: various allocation savings regarding tx handling
* Update core/tx_list.go
* core: added tx.GasPriceIntCmp for comparison without allocation
adds a method to remove unneeded allocation in comparison to tx.gasPrice
* core: handle pools full of locals better
* core/tests: benchmark for tx_list
* core/txlist, txpool: save a reheap operation, avoid some bigint allocs
Co-authored-by: Martin Holst Swende <martin@swende.se>
* core, crypto: various allocation savings regarding tx handling
* core: reduce allocs for gas price comparison
This change reduces the allocations needed for comparing different transactions to each other.
A call to `tx.GasPrice()` copies the gas price as it has to be safe against modifications and
also needs to be threadsafe. For comparing and ordering different transactions we don't need
these guarantees
* core: added tx.GasPriceIntCmp for comparison without allocation
adds a method to remove unneeded allocation in comparison to tx.gasPrice
* core/types: pool legacykeccak256 objects in rlpHash
rlpHash is by far the most used function in core that allocates a legacyKeccak256 object on each call.
Since it is so widely used it makes sense to add pooling here so we relieve the GC.
On my machine these changes result in > 100 MILLION less allocations and > 30 GB less allocated memory.
* reverted some changes
* reverted some changes
* trie: use crypto.KeccakState instead of replicating code
Co-authored-by: Martin Holst Swende <martin@swende.se>
* core: use a wrapped `map` and `sync.RWMutex` for `TxPool.all` to remove contention in `TxPool.Get`.
* core: Remove redundant `txLookup.Find` and improve comments on txLookup methods.
* core: allow price bump at threshold
* core: test changes to allow price bump at threshold
* core: reinstate tx replacement test underneath threshold
* core: minor test failure message cleanups
This PR implements the new LES protocol version extensions:
* new and more efficient Merkle proofs reply format (when replying to
a multiple Merkle proofs request, we just send a single set of trie
nodes containing all necessary nodes)
* BBT (BloomBitsTrie) works similarly to the existing CHT and contains
the bloombits search data to speed up log searches
* GetTxStatusMsg returns the inclusion position or the
pending/queued/unknown state of a transaction referenced by hash
* an optional signature of new block data (number/hash/td) can be
included in AnnounceMsg to provide an option for "very light
clients" (mobile/embedded devices) to skip expensive Ethash check
and accept multiple signatures of somewhat trusted servers (still a
lot better than trusting a single server completely and retrieving
everything through RPC). The new client mode is not implemented in
this PR, just the protocol extension.
The commit reworks the transaction pool queue limitation tests
to cater for testing local accounts, also testing the nolocal flag.
In addition, it also fixes a panic if local transactions exceeded
the global queue allowance (no accounts left to drop from) and also
fixes queue eviction to operate on all accounts, not just the one
being updated.