* Fix grammar and typo
* Extend network service
* Extend offchain API
* Support creating unsigned UncheckedExtrinsic
* Introduce srml/im-online
* Bump impl and spec version
* Fix web-wasm test
* Apply suggestions from code review
Remove parity-multiaddr dependency
Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com>
* Replace transmute with from_raw_parts
* Replace PeerId.to_string() with .to_base58()
Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com>
* Update Cargo.lock
* Bump impl and spec version (again)
It was updated in master in the meantime.
* Apply suggestions from code review
Co-Authored-By: Sergei Pepyakin <sergei@parity.io>
* Address comments
* Add public function is_online_in_current_session()
* Bump spec_version
* Fix doc tests
* Improve comments
* Remove superfluous line
* Name parameters consistently
* Implement comments
* Switch From to TryFrom
* Use Vec instead of HashSet
* Fix tests
* Revert me: local testing
* Fix check if already sent during session
We gossip each session, hence we need to check
if already sent in this session (not era).
* Fix typos
* Consistent terminology
* Revert "Revert me: local testing"
This reverts commit 73fbc29ff3e5ed71d99436318260b4f007e837f4.
* Introduce IsMember trait
* Implement misc comments
* Remove unused function
* Fix test
* Fix external_addresses being written
* Fix test
* Add necessary trait bound
* Do not increment version
* Update lib.rs
Make `NetworkService.{get,put}_value` only take a self reference instead
of a mutable self reference. When retrieving `NetworkService` via
`NetworkWorker`, one only gets an immutable reference.
Instead of passing a context around to each method, thereby introducing
side-effecting I/O actions everywhere, with this PR `sync::ChainSync`
only contains state which is updated by invoking various callback
methods (`on_*`) and actionable items are returned as regular results
from method calls, often iterators yielding requests that should be
issued to peers. It is up to the caller to handle these in an
appropriate way, currently `protocol` will send those as messages.
* SharedFinalityProofRequestBuilder -> BoxFinalityProofRequestBuilder
* SharedThings -> BoxThings
* Fix tests
* build_request_data now takes &mut self
* The other traits now also take &mut self
* More or less fix tests
* Fix tests
* Fix more tests
* Moar tests
* Don't call make_block_import multiple time
* Fix doctest
* Remove useless internal messages
* Remove NetworkService::disconnect_peer
* Remove NetworkMsg altogether
* Rename ProtocolMsg ServerToWorkerMsg
* Remove useless code
* Add example for parse_str_addr
* Move parse_str_addr and ProtocolId to config
* Don't reexport the content of config
* Rework the imports
* More reexports rework
* Add documentation
* Move finalization report to network future
* Move on_block_imported to worker
* get_value/put_value no longer locking
* local_peer_id() no longer locks
* Remove FetchFuture
* Service imports cleanup
* Produce the network state in the network task
* Merge network task and RPC network task
* Move network methods to NetworkWorker
* Remove Arc peers system from network
* add_reserved_peer now goes through the channel
* Remove Mutex around network swarm
* Remove the FnOnce alias traits
* Replace is_offline with num_connected
* Improve style of poll()
* Fix network tests
* Some doc in service module
* Remove macro export
* Minor doc changes
* Remove the synchronized() method of the import queue
* Line width
* Line widths
* Fix import queue tests
* Fix CLI tests
* Pass the peerset config to ProtocolBehaviour
* Don't pass the protocol versions
* Move fields from protocol_behaviour.rs to protocol.rs
* Remove LocalNetworkOut
* Move CustomProtos from protocol_behaviour.rs to protocol.rs
* Remove ProtocolBehaviour
* Inline poll()
* Force Behaviour to use Protocol
* Don't even attempt to have working tests
* Remove NetworkOut trait
* Line widths
* Add a memory-only option for the network
* Tests cleanup
* Make grandpa/aura/babe compile
* Aura and Babe tests now passing
* More work on tests rewrite
* Attempt to fix grandpa
* Make more grandpa tests pass
* More grandpa tests work
* Work on sync tests
* More work
* light_peer_imports_header_from_announce passes
* can_sync_small_non_best_forks passes
* syncing_node_not_major_syncing_when_disconnected passes
* blocks_are_not_announced_by_light_nodes passing
* All sync tests passing 🎉
* Some TestNet cleanup
* Work on grandpa tests
* More grandpa work
* GrandPa work
* Add check about block_import
* Remove the temporarily added Sync
* Fix network tests warnings
* voter_persists_its_votes passes
* Fix imports in network tests
* Fix service tests
* Call on_block_imported 🤷
* Add shortcut
* Finish using shortcut
* grandpa: initial structure for catch up messages
* grandpa: answer catch up requests
* grandpa: inject catch up messages into global stream
* grandpa: keep track of pending catch up request
* grandpa: block catchup until all referenced blocks are imported
* grandpa: unify catch up and commit streams
* grandpa: simplify communication stream/sink types
* grandpa: note gossip validator on catch up message import
* grandpa: fix cost on catch up message validation
* grandpa: check signatures on catch up messages
* grandpa: clean up catch up request handling state
* grandpa: adjust costs on invalid catch up requests
* grandpa: release lock before pushing catch up message
* grandpa: validate catch up request against peer view
* grandpa: catch up docs
* grandpa: fix tests
* grandpa: until_imported: add tests for catch up messages
* grandpa: add tests for catch up message gossip validation
* grandpa: integrate HistoricalVotes changes
* grandpa: add test for neighbor packet triggering catch up
* grandpa: add test for full voter catch up
* grandpa: depend on finality-grandpa 0.8 from crates
* granda: use finality-grandpa test helpers
* grandpa: add PSM cost for answering catch up requests
* grandpa: code style fixes
Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>
* grandpa: more trailing commas
* grandpa: lower cost of invalid catch up requests near set change
* grandpa: process catch up sending on import of neighbor message
* grandpa: add comments on HistoricalVotes
* grandpa: use finality-grandpa v0.8.1 from crates.io
* grandpa: fix test compilation
* Introduce `wasm-builder` and `wasm-builder-runner` to retire `build.sh`
Make use of `wasm-builder` in `test-runtime`.
* Add build script and remove the wasm project
* Port `node-runtime` to new wasm-builder
* Make `substrate-executor` tests work with `wasm-builder`
* Move `node-template` to `wasm-builder`
* Remove `build.sh` :)
* Remove the last include_bytes
* Adds the missing build.rs files
* Remove `build.sh` from CI
* Debug CI
* Make it work in CI
* CI attempt 3
* Make `substrate-runtime-test` compile on stable
* Ahhh, some missed `include_bytes!`
* AHH
* Add suggestions
* Improve search for `Cargo.lock` and don't panic if it is not found
* Searching from manifest path was no good idea
* Make the `wasm-builder` source better configurable
* Expose the bloaty wasm binary as well
* Make sure to rerun WASM recompilation on changes in dependencies
* Introduce new `WASM_BUILD_TYPE` env and make sure to call `build.rs` on
changes to env variables
* Remove `build.sh` from READMEs
* Rename the projects
* Fixes CI
* Update lock file
* Fixes merge-conflict
* Apply suggestions from code review
Co-Authored-By: TriplEight <denis.pisarev@parity.io>
* Try to make windows happy
* Replace all back slashes in paths with slashes
* Apply suggestions from code review
Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com>
* Use cargo from `CARGO` env variable
* Fix compilation
* Use `rustup` for running the nightly build
* Make individual projects skipable
* Fix compilation
* Fixes compilation
* Build all WASM projects in one workspace
* Replace more back slashes!
* Remove `inlcude_bytes!`
* Adds some documentation
* Apply suggestions from code review
Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>
* Apply suggestions from code review
Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>
* More review comments
* Update `Cargo.lock`
* Set license
* Apply suggestions from code review
Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
* More review comments + adds `TRIGGER_WASM_BUILD` env
* Fix doc tests
* Increase version + update README
* Switch crates.io version of `wasm-builder`
* Update README
* Switch to released version of `wasm-builder-runner`
* Fix DiscoveryBehaviour::poll.
The previous implementation regularly returned `NotReady` from `poll`
despite the inner Kademlia behaviour having events ready, thus letting
the `poll`ing be largely driven by the task wakeups from the Delay for
the next random Kademlia query, inducing major delays in consuming
the ready Kademlia events and thus slowing progress.
The discovery test now passes quickly, as expected.
* Ensure the Delay is polled right after reset.
For task wakeup.
* Initial work on relative slots for BABE
* More work
* Update core/consensus/babe/src/lib.rs
`Aura` → `Babe`
Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com>
* More work on relative slots
* Add missing field in test-runtime
* Bump `impl_version` and `authoring_version`
* Fix compile errors and warnings
* Upgrade dependencies
* Update dependencies more
* Revert some updates to dependencies
Somehow, those broke the build
* Fix compilation errors
* `Duration` → `u128` in calculations
* `slot_duration` is in milleseconds, not seconds
* Median algorithm: ignore blocks with slot_num < sl
* Fix silly compile error
* Store a duration, rather than an instant
It is more useful
* Fix compilation errors
* `INVERSE_NANO` → `NANOS_PER_SEC`
Also: `1000_000_000` → `1_000_000_000`
Suggested-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* Un-bump `authoring_version`
* Disable median algorithm when `median_required_blocks` is 0
Otherwise it would panic.
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Simplify panic
* Fix build error
* Create `SignedDuration` struct
for signed `Duration` values.
Suggested-by: Bastian Köcher
* Refactor median algorithm into separate function
* Add issues for FIXMEs and respond to code review
* Fix minor warnings
* Add documentation at the root of substrate-network
* Apply suggestions from code review
Co-Authored-By: Toralf Wittner <tw@dtex.org>
* Grmlblbl
* Adjustments
* Link to Yamux specs
* ImportQueue methods are now mut
* Link methods are now mut
* Remove Arc from BasicSyncQueue
* Fix tests
* Remove BasicSyncQueue
* Change the import queue API
* Add buffered_link
* Remove obsolete tests
* Comments and style improvement pass
* Fix grandpa and comment cleanup
* Update core/consensus/common/src/import_queue.rs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Added some documentation and question on the main sync code
* Remove strange formatting change
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Improve comment per suggestion
* Remove comment about re-using PeerInfo, no real reason and no real consensus if it's better or worse.
* Fix redundancy in comment
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Explaining more things and fixing review comments.
* Better explanation of MAJOR_SYNC_BLOCKS
* Explains the ancestor search strategy a bit
* Corrects explanation of what a stale block is
* Adds a bit of context for `request_ancestry` function
* Revert code change to not confuse the PR
* Change network::sync::extra_requests to not send.
Instead it only maintains the invariants and leaves the actual I/O part
to the parent module (i.e. `sync`).
* Update Cargo.lock.
* Draft of new sessions
* Reintroduce tuple impls
* Move staking module to new session API
* More work on staking and grandpa.
* Use iterator to avoid cloning and tuple macro
* Make runtime build again
* Polish the OpaqueKeys devex
* Move consensus logic into system & aura.
* Fix up system module
* Get build mostly going. Stuck at service.rs
* Building again
* Update srml/staking/src/lib.rs
Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
* Refactoring out Consensus module, AuthorityIdOf, &c.
* Refactored out DigestItem::AuthoritiesChanged. Building.
* Remove tentative code
* Remove invalid comment
* Make Seal opaque and introduce nice methods for handling opaque items.
* Start to use proper digest for Aura authorities tracking.
* Fix up grandpa, remove system::Raw/Log
* Refactor Grandpa to use new logging infrastructure.
Also make authorityid/sessionkey static. Switch over to storing
authorities in a straight Vec.
* Building again
* Tidy up some AuthorityIds
* Expunge most of the rest of the AuthorityKey confusion.
Also, de-generify Babe and re-generify Aura.
* Remove cruft
* Untangle last of the `AuthorityId`s.
* Sort out finality_tracker
* Refactor median getting
* Apply suggestions from code review
Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>
* Session tests works
* Update core/sr-primitives/src/generic/digest.rs
Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
* Session tests works
* Fix for staking from @dvc94ch
* log an error
* fix test runtime build
* Some test fixes
* Staking mock update to new session api.
* Fix build.
* Move OpaqueKeys to primitives.
* Use on_initialize instead of check_rotate_session.
* Update tests to new staking api.
* fixup mock
* Fix bond_extra_and_withdraw_unbonded_works.
* Fix bond_with_little_staked_value_bounded_by_slot_stake.
* Fix bond_with_no_staked_value.
* Fix change_controller_works.
* Fix less_than_needed_candidates_works.
* Fix multi_era_reward_should_work.
* Fix nominating_and_rewards_should_work.
* Fix nominators_also_get_slashed.
* Fix phragmen_large_scale_test.
* Fix phragmen_poc_works.
* Fix phragmen_score_should_be_accurate_on_large_stakes.
* Fix phragmen_should_not_overflow.
* Fix reward_destination_works.
* Fix rewards_should_work.
* Fix sessions_and_eras_should_work.
* Fix slot_stake_is_least_staked_validator.
* Fix too_many_unbond_calls_should_not_work.
* Fix wrong_vote_is_null.
* Fix runtime.
* Fix wasm runtime build.
* Update Cargo.lock
* Fix warnings.
* Fix grandpa tests.
* Fix test-runtime build.
* Fix template node build.
* Fix stuff.
* Update Cargo.lock to fix CI
* Re-add missing AuRa logs
Runtimes are required to know about every digest they receive ― they
panic otherwise. This re-adds support for AuRa pre-runtime digests.
* Update core/consensus/babe/src/digest.rs
Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
* Kill log trait and all that jazz.
* Refactor staking tests.
* Fix ci runtime wasm check.
* Line length 120.
* Make tests build again
* Remove trailing commas in function declarations
The `extern_functions!` macro doesn’t like them, perhaps due to a bug in
rustc.
* Fix type error
* Fix compilation errors
* Fix a test
* Another couple of fixes
* Fix another test
* More test fixes
* Another test fix
* Bump runtime.
* Wrap long line
* Fix build, remove redundant code.
* Issue to track TODO
* Leave the benchmark code alone.
* Fix missing `std::time::{Instant, Duration}`
* Indentation
* Aura ConsensusLog as enum
* Move network-libp2p into network
* Merge libp2p_service into service
* Don't expose RegisteredProtocol in the API
* Extract DiscoveryBehaviour from Behaviour
* Restore libp2p tests
* Add a test for discovery
* Line width
* Remove bandwidth check
* Fix gitlab
* Remove compilation warnings.
* Allow unused only not in tests.
* Remove unnecessary mut.
* Make CI happy.
* Revert "Make CI happy."
This reverts commit abb865fe4b9fe9af1ae3ec801da9d4305ea35765.
* Make test-client generic over runtime.
* Make sure genesis storage is constructed correctly.
* Use prelude in tests.
* Add an example of how to use test-client with node/runtime.
* Bump version.
* Rename test-clients.
* Drop import_lock from client, move it into backend, impl default version via static mutex
* still need to allow depcretion because of client.backend
* additional docs
* Remove default impl of get_import_lock, impl on instances
* Bump parking_lot to 0.8.0 accross the board