* Create MVHashMap and use it StateDB
* Parallel state processor
* Move fee burning and tipping out of state transition to reduce read/write dependencies between transactions
* Re-execute parallel tasks when there is a read in coinbase or burn address
* Block-stm optimization
Added tests for executor and two major improvements:
1. Add a dependency map during execution. This will prevent aborted tasks from being sent for execution immedaitely after failure.
2. Change the key of MVHashMap from string to a byte array. This will reduce time to convert byte slices to strings.
* Remove cache from executor test
* added mvhashmap unit tests (with as key)
* Shard mvhashmap to reduce the time spent in global mutex
* Skip applying intermediate states
* Dependency improvement
* added test for status
* Create MVHashMap and use it StateDB
* Parallel state processor
* Move fee burning and tipping out of state transition to reduce read/write dependencies between transactions
* Re-execute parallel tasks when there is a read in coinbase or burn address
* Txn prioritizer implemented using mutex map (#487)
* basic txn prioritizer implemented using mutex map
* Re-execute parallel tasks when there is a read in coinbase or burn address
* Re-execute parallel tasks when there is a read in coinbase or burn address
* using *sync.RWMutex{} in mutexMap
Co-authored-by: Jerry <jerrycgh@gmail.com>
* added getReadMap and getWriteMap (#473)
* Block-stm optimization
Added tests for executor and some improvements:
1. Add a dependency map during execution. This will prevent aborted tasks from being sent for execution immedaitely after failure.
2. Change the key of MVHashMap from string to a byte array. This will reduce time to convert byte slices to strings.
3. Use sync.Map to reduce the time spent in global mutex.
4. Skip applying intermediate states.
5. Estimate dependency when an execution fails without dependency information.
6. Divide execution task queue into two separate queues. One for relatively certain transactions, and the other for speculative future transactions.
7. Setting dependencies of Txs coming from the same sender before starting parallel execution.
8. Process results in their semantic order (transaction index) instead of the order when they arrive. Replace result channel with a priority queue.
* Do not write entire objects directly when applying write set in blockstm
* fixed a small bug in the Report function (#530)
* linters
Co-authored-by: Jerry <jerrycgh@gmail.com>
* base setup for miner opentel
* version change
* modify ctx passing
* add attributes
* update fill txs span attributes
* fix: use common attributes for remote and local txs
* pass context in seal
* fix
* fix
* add traces to finalize and assemble
* fix
* use task ctx in result loop
* only start parent span if no error
* send nil tracer from Finalize
* clean up
* add sub function timings in span attribute
* modify span attributes
* set time attribute to milliseconds
* linters fix
* fix linters for consensus
* add nolint to worker
* fix testcase
* Added fillTransactions subTraces
* add traces in intermediate root hash function
* add traces in WriteBlockAndSetHead function, fix linters
* fix: linting errors
* fix: test cases
* fix: go.mod
* fix: testcase
* extract tracing package
* linters fix
* debug
* Revert "debug"
This reverts commit 2d68b7c7b1105080563a4e1a6949dabc10acaff8.
* fix: panic in NewTransactionsByPriceAndNonce iteration
* change heimdall version to develop
* miner/worker: fix duplicate call to tx ordering
* miner/worker: refactor tracing
* consensus/bor: use tracing package
* tracing: add more abstraction for spans
* tracing: set all attributes at once
* remove nested tracing from blockchain.WriteBlockAndSetHead function
* remove nested tracing from statedb.IntermediateRoot function
* handle end span in bor.Seal function
* fix: typo
* minor fixes
* fix: linters
* fix: remove nolint
* go mod tidy
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
Co-authored-by: Shivam Sharma <shivam691999@gmail.com>
Co-authored-by: Evgeny Danienko <6655321@bk.ru>
Added tests for executor and some improvements:
1. Add a dependency map during execution. This will prevent aborted tasks from being sent for execution immedaitely after failure.
2. Change the key of MVHashMap from string to a byte array. This will reduce time to convert byte slices to strings.
3. Use sync.Map to reduce the time spent in global mutex.
4. Skip applying intermediate states.
5. Estimate dependency when an execution fails without dependency information.
6. Divide execution task queue into two separate queues. One for relatively certain transactions, and the other for speculative future transactions.
7. Setting dependencies of Txs coming from the same sender before starting parallel execution.
8. Process results in their semantic order (transaction index) instead of the order when they arrive. Replace result channel with a priority queue.
* added go and bash script to get config out of start.sh and updated flagset.go
* changed 'requiredblocks' flag back to 'eth.requiredblocks'
* updated script
* changed 'requiredblocks' flag back to 'eth.requiredblocks'
* updated tests, and removed requiredblocks from json and hcl
* addressed comments
* updated simple.json and simple.hcl
* added annotations for developer and grpc block
* added toml tags and simple.toml file
* added support for toml config files
* updated simple files toml, hcl, json
* added config.toml in builder/files and updated bor.service
* add dumpconfig command in cli for exporting configs
* update docs
* updated .goreleaser.yml (POS-651)
* changed --config to -config
* added test config for tests and fixed lint errors
* made fields of type big.int and time.Duration private, removed merge from dumpconfig, setting up default values to the Raw fields in dumpconfig, and fixed one lint error
* fixed lint errors (strange)
* lint fix
* private no-more, using '-' in name tags to ignore
* updated name tags, made c.configFile as a stringFlag (only one config file supported) and updated the merge logic in command.go -> Run()
* fix: set method for big.Int flags, added a TODO
* handeled bigInt and timeDuration type, bug fix in config_legacy, lint fix
* updated flags, consistent across flags.go and config.go
* fixed config test and updated test hcl, json config files
* updated config legacy test
* added test to check values of cmd flags, restructured Run in command.go, linter fix
* fix linters
* lint again
* changed 2 flags and assert -> require
* changed the 2 flags back
* updated correct congig.toml path and made mainnet default
* updated config.toml with new flags
* added sample config (toml) file
* removed sample-config.toml and added it in docs/config.md
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
* 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
* initial implementation for common ancestor approach
* extract whitelist interface
* fix types
* fix tests and format
* add unit tests for IsValidChain function
* more tests
* wip
* test ErrCheckpointMismatch
* minor fixes
* fix test
* dont panic
* fmt
* Limit state sync by gas
* Added logging for state-sync total gas usage
* Added number of event-records in log
* Minor Changes
* Minor Fix
* Adding individual gasUsed
* Minor Fix
* fix: return value for no remote block
* handle all errors
* modularise fake chain validator in downloader
* add more tests
* fix tests
* Modifying miner.recommit flag and its adjustment function. (#370)
* changed min/max/current recommit values
* Remove Hardcoded min/max
* Code Sanitization
* Skipping tests for constant recommit interval
* Adding default miner.recommit value
* Minor Change
* Increased default value of rpc.txfeecap to 5
* add debug rpc endpoints for checkpoint whitelist service
* minor fixes and enhancements
* avoid capping warnings for gas set by internal system transactions
* use typed mocks
* fix
* fix
* fix
* fix close
* fix
* Create stale.yml
* Fix bor consensus checkpoint bug
Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
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>
Co-authored-by: Ferran <ferranbt@protonmail.com>
Co-authored-by: Krishna Upadhyaya <krishnau1604@gmail.com>
Co-authored-by: Karlo <karlonovak@gmail.com>
Co-authored-by: Sandeep Sreenath <ssandeep@users.noreply.github.com>
Co-authored-by: Jerry <jerrycgh@gmail.com>
* Limit state sync by gas
* Added logging for state-sync total gas usage
* Added number of event-records in log
* Minor Changes
* Minor Fix
* Adding individual gasUsed
* Minor Fix
* it works
* fix tests
* log wiggle and delay with block number
* log delays as numbers
* linters
* fix tests
* restore linters for the project
* fix linters
* fix
* fix
* fix
* linters
* generation
* fix tests
* remove heimdall wrapper response
* linters
* remove possible collisions
* remove possible collisions
* remove possible collisions
* tests for unique address generation
* generalize set
* bor miner tests got restored
* fixes after CR
* final step and mining test
* fix
* fix e2e
* more tests for Heimdall requests
* fix linters
Co-authored-by: Ferran <ferranbt@protonmail.com>
Co-authored-by: Shivam Sharma <shivam691999@gmail.com>
* 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>
* internal: support optional filter expression for debug.stacks
* internal/debug: fix string regexp
* internal/debug: support searching for line numbers too
This PR adds flag to enable InfluxDB v2 (--metrics.influxdbv2), flags for v2-specific features (--metrics.influxdb.token, --metrics.influxdb.bucket), also carries over addition of support for specifying organization (--metrics.influxdb.organization), but still retains backwards compatibility with InfluxDB v1.