* Refactor publish_draft_release.sh
* Switch to using arrays for storing labelled changes
* Combine changes for Polkadot and Substrate
* Change sanitised_git_logs in `lib.sh` to drop `*`s at the start
* Only look for priorities of medium or above (presence of one or more
C1 label is enforeced by check-labels anyway, saves us some API calls)
* Ensure priorities >C1-low aren't labelled B0-silent
* add signed wrapper, typedef SignedStatement
* typedef SignedAvailabilityBitfield
* implement Signed wrapper
This is strictly an addition as of this commit; nothing is yet
changed in existing behavior.
* inline getters, remove review comment
* move EncodeAs, Signed from node::primitives to primitives::parachain
* Refactor SignedAvailabilityBitfield to use Signed
* don't double-encode real payload
This isn't an ideal solution, because it depends on the
implementation details of how SCALE encodes tuples, but OTOH
that behavior seems unlikely to change anytime soon.
* fix build errors
* cause the runtime to build properly with the new changes
Not sure why cargo check didn't catch this earlier; oh well.
* fix runtime tests and separate SignedStatement from SignedFullStatement
* better explain why CompactStatement exists
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Add mdbook-linkcheck
* Convert todo to not a link
* Fix external glossary link
* Fix various broken links
* Mass replace: s/.html/.md/
* My sloppy attempt to add a gitlab CI check
This removes the `dev-dependency` onto `sp-npos-elections` from itself.
A crate should not depend on itself directly, especially not to make any
macros work.
In order to tell whether an address is the local nodes address the
authority discovery module previously compared the Multihash within the
`p2p` Multiaddr protocol.
rust-libp2p recently switched to a new PeerId representation (see [1]).
Multihashes of the same PeerId in the new and the old format don't
equal.
Instead of comparing the Multihashes, this patch ensures the module
compares the PeerIds
[1] https://github.com/libp2p/rust-libp2p/issues/555
Before we only updated the chain info of sync when we have imported
something using the import queue. However, if you import your own
blocks, this is not done using the import queue and so sync is not
updated. If we don't do this, it can lead to sync switching to "major
sync" mode because sync is not informed about new blocks. This
especially happens on Cumulus, where a collator is selected multiple
times to include its block into the relay chain and thus, sync switches
to major sync mode while the node is still building blocks.
* Initial commit
Forked at: 252416d385
No parent branch.
* Errors if slot_duration is zero
* Errors if slot_duration is zero
* Revert "Errors if slot_duration is zero"
This reverts commit a9e9820e124571f73d3e498e969a74d01fd3fe96.
* Update client/consensus/slots/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This implements tracking of the last seen blocks in informant display
to prevent printing the import message twice. In Cumulus we first import
blocks as part of the block building with `new_best == false` and set
the best block after we know which one was included by the relay chain.
This leads to printing the import messages two times. This pr solves the
problem by track the latest seen blocks to not print the message twice.
* Print bad mandatory error
This prints the error that leads to bad mandatory.
* Update frame/system/src/lib.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Adds missing trait import
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* add polkadot-companion-labels.yml
* fix polkadot companion job name
* add opened event to polkadot-companion-labels.yml
* Dont label on timeouts
* increase timeouts
* increase timeouts again... to be sure
* Switch to s3krit/await-status-action
Turns out Sibz/await-status-action looks at /ref/statuses, which lists ALL statuses (i.e., if you send a pending and a failure for the same context, it will see both and assume the job is still pending.). I forked and point at /ref/status, which shows a combined summary of each status (i.e., only ever shows the most recent status of a single context).
* add availability bitfield types to primitives
* begin inclusion module
* use GitHub issue link for limitation
* fix some compiler errors
* integrate validators into initializer
* add generic signing context
* make signing-context more generic
* fix issues with inclusion module
* add TODO
* guide: add validators and session index to inclusion
* guide: add session index to change notification
* implement session change logic
* add BackedCandidate type
* guide: refine inclusion pipeline
* guide: rename group_on to group_validators
* guide: add check about collator for parathread
* guide: add last_code_upgrade to paras and use in inclusion
* implement Paras::last_code_upgrade
* implement most checks in process_candidates
* make candidate receipt structs more generic
* make BackedCandidate struct more generic
* use hash param, not block number
* check that candidate is in context of the parent block
* include inclusion module in initializer
* implement enact-candidate
* check that only occupied cores have bits set
* finish implementing bitfield processing
* restructure consistency checks on candidates
* make some more primitives generic
* signature checking logic for backed candidates
* finish implementing process_candidates
* implement collect_pending
* add some trait implementations to primitives
* implement InclusionInherent and squash warnings
* test bitfield signing checks
* rename parachain head to para_head
* fix note_new_head bug in paras
* test bitfield enactment in inclusion
* helpers for candidate checks
* add test for most candidate checks
* add test for backing setting storage
* test session change logic
* remove extraneous type parameter
* remove some allow(unused)s
* extract threshold computation to const fn
* remove some more allow(unused)s
* improve doc
* add debug assertion
* fix primitive test compilation
* tag unanimous variant as unused
* Router module initial commit
* Add the router.md itself
* Enqueue only on enact_candidate
* Initialization concerns
* Ignore the snippet
* Update roadmap/implementors-guide/src/runtime/router.md
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Dispatch messages on finalization
* More fixes from review
* Update roadmap/implementors-guide/src/SUMMARY.md
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Adds router to initializer order
* Adds messages.md
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Introduce trait
* Implement VRFSigner in keystore
* Use vrf_sign from keystore
* Convert output to VRFInOut
* Simplify conversion
* vrf_sign secondary slot using keystore
* Fix RPC call to claim_slot
* Use Public instead of Pair
* Check primary threshold in signer
* Fix interface to return error
* Move vrf_sign to BareCryptoStore
* Fix authorship_works test
* Fix BABE logic leaks
* Acquire a read lock once
* Also fix RPC acquiring the read lock once
* Implement a generic way to construct VRF Transcript
* Use make_transcript_data to call sr25519_vrf_sign
* Make sure VRFTranscriptData is serializable
* Cleanup
* Move VRF to it's own module
* Implement & test VRF signing in testing module
* Remove leftover
* Fix feature requirements
* Revert removing vec macro
* Drop keystore pointer to prevent deadlock
* Nitpicks
* Add test to make sure make_transcript works
* Fix mismatch in VRF transcript
* Add a test to verify transcripts match in babe
* Return VRFOutput and VRFProof from keystore
* Start by replacing branch names and set `DownwardMessage`
* Add the upward-message crate
* Add Kusama & Polkadot
* More work on getting the upward messages working
* Fix build
* Begin to integrate it into the test Parachain
* Update
* Make everything compile again
* Switch to westend and print parachain account on startup
* Use MultiSignature etc
* Fix validate block
* Some downward messages work
* Update git reference
* More downward messages integration
* Update test runtime for downward messages
* Enable downward message handler and withdraw send tokens
* Add some docs
* Begin to implement simple XCMP
* More work
* Fixes and make parachain id configurable
* Make parachain ID be part of the genesis
* Finishing the XCMP message demo
* Update and fixes tests
* Update branch