• Fedor Sakharov's avatar
    Erasure encoding availability (#345) · e5138efc
    Fedor Sakharov authored and asynchronous rob's avatar asynchronous rob committed
    
    
    * 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: default avatarLuke Schoen <[email protected]>
    
    * 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: default avatarRobert Habermeier <[email protected]>
    
    * 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
    e5138efc