* Split up sr_arithmetic.rs
* Add some basic fuzzing
* Add more tests
* Add printing to fuzzing
* Clean things up
* Remove arbitrary
* Remove comments
* More cleaning, fix small error that was causing a panic
* Add rational128
* Remove old random tests
* introduce panic
* fuzzing should panic properly
* Bit of cleanup
* Add a test uncovered via fuzzing that fails!
* Few small changes
* Move sr-arithmetic to its own crate
* Fix fuzzing
* Got rid of fuzzer Cargo.lock
* Added no_std
* re-export assert_eq_error_rate
* bump impl and spec version
* re add convert into
* Add an ignore to the test
* Enabled benchmarking
* Reindent
* Clean up biguint fuzzer
* Clean up biguint more
* shuffle sr-primitives/traits about
* Remove unused dependencies
* Apply clippy suggestions
* upgrade primitive-types versions
* Run tests against num-bigint
* Get rid of allocation in assert_biguints_eq
* Add an optimisation to multiply_by_rational
* rename parts_per_x -> per_things
* Change fuzzer cargo.toml
* Remove allocation from BigUint PartialEq impl
* Remove accidental indentation
* Renmove Lazy and Convert traits
* Copy assert_eq_error_rate macro back to sr-primitives
* Add documentation to fuzzers
* fix sr-primitives assert_eq_error_rate
* add cfg(test)
* Update core/sr-arithmetic/src/traits.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Update core/sr-arithmetic/src/traits.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Update core/sr-arithmetic/fuzzer/src/biguint.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Allow rounding up in rational128
* Make changes to biguint.rs
* Update core/sr-arithmetic/src/traits.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Final touches
* Convert to num_bigint::BigUint to compare
* remove unused mut
* more small changes
* shuffle sr-primitives trait imports
* more code review
* move assert_eq_error_rate to lib.rs
* Update core/sr-arithmetic/fuzzer/src/biguint.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Get rid of S
* Simplify rational128 honggfuzz link
* Insignificantly change rational128 fuzzing code
* Slightly tidy up some of the arithmetic logic
* Get rid of sr_arithmetic again(?) and fix sr-primitives/weights
* Apply updates to sr_arithmetic.rs to crate
* Initial draft that compiles
* Extract payment stuff from balances
* Extract multiplier update stuff from system
* Some fixes.
* Update len-fee as well
* some review comments.
* Remove todo
* bump
* split implementation in multiple files:
* transformation -> genesis_config/ getters.rs instance_trait.rs metadata.rs mod.rs store_trait.rs
* mod.rs -> parser.rs
* impl.rs -> storage_struct.rs
* parser is isolated into parse module, it could be improved as well but this can be done in another PR
* modules contains a defintion of decl_storage input which must be ok to work with.
* implementation change:
* T: Trait might be more often bound to 'static (anyway we only use static one and it is needed for metadata current implementation).
* GenesisConfig no longer requires its fields to be Clone (possible since to EncodeLike feature)
* builder for map storages must return precise type Vec<(key, value)>
* Fix#1536: do not require to construct a block for encoding it
* Bump `impl_version`
* Improve `Block::encode_from` signature and rustdoc (from review by @bkchr)
* First working version of all operations.
* New and improved version of everything.
* Minor cleanup.
* Fix build
* Finalize nignum
* Some final works on refactors and tests.
* fix build
* Some review comments
* Bench, better try into and nits
* mutify the API
* rename to big_uint
* unmutify.
* Remove resize
* Apply suggestions from code review
* Update core/sr-primitives/src/sr_arithmetic.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* BEtter proof
* Fix panic doc.
* Bump.
* 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>
* 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>
* srml/authority-discovery: Abstract session key type
Previously `srml/authority-discovery` dependet on the `srml/im-online`
session key type directly. With this patch `srml/authority-discovery` is
generic over the session key type it is going to use, as long as it
implements the RuntimeAppPublic trait.
With this patch one can use the `srml/authority-discovery` module
without the `srml/im-online` module.
Next to the above, this patch configures `node/runtime` to use the babe
session keys for the authority discovery module.
* srml/authority-discovery: Fix line length
* srml/authority-discovery/Cargo: Move babe to dev-dependencies
* node/runtime: Bump implementation version
* srml/authority-discovery: Add doc comment for authority discovery Trait
* srml: im-online: fix pruning of received heartbeats
* srml: im-online: add test for received heartbeats pruning
* srml: im-online: remove unused variables from test
* node: bump spec_version
* 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.
* 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
* Force new era only when over third validators is disabled.
* Update srml/session/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Update srml/staking/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Parametrize the threshold.
* Bump runtime version.
* Update node/runtime/src/lib.rs
* Fix build.
* Fix im-online test.
* 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
* Sketch
* Some work on docs.
* Doc improvements.
* More docs.
* Some more docs.
* Yet another comment.
* Bump impl_version.
* Accept the block hash
* Use NumberOrHex
* Update node/rpc/src/contracts.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Move rpc/primitives
With the *authority-discovery* module an authoritative node makes itself
discoverable and is able to discover other authorities. Once discovered, a node
can directly connect to other authorities instead of multi-hop gossiping
information.
1. **Making itself discoverable**
1. Retrieve its external addresses
2. Adds its network peer id to the addresses
3. Sign the above
4. Put the signature and the addresses on the libp2p Kademlia DHT
2. **Discovering other authorities**
1. Retrieve the current set of authorities
2. Start DHT queries for the ids of the authorities
3. Validate the signatures of the retrieved key value pairs
4. Add the retrieved external addresses as ~reserved~ priority nodes to the
peerset
* node/runtime: Add authority-discovery as session handler
The srml/authority-discovery module implements the OneSessionHandler in
order to keep its authority set in sync. This commit adds the module to
the set of session handlers.
* core/network: Make network worker return Dht events on poll
Instead of network worker implement the Future trait, have it implement
the Stream interface returning Dht events.
For now these events are ignored in build_network_future but will be
used by the core/authority-discovery module in subsequent commits.
* *: Add scaffolding and integration for core/authority-discovery module
* core/authority-discovery: Implement module logic itself