* BabeWorker -> BabeSlotWorker
* SlotWorker::notify_slot: similar to claim_slot, but called no matter authoring
* Wrap the future with a new struct BabeWorker
* Add type definition slot_notification_sinks
* Function slot_notification_streams for the receiver side
* Get a handle of slot_notification_sinks in BabeSlotWorker
* Implement notify_slot
* Switch to use bounded mpsc
* Do not drop the sink when channel is full
Only skip sending the message and emit a warning, because it is recoverable.
* Fix future type bounds
* Add must_use and sink type alias
* Update README docs related to local build
Closes#1476
* Update command per @ordian
Co-authored-by: Andronik Ordian <write@reusable.software>
* Remove reference to old install script
Co-authored-by: Andronik Ordian <write@reusable.software>
* BabeImportQueue -> DefaultImportQueue
* Use DefaultImportQueue from the top level of consensus_common
* 'Update substrate'
Co-authored-by: parity-processbot <>
* support custom ss58addressformat in from_ss58check_with_version
* fix str parse
1. if can parse with u8, use u8 into.
2. if u8 can't parse, convert to str then parse
* add a test
* typo
* add error description in test
* fix the `TryFrom<u8>` for `Ss58AddressFormat`
change check logic in TryFrom<u8> to replace modified code in `from_ss58check_with_version`
* use Ss58AddressFormat::default() replace DEFAULT_VERSION
* Apply suggestions from code review
* Update primitives/core/src/crypto.rs
* Update primitives/core/src/crypto.rs
* Update primitives/core/src/crypto.rs
* Update primitives/core/src/crypto.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Apply suggestions from #1364 code review
- use CoreState, not CoreOccupied
- query for availability chunks, not the whole PoV
- create a stub `fn availability_cores`
* link to issue documenting unimplemented
* implement get_availability_cores by adding a new runtime api request
* back out an unrelated change properly part of #1404
* av-store: handle QueryChunkAvailability
* simplify QueryDataAvailability
* remove extraneous whitespace
* compact primitive imports
* client/network/src/discovery: Adjust to Kademlia API changes
* client/network: Add peers to DHT only if protocols match
With https://github.com/libp2p/rust-libp2p/pull/1628 rust-libp2p allows
manually controlling which peers are inserted into the routing table.
Instead of adding each peer to the routing table automatically, insert
them only if they support the local nodes protocol id (e.g. `dot`)
retrieved via the `identify` behaviour.
For now this works around
https://github.com/libp2p/rust-libp2p/issues/1611. In the future one
might add more requirements. For example one might try to exclude
light-clients.
* Cargo.toml: Remove crates.io patch for libp2p
* client/network/src/behaviour: Adjust to PeerInfo name change
* client/network/src/discovery: Rework Kademlia event matching
* client/network/discovery: Add trace on adding peer to DHT
* client/network/discovery: Retrieve protocol name from kad behaviour
* client/network/discovery: Fix formatting
* client/network: Change DiscoveryBehaviour::add_self_reported signature
* client/network: Document manual insertion strategy
* client/network/discovery: Remove TODO for ignoring DHT address
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
* Add NetworkService::send_notifications
* Doc
* Doc
* API adjustment
* Address concerns
* Make it compile
* Start implementation
* Progress in the implementation
* Change implementation strategy again
* More work before weekend
* Finish changes
* Minor doc fix
* Revert some minor changes
* Apply suggestions from code review
* GroupError -> NotifsHandlerError
* Apply suggestions from code review
Co-authored-by: Roman Borschel <romanb@users.noreply.github.com>
* state_transition_waker -> close_waker
* Apply suggestions from code review
Co-authored-by: Roman Borschel <romanb@users.noreply.github.com>
* Finish renames in service.rs
* More renames
* More review suggestsions applied
* More review addressing
* Final change
* 512 -> 2048
Co-authored-by: Roman Borschel <romanb@users.noreply.github.com>
* seal: Fix syntax that confuses rust-analyzer
* seal: Add benchmarks for Dispatchables
These are only the benchmarks for the dispatchables of
the pallet. Those are not listed in the Schedule because
we do not want to pull the Schedule from storage before
dispatching.
This OK because those costs are not related to actual contract
execution. Those costs (instruction costs, ext_* costs) will
be benchmarked seperatly and entered into the default Schedule.
* seal: Add a maximum code size
* Fix comments from review
* Removed SEED constant
Subsystems are encouraged to either typedef themselves as appropriate
`JobManager` instances for their job type, or wrap a `JobManager`
instance and delegate the `Subsystem` impl. In both cases, we want
to use a sensible, non-repeated subsystem name for appropriate
logging and debugging.
This PR adds a heuristic: if the job name ends in the literal
"Job", then that gets stripped. Otherwise, the job name is used.
This improves on the previous situation, in which subsystems
typedef'd to or wrapping `JobManager` all got the same constant (!)
name.
* polkadot-subsystem: update runtime API message types
* update all networking subsystems to use fallible runtime APIs
* fix bitfield-signing and make it use new runtime APIs
* port candidate-backing to handle runtime API errors and new types
* remove old runtime API messages
* remove unused imports
* fix grumbles
* fix backing tests
* Remove service components and add build_network, build_offchain_workers etc
* Improve transaction pool api
* Remove commented out line
* Add PartialComponents
* Add BuildNetworkParams, documentation
* Remove unused imports in tests
* Apply suggestions from code review
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* Remove unused imports in node-bench
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* pallet-evm: add support for tuple-based precompile declarations
* Add missing license header
* Switch to use impl_for_tuples
* Remove unnecessary impl for ()
* Improve AVStore and Scheduler docs
* Update roadmap/implementers-guide/src/node/utility/availability-store.md
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* Bug in linking to README.md
* Update against new runtime apis
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* Initial commit
* WIP
* Make atomic transactions
* Remove pruning code
* Fix build and add a Nop to bridge
* Fixes from review
* Move config struct around for clarity
* Rename constructor and warn on missing docs
* Fix a test and rename a message
* Fix some more reviews
* Obviously failed to rebase cleanly
* seal: Fail instantiate if new contract is below subsistence threshold
We need each contract that exists to be above the subsistence threshold
in order to keep up the guarantuee that we always leave a tombstone behind
with the exception of a contract that called `ext_terminate`.
* Fixup executor test
* Bump runtime
* add ActiveLeavesUpdate, remove StartWork, StopWork
* replace StartWork, StopWork in subsystem crate tests
* mechanically update OverseerSignal in other modules
* convert overseer to take advantage of new multi-hash update abilities
Note: this does not yet convert the tests; some of the tests now freeze:
test tests::overseer_start_stop_works ... test tests::overseer_start_stop_works has been running for over 60 seconds
test tests::overseer_finalize_works ... test tests::overseer_finalize_works has been running for over 60 seconds
* fix broken overseer tests
* manually impl PartialEq for ActiveLeavesUpdate, rm trait Equivalent
This cleans up the code a bit and makes it easier in the future to
do the right thing when comparing ALUs.
* use target in all network bridge logging
* reduce spamming of and
There is probably some bug in rustc which result in an invalid
compilation when using an `expect` at the given position. I'm still not
sure why this is happening, but this fix should fix it for now.