* Adds a SigningContext type
* Bump spec versions
* Fixes requested changes
* Bump ParachainHost api_version and guard signing_context call
* Improve error message
* If there is no signing_context api use default value
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Parachains double vote handler initial implementation.
* Make tests test the actual slashing.
* Implement SignedExtension validation of double vote reports.
* Fixes build after merge
* Review fixes
* Adds historical session proofs
* Review fixes.
* Bump runtime spec_version
* Get the session number from the proof
* Check that proof matches session
* Change signature type on DoubleVoteReport
* Adds docs and removes blank lines
* Removes leftover code
* Fix build
* Fix build after a merge
* Apply suggestions from code review
Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>
* Prune ParentToSessionIndex
* Remove a clone and a warning
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Gavin Wood <gavin@parity.io>
* Updates for the new democracy
* Introduce progressive democracy
Also move to "master" branch of Substrate ready for continuous
sync with Substrate master.
* encode the candidate statement as only the hash
* refactor CandidateReceipt and CollationInfo
* introduce an abridged candidate receipt type
* erasure coding stores candidate receipt
* store omitted data instead and introduce AvailableData type
* refactor availability-store schema
* tweak schema and APIs a bit more
* get availability-store tests passing
* accept AbridgedCandidateReceipt in `set_heads`
* change statement type in primitives to be hash-only
* fix parachains runtime tests
* fix bad merge
* rewrite validation pipeline
* remove evaluation module
* use abridged candidate hash as canonical
* statement table uses abridged candidate receipts
* kill availability_store::Data struct
* port shared table to new validation pipelines
* extract full validation pipeline to helper
* remove old validation pipeline from collation module
* polkadot-validation compiles
* polkadot-validation tests compile
* make local collation available in validation service
* port legacy network code
* polkadot-network fully ported
* network: ensure fresh statement is propagated
* remove pov_block_hash from LocalValidationData
* remove candidate_hash field from AttestedCandidate and update runtime
* port runtimes to new ParachainHost definition
* port over polkadot-collator
* fix test compilation
* better fix
* remove unrelated validation work dispatch fix
* address grumbles
* fix equality check
* WIP
* WIp
* Mostly get tests to compile
* Fix adder collator
* Remove more stuff
* Revert some changes to av store
* Fix av store tests
* Nitpicks
* Restore some things
* Small changes
* Remvoe unused error variants
* Be specific about the `BitVec` generic arguments
Currently we use the default generic arguments for `BitVec`. This means
we use `BigEndian` and `u8`. These default values are not stable, with
`0.17` of the `BitVec` crate this changes. To make sure we don't break
anything in the future, make sure we explictly set the generics.
* Update `spec_version`
* runtime: candidate receipt must pass parent head
* construct parachain candidates using correct parent_head
* validate that the parent header is correct in candidate receipt
* fix test fallout
* bump runtime versions
* Make use of `runtime_interface` for parachain externalities
This also changes the encoding of the `ValidationResult` return value to
match the default encoding used in Substrate.
* Fix compilation for web
* Update `Cargo.lock`
* Include feedback
* Move proc macro
* Update parachain/src/lib.rs
Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Allow both polkadot and kusama runtimes
* Allow both polkadot and kusama runtimes
* Make `collator` build
* Removed kusama runtime
* Introduced common runtime
* Updated for latest substrate
* Updated CI targets
* Updated CI version check
* Removed unused dependency
* Pulled latests substrate
* Pulled latest substrate
* Fixed version
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* NEW_HEADS_IDENTIFIER moved to primitives
* Updated CI check script
* Fixed script
* Set epoch duration for polkadot
* ci: check_runtime for both runtimes
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: gabriel klawitter <gabreal@users.noreply.github.com>
* Erasure encoding availability initial commit
* Modifications to availability store to keep chunks as well as
reconstructed blocks and extrinsics.
* Gossip messages containig signed erasure chunks.
* Requesting eraure chunks with polkadot-specific messages.
* Validation of erasure chunk messages.
* Apply suggestions from code review
Co-Authored-By: Luke Schoen <ltfschoen@users.noreply.github.com>
* Fix build after a merge
* Gossip erasure chunk messages under their own topic
* erasure_chunks should use the appropriate topic
* Updates Cargo.lock
* Fixes after merge
* Removes a couple of leftover pieces of code
* Fixes simple stuff from review
* Updates erasure and storage for more flexible logic
* Changes validation and candidate receipt production.
* Adds add_erasure_chunks method
* Fixes most of the nits
* Better validate_collation and validate_receipt functions
* Fixes the tests
* Apply suggestions from code review
Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>
* Removes unwrap() calls
* Removes ErasureChunks primitive
* Removes redundant fields from ErasureChunk struct
* AvailabilityStore should store CandidateReceipt
* Changes the way chunk messages are imported and validated.
* Availability store now stores a validator_index and n_validators for
each relay_parent.
* Availability store now also stores candidate receipts.
* Removes importing chunks in the table and moves it into network
gossip validation.
* Validation of erasure messages id done against receipts that are
stored in the availability store.
* Correctly compute topics for erasure messages
* Removes an unused parameter
* Refactors availability db querying into a helper
* Adds the apis described in the writeup
* Adds a runtime api to extract erasure roots form raw extrinsics.
* Adds a barebone BlockImport impl for avalability store
* Adds the implementation of the availability worker
* Fix build after the merge with master.
* Make availability store API async
* Bring back the default wasmtime feature
* Lines width
* Bump runtime version
* Formatting and dead code elimination
* some style nits (#1)
* More nits and api cleanup
* Disable wasm CI for availability-store
* Another nit
* Formatting
* rename crates as appropriate
* Rename to use master - easy to revert, but shows it's working
* Bump runtime version
* Bump version
* Bump Substrate again