* changed parallel universe HF to napoli HF
* integration-tests: update ipc path on ci tests (#1127)
* integration-tests: update ipc path on ci tests
* added devnetBorFlags in matic-cli-config.yml
---------
Co-authored-by: Pratik Patil <pratikspatil024@gmail.com>
* Revert "integration-tests: update ipc path on ci tests (#1127)"
This reverts commit 0660fac39b.
* using cancun for block-stm metadata instead of napoli
* added a check to verify tx dependencies and test cases
* fix in snapshot.chainConfig
* removed snapshot.*params.BorConfig using snapshot.chainConfig.Bor instead
* removed unnecessary if statement in ParallelStateProcessor.Process
* addressed comment
* small fix in commitTransactions
* dependency calculation bug fix in miner/worker.go
---------
Co-authored-by: Manav Darji <manavdarji.india@gmail.com>
Co-authored-by: Arpit Temani <temaniarpit27@gmail.com>
* added support for dependencies (executor_tests)
* added a function to get dependency map
* getting all dependencies in the GetDep function
* updated GetDep function
* changed the type of AllDeps
* added a function to get dependency map
* updated GetDep function
* generate and get dependencies from block producer
* optimized getDep function
* bug fix regarding txn index and dep structure
* fixed gas bug
* optimized getDep function
* tests updated/added
* few updates regarding dependencies
* added channel to calculate the dependencies in a separate go routine
* minor changes in the executor which uses latest changes of dependecies + removed metadata flag/argument
* Use channel when metadata is available
* small bug fix
* getting reads and writes only when the transaction succeeds
* fixed bug in adding dependencies
* updated logic for delay/not delay
* bug fix (shouldDelayFeeCal) in parallel state processor
* lint fix
* using EnableMVHashMap flag
* fixed worker and stateProcessor and removed SetMVHashMapNil fumction from stateDB
* addredded few comments and fixed bug in executor tests
* commented executor tests with metadata (panic: test timed out after 5m0s)
* added a check to check len(mvReadMapList) > 0 in miner
* addressed comments, minor refactoring in dag.go
* moved blockContext out of Execute and adding it in execution task
* removed Author() from Settle() and added in execution task
* not calling block.Header() again and again, using instead
* removed EnableMVHashMap flag, and updated applyTransaction function
* addressed comments
* added unit test to check dependencies in the block header
Co-authored-by: Jerry <jerrycgh@gmail.com>
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.
* 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>