`Tempdir` is deprecated, but the functionality has been merged into
another crate: `tempfile`. This commit removes all `tempdir` dependencies
and replaces them with `tempfile` and the equivalent bindings.
Fixes#11560
* Log block number and earliest available block when snapshots fail to start
* Increase default pruning history to 128
Increase default pruning memory to 48Mb
* Decrease SNAPSHOT_PERIOD to 200 to get them snapshots started quicker
* Sync updates to defaults with the args parser
* Fix tests
* Restore the SNAPSHOT_PERIOD to 5000
* One more
* Update ethcore/src/client/config.rs
* Code cleanup
`flush_queue()` is mostly used by tests
remove some unused params
avoid clones in a few places
* Consistent params naming
Consistent use of log calls
* Fix todo
It'a actually not trivial to find out the size of these collections, likely we keep blocks from all kinds of forks in the `self.blocks`/`self.parents` collections and there's no good way to anticipate how many blocks we're going to drain. Most of the time we end up draining 0 blocks and then we drain a whole bunch of them, up to 30 000.
* Revert making flush_queue() test-only
Address review grumbles
* More review grumbles
* fix build
* ethcore: cleanup after #11531
* fix verification benches
* ethcore: remove enact_verified
* ethcore: replace PreverifiedBlock with a tuple
* ethcore: more descriptive Vec<u8> type alias
* update all the changelogs
* update only github URLs in README.md
* sed magic
find . -type f -exec sed -i 's_paritytech/parity-ethereum_OpenEthereum/open-ethereum_g' {} \;
* Faster kill_garbage
Benchmark shows that almost half the time `apply()`-ing a transaction is spent in garbage collection. This PR avoids visiting each cache item and `collect()`-ing accounts to clean up.
* Walk back panicking behaviour
* Review grumble: prefer `and_then` to `if let`
* Misc fixes
Did some code reading and made random changes as I went.
* Update ethcore/src/client/client.rs
Co-Authored-By: Andronik Ordian <write@reusable.software>
Co-authored-by: Andronik Ordian <write@reusable.software>
* debug signer
* Don't panic if empty_steps_transition already happened
Before this the `header_empty_steps_raw` would panic if the chain has already progressed beyond the block number set in `emptyStepsTransition`. As this is a user accessible configuration option I don't think we should panic.
* Cleanup some code in Aura
Nothing really interesting here, renames or removes some methods. Adds some docs and extends a test a bit to clarify the behaviour of the code.
* Include the seal when populating the header for a new block (fixes#11445)
* cleanup
* cleanup2
* Review grumbles
* Update ethcore/engines/authority-round/src/lib.rs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Update ethcore/engines/authority-round/src/lib.rs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Update ethcore/src/block.rs
Co-Authored-By: André Silva <andre.beat@gmail.com>
Co-authored-by: André Silva <andre.beat@gmail.com>
* Use parity-crypto updated to use upstream rust-secp256k1
* Fetch dependency from git
* Missed a session ID
* Add free-standing inversion function that uses `libsecp256k1`
* fixed tests
* Update deps
* Use parity-crypto 0.5.0
Use libsecp256k1 0.3.5
* Review grumble
Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>
* adding a CreateType to ActionParams
* rename calltype to action type
* comments & line lengths
* rebame ActionParams.call_type
* Making call/create type optional
* Moving strict create/call type into trace package instead of storing loosely typed action type
* fix build
* Deriving ActionType from address_scheme in ext.create
* trigger build
* more detailed comments
* Change actions_type to call in vmtests
* skipping serialization for Option::None and using TryFrom instead of maybe_new
* retrigger build
* trigger build
* Only use kvdb "column families"
This PR contains the changes necessary to use the `kvdb-*` crates from https://github.com/paritytech/parity-common/pull/278 (so a synchronized merge is required) which drops support for the old-style rocksdb "default" column to get a smaller and less complex API.
As it stands this PR is working correctly except for secret-store; we need to migrate it to use a new column family.
* Fix secretstore build
* Fix secretstore build: include ethkey when building with the "accounts" feature
* typos
* Restore state test commit
* Override all of parity-common from git
* Be precise about version requirement to migrate secretstore code
* Update ethcore/db/src/db.rs
Co-Authored-By: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* Address review grumbles
* Review grumbles
* Cleanup
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* Add randomness contract support to Authority Round.
Changes have been cherry-picked from poanetwork's aura-pos branch.
Most of the work has been done by @mbr.
* Address review comments for randomness contract.
Co-Authored-By: David <dvdplm@gmail.com>
* Rename revealSecret to revealNumber
* Update Randomness contract bytecode
* Use H256, rename secret to random number.
* Use get_commit_and_cipher
* Clean up Miner::prepare_block.
* Remove is_reveal_phase call.
* Add more comments, require randomness contract map.
* Simplify run_randomness_phase
* Address review comments.
* Remove Client::transact_contract.
* tx-q: basic verification of local transactions
* miner: basic test for local import
* miner: info log when rejecting local txn
* Hernandofmt
Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com>
* miner: assert in a test with the concrete error type
* tx-q: info! -> warn! on local tx rejection
* Use upstream rocksdb
…by way of https://github.com/paritytech/parity-common/pull/257 by @ordian.
* Hint at how `parity db reset` works in the error message
* migration-rocksdb: fix build
* Cargo.toml: use git dependency instead of path
* update to latest kvdb-rocksdb
* fix tests
* saner default for light client
* rename open_db to open_db_light
* update to latest kvdb-rocksdb
* moar update to latest kvdb-rocksdb
* even moar update to latest kvdb-rocksdb
* use kvdb-rocksdb from crates.io
* Update parity/db/rocksdb/helpers.rs
* add docs to memory_budget division
* [ethcore]: apply filter when `from_queue`
In `ready_transactions_filtered` the filter were never applied when
the options PendingSet::AlwaysQueue` was configured which this fixes
It also adds a two tests for it
* [ethcore test-helpers]: stray printlns
* docs(ethcore filter options): more generic desc
* tests(ethcore miner): simply filter tests
* [ethcore filter_options]: fix nits
* doc: nit
Co-Authored-By: David <dvdplm@gmail.com>
* doc: nit
Co-Authored-By: David <dvdplm@gmail.com>
* doc: nit
Co-Authored-By: David <dvdplm@gmail.com>
* doc: nit
Co-Authored-By: David <dvdplm@gmail.com>
* doc: nit
Co-Authored-By: David <dvdplm@gmail.com>
* doc(miner filter): simplify documentation
* [rpc]: make tests compile
* simplify verifier, remove NoopVerifier
* simplify verifier by removing Verifier trait and its only implementation
* remove unused imports
* fixed verification test failing to compile
* Make InstantSeal Instant again
* update_sealing if there are transactions in pool after impoerting a block, some line formatting
* Apply suggestions from code review
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* InstantSeal specific behaviour
* introduce engine.should_reseal_on_update, remove InstantSealService
* remove unused code
* add force param to update_sealing
* better docc
* even better docs
* revert code changes, doc corrections, sort dep
* code optimization
* fix test
* fix bench
* Fix `invalid transaction price` error message
* Setup Calibrated GasPriceConfig when usd-per-eth is an endpoint
The change will try to check if the specified value is an endpoint.
If the value of `auto` is specified, the default endpoint URL will be used
otherwise, the user-provided value will be taken as-is for an endpoint.
* Use if-let and check for usd-per-eth arg:
1. auto = use etherscan
2. value = use fixed pricer
3. endpoint = use the provided endpoint as-is
* Fix typo in to_pricce error message
* Correct whitespace indentation
* Use arg_usd_per_eth directly
* WIP. Typos and logging.
* Format todos
* Pause pruning while a snapshot is under way
Logs, docs and todos
* Allocate memory for the full chunk
* Name snapshotting threads
* Ensure `taking_snapshot` is set to false whenever and however `take_snapshot`returns
Rename `take_at` to `request_snapshot_at`
Cleanup
* Let "in_progress" deletion fail
Fix tests
* Just use an atomic
* Review grumbles
* Finish the sentence
* Resolve a few todos and clarify comments.
* Calculate progress rate since last update
* Lockfile
* Fix tests
* typo
* Reinstate default snapshotting frequency
Cut down on the logging noise
* Use a lock instead of atomics for snapshot Progress
* Update ethcore/types/src/snapshot.rs
Co-Authored-By: Andronik Ordian <write@reusable.software>
* Avoid truncating cast
Cleanup
* WIP. Typos and logging.
* Format todos
* Pause pruning while a snapshot is under way
Logs, docs and todos
* Allocate memory for the full chunk
* Name snapshotting threads
* Ensure `taking_snapshot` is set to false whenever and however `take_snapshot`returns
Rename `take_at` to `request_snapshot_at`
Cleanup
* Let "in_progress" deletion fail
Fix tests
* Just use an atomic
* Review grumbles
* Finish the sentence
* Resolve a few todos and clarify comments.
* Calculate progress rate since last update
* Lockfile
* Fix tests
* typo
* Reinstate default snapshotting frequency
Cut down on the logging noise
* address grumble
* Log memory use with `journal_size()` and explain why.
* Change how RPCs eth_call and eth_estimateGas handle "Pending"
Before this PR we would return a rather confusing error when calling `eth_call` and `eth_estimateGas` with `"Pending"`, e.g.:
```
{"jsonrpc":"2.0","error":{"code":-32000,"message":"This request is not supported because your node is running with state pruning. Run with --pruning=archive."},"id":"e237678f6648ed12ff05a74933d06d17"}
```
In reality what is going on is that users often use `"Pending"` when they really mean `"Latest"` (e.g. MyCrypto…) and when the block in question is not actually pending. This changes our behaviour for these two RPC calls to fall back to `"Latest"` when the query with `"Pending"` fails.
Note that we already behave this way for many other RPCs:
- eth_call (after this PR)
- eth_estimateGas (after this PR)
- eth_getBalance
- eth_getCode
- eth_getStorageAt
Closes https://github.com/paritytech/parity-ethereum/issues/10096
* Fetch jsonrpc from git
* No real need to wait for new jsonrpc
* Add tests for calling eth_call/eth_estimateGas with "Pending"
* Fix a todo, add another
* Change client.latest_state to return the best header as well so we avoid potential data races and do less work
* Impl review suggestions
* Update rpc/src/v1/impls/eth.rs
Co-Authored-By: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* Review grumbles
* update docs
* RPC method parity_clearEngineSigner
Add RPC method parity_clearEngineSigner
Fixes https://github.com/poanetwork/parity-ethereum/issues/113
* corrected the return type of clear_author
* review comment responses and a rebase fix
* removed a spurrious warning
* moved clear_signer functionality to set_signer
* Merge clear_author into MinerService::set_author.
* Add trace logs to Clique::set_signer.
* Clique: Don't lock signer multiple times.