This PR fixes a regression causing snapshots not to be generated in "geth --import" mode. It also fixes the geth export command to be truly readonly, and adds a new test for geth export.
In some cases, inner contract creation may not be successful, and an inner contract was not created. This PR fixes a crash that could occur when doing tracing in such situations.
This PR adds a way to subscribe to the _full_ pending transactions, as opposed to just being notified about hashes.
In use cases where client subscribes to newPendingTransactions and gets txhashes only to then request the actual transaction, the caller can now shortcut that flow and obtain the transactions directly.
Co-authored-by: Felix Lange <fjl@twurst.com>
This PR removes some optimistic tests -- a'la "do something,
wait a while, and hope it has trickled through and continue" -- and
instead uses some introspection to ensure that prerequisites are met.
This changes the node setup to ignore datadir files
static-nodes.json
trusted-nodes.json
When these files are present, it an error will be printed to the log.
This adds a
* core/vm, tests: optimized modexp + fuzzer
* common/math: modexp optimizations
* core/vm: special case base 1 in big modexp
* core/vm: disable fastexp
This changes the error message for mismatching chain ID to show
the given and expected value. Callers expecting this error must be
changed to use errors.Is.
* usbwallet support Ledger Nano S Plus
* accounts/usbwallet: add definitions + ref to ledger docs
Co-authored-by: Martin Holst Swende <martin@swende.se>
* 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>