* consensus-pow: add difficulty data to auxiliary
* Timestamp api
* Implement FinalityProofProvider for ()
* Add DifficultyApi
* Remove assumption that Difficulty is u128
* Use a separate trait for add instead of hard-code it as Saturating
* Some convenience functions to work with PowVerifier
* Try to fix mining unstability
* Fix generic resolution
* Unused best_header variable
* Fix hash calculation
* Remove artificial sleep
* Tweak proposer waiting time
* Revert sleep removal
The reason why it was there is because when mine_loop returns, it means an error
happened. In that case, we'd better sleep for a moment before trying again,
because immediately trying would most likely just fail.
* Pass sync oracle to mining
So that it does not mine when major syncing
* Expose build time as a parameter
Instead of hardcode it as previously 100ms.
* Update lock file
* Fix compile
* Support skipping check_inherents for ancient blocks
For PoW, older blocks are secured by the work, and can mostly be considered to
be finalized. Thus we can save both code complexity and validation time by
skipping checking inherents for them.
* Move difficulty fetch function out of loop
To make things faster
* Remove seed from mining
Each engine can use its own Rng source.
* Better comments
* Add TotalDifficulty definition for U256 and u128
* Update core/consensus/pow/src/lib.rs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Rename TotalDifficulty::add -> increment
* Use SelectChain to fetch the best header/hash
* Update lock file
* Update all dependencies
* Upgrade dependencies whenever “easy”
“easy” means that there are no major changes required.
* Fix build and bump paste dependency to 0.1.6
* Remove dead code
* Re-add = dependency for futures-preview
* Add missing std features for runtime-io
* Remove git dependencies
as updated versions have been published to crates.io
* try to debug bug
* For sr-io, "std" should imply "no_oom" and "no_panic_handler".
Otherwise, rustc complains (correctly) about duplicate lang items.
* Add missing "runtime-io/std" features
* Fix compilation errors
* Prevent duplicate lang items
Rust does not allow duplicate lang items. When compiled without the
`std` feature, `sr-io` defines two lang items. Therefore, `sr-io`
compiled without `feature = "std"` must not be linked with `std`.
However, `pwasm-utils` and `wasmi-validation` both bring in `std` unless
compiled with `default-features = "false"`. This caused a duplicate
lang item error. Building both with `default-features = "false"`
prevents this error. When building with `feature = "std"`, they should
both be built with the `std` feature, so this feature needs to be
explicitly depended on.
* Bump `impl_version`
* Make tests pass
Three tests used 1 less gas than they had previously.
* Try to un-break build
* Add a Cargo.lock file
* Revert offchain code
* Revert "Revert offchain code"
This reverts commit d216d08cc6ca0344614669c1d24cde3aa5c0d4e2.
* Don’t try to send a body with a GET request
without adding a Transfer-Encoding or Content-Length header.
This has always been wrong, but hyperium/hyper#1925 hid the bug until
hyper was upgraded to 0.12.35.
* Change some more GET requests to POST requests
* Fix excess line width and remove an `extern crate`
* Delete commented-out extern crate
Co-Authored-By: Sergei Pepyakin <sergei@parity.io>
* Fix regression in Cargo.toml files
dev-dependencies need `default-features = false`, too.
* Bump parity-wasm dependency
* Bump `futures-preview`
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Update Cargo.lock files
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Update core/service/src/chain_ops.rs
Co-Authored-By: Sergei Pepyakin <sergei@parity.io>
* Refactor parts of BABE verification into separate module
* Fix silly compiler error
* Move more of the verification code to verification.rs
* Remove some unused imports
* Fix line width
* fix testsuite compile error
* Fix compile errors in tests
* Move authorship-related code to its own files
* fix compile errors in tests
* Respond to review comments by @rphmeier
* improve docs
* fix compile error
* Add missing doc comment
* impl
* patch
* lock
* some refactor
* some avoided copy
* new api without ref for doublemap
* fix
* version bump
* fix
* point to incoming release
* use codec latest
* bumpd impl version
* fix unused
* fix
* Update srml/support/src/storage/mod.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* async txpool API
* Update core/rpc/src/author/mod.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update core/transaction-pool/graph/src/pool.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Pool -> Pool + ValidatedPool
* removed lost block_on when importing xt from network
* fix grumbles
* alias for future::Executor in rpc
* removed executor from Author RPCs
* Pool + SharedValidatedPool -> Pool
* fix compilation after merge
* another fix
* another fix
* Give more information why conversion between native and runtime failed
This adds the SCALE error description to the error when the conversion
between native and runtime failed.
* Fixes tests
* Cargo.toml: Pin protobuf version
The protobuf crate introduced a breaking change within its semver minor
update from 2.8.1 to 2.9.0. This commit ensures Substrate uses anything
within the 2.8 minor releases.
* Cargo.lock: Update
* core/sr-api-macros/Cargo.toml: Pin protobuf version
The protobuf crate introduced a breaking change within its semver minor
update from 2.8.1 to 2.9.0. This commit ensures Substrate uses anything
within the 2.8 minor releases.
* Revert "Cargo.toml: Pin protobuf version"
This reverts commit 4e293c741c5c4510cb1a347c444d1876d65ddb1e.
* core/sr-api-macros/Cargo.toml: Pin protobuf within dev-dependencies
* core/sr-api-macros/Cargo.toml: Add comment and link to Githu issue
* Add some chainspec tests and make sure we validate it.
* Manual implementation of Extension + Forks definitions.
* Move chain spec to separate crate.
* Allow using ChainSpec with extensions.
* Renames.
* Implement Extension derive.
* Implement Extension for Forks.
* Support specifying fork blocks.
* make for_blocks work
* Support forks correctly.
* Add a bunch of docs.
* Make fork blocks optional.
* Add missing docs.
* Fix build.
* Use struct for check_block params.
* Fix tests?
* Clean up.
* peerset: fix handling of reserved only peering mode
* core: add cli parameter to enable reserved nodes only
* peerset: fix tests
* peerset: add test for priority only mode
* core: fix reserved only cli flag description
* peerset: extend docs on set_priority_only
The current `debug_assert_eq` is clearly wrong as the code handles zero
response blocks. What should have been expressed is that we expect 0 or
1 response blocks.
* use pdqselect for median_algorithm selection instead of sorting the whole vec
* Make use of pqdselect clearer
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Make use of pqdselect clearer
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Fix indentation
There is a space between the tabs.
* Send local GRANDPA authority id to telemetry
* Update core/finality-grandpa/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Generalize authority_id()
* Shorten code
* Do not send unfinalized authority sets to telemetry
`update_authority_set()` is called from, among others,
import side. These updates only track a pending change
and may or may not happen, hence it's wrong to send
this set to telemetry (which would assume that this is
the current, finalized authority set).
* Send current authority set and local authority id on set change
* always fetch epoch from runtime
* node integration tests don't test light nodes
* give stand-in full node a FULL role
* rejig babe APIs
* introduce next-epoch-descriptor type
* overhaul srml-BABE epoch logic
* ensure VRF outputs end up in the right epoch-randomness
* rewrite `do_initialize` to remove unnecessary loop
* begin accounting for next epoch in epoch function
* slots passes header to epoch_data
* pass slot_number to SlotWorker::epoch_data
* begin extracting epoch-change logic into its own module
* aux methods for block weight
* aux methods for genesis configuration
* comment-out most, refactor header-check pipeline
* mostly flesh out verifier again
* reinstantiate babe BlockImport implementation
* reinstate import-queue instantiation
* reintroduce slot-worker implementation
* reinstate pretty much all the rest
* move fork-choice logic to BlockImport
* fix some, but not all errors
* patch test-runtime
* make is_descendent of slightly more generic
* get skeleton compiling when passing is_descendent_of
* make descendent-of-builder more succinct
* restore ordering of authority_index / slot_number
* start fiddling with tests
* fix warnings
* improve initialization architecture and handle genesis
* tests use correct block-import
* fix BABE tests
* fix some compiler errors
* fix node-cli compilation
* all crates compile
* bump runtime versions and fix some warnings
* tweak fork-tree search implementation
* do backtracking search in fork-tree
* node-cli integration tests now work
* fix broken assumption in test_connectivity
* babe tests fail for the right reasons.
* test genesis epoch logic for epoch_changes
* test that epochs can change between blocks
* First BABE SRML test
* Testing infrastructure for BABE
Also includes a trivial additional test.
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* A little more test progress
* More work on BABE testing
* Try to get the tests working
* Implement `UintAuthorityId`-based test mocks
* Fix compilation errors
* Adjust to upstream changes
* Block numbers are ignored in BABE epoch calculation
* authority_index() should ignore invalid authorities
* Fix compile error
* Add tests that session transitions happen
* Check if BABE produces logs
It currently does not.
* Fix test suite
This was really nasty, due to a type confusion that showed up as an
off-by-1 buffer error.
* Add additional tests
Most of these were derived from the current output, so they are only
useful to guard against regressions.
* Make the tests more readable
Also bump impl_version.
* Fix excessive line width
* Remove unused imports
* Update srml/babe/src/lib.rs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* try to fix imports
* Fix build errors in test suite
* tests did not pass
* Try to get at least one digest to be output
Currently, the code emits either no digests (if I don’t call
`Session::rotate_session()` or two digests (if I do), which is wrong.
* More tests
They still don’t work, but this should help debugging.
* fix silly error
* Don’t even try to compile a broken test
* remove broken check_epoch test and add one for genesis epoch
* Check that the length of the pre-digests is correct
* Bump `impl_version`
* use epoch_for_descendent_of even for genesis
* account for competing block 1s
* finish srml-babe docs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* address grumbles
* core/primitives: set dothereum address type to 4
* subkey: add dothereum to network prefix
* core/primitives: set dothereum address type to 20
* core/primitives: update comment
* core/primitives: set default address to Dothereum
* Revert "core/primitives: set default address to Dothereum"
This reverts commit 2fc95490c89390eb26f200cb314435b1e9ff83e8.
* core/primitives: allow to parse different default address types
* updated direct dependencies to parity-wasm
* fixed tests and incremented impl_version of the runtime
* update wasmi to 0.5.1 in sr-sandbox, bringing all parity-wasm deps up to 0.40