1. 10 Mar, 2021 1 commit
  2. 09 Mar, 2021 2 commits
  3. 26 Feb, 2021 1 commit
    • Robert Klotzner's avatar
      Request based availability distribution (#2423) · 950447e1
      Robert Klotzner authored
      * WIP
      
      * availability distribution, still very wip.
      
      Work on the requesting side of things.
      
      * Some docs on what I intend to do.
      
      * Checkpoint of session cache implementation
      
      as I will likely replace it with something smarter.
      
      * More work, mostly on cache
      
      and getting things to type check.
      
      * Only derive MallocSizeOf and Debug for std.
      
      * availability-distribution: Cache feature complete.
      
      * Sketch out logic in `FetchTask` for actual fetching.
      
      - Compile fixes.
      - Cleanup.
      
      * Format cleanup.
      
      * More format fixes.
      
      * Almost feature complete `fetch_task`.
      
      Missing:
      
      - Check for cancel
      - Actual querying of peer ids.
      
      * Finish FetchTask so far.
      
      * Directly use AuthorityDiscoveryId in protocol and cache.
      
      * Resolve `AuthorityDiscoveryId` on sending requests.
      
      * Rework fetch_task
      
      - also make it impossible to check the wrong chunk index.
      - Export needed function in validator_discovery.
      
      * From<u32> implementation for `ValidatorIndex`.
      
      * Fixes and more integration work.
      
      * Make session cache proper lru cache.
      
      * Use proper lru cache.
      
      * Requester finished.
      
      * ProtocolState -> Requester
      
      Also make sure to not fetch our own chunk.
      
      * Cleanup + fixes.
      
      * Remove unused functions
      
      - FetchTask::is_finished
      - SessionCache::fetch_session_info
      
      * availability-distribution responding side.
      
      * Cleanup + Fixes.
      
      * More fixes.
      
      * More fixes.
      
      adder-collator is running!
      
      * Some docs.
      
      * Docs.
      
      * Fix reporting of bad guys.
      
      * Fix tests
      
      * Make all tests compile.
      
      * Fix test.
      
      * Cleanup + get rid of some warnings.
      
      * state -> requester
      
      * Mostly doc fixes.
      
      * Fix test suite.
      
      * Get rid of now redundant message types.
      
      * WIP
      
      * Rob's review remarks.
      
      * Fix test suite.
      
      * core.relay_parent -> leaf for session request.
      
      * Style fix.
      
      * Decrease request timeout.
      
      * Cleanup obsolete errors.
      
      * Metrics + don't fail on non fatal errors.
      
      * requester.rs -> requester/mod.rs
      
      * Panic on invalid BadValidator report.
      
      * Fix indentation.
      
      * Use typed default timeout constant.
      
      * Make channel size 0, as each sender gets one slot anyways.
      
      * Fix incorrect metrics initialization.
      
      * Fix build after merge.
      
      * More fixes.
      
      * Hopefully valid metrics names.
      
      * Better metrics names.
      
      * Some tests that already work.
      
      * Slightly better docs.
      
      * Some more tests.
      
      * Fix network bridge test.
      950447e1
  4. 25 Feb, 2021 1 commit
  5. 23 Feb, 2021 1 commit
    • asynchronous rob's avatar
      Approval Checking Improvements Omnibus (#2480) · 1e2b8ae5
      asynchronous rob authored
      * add tracing to approval voting
      
      * notify if session info is not working
      
      * add dispute period to chain specs
      
      * propagate genesis session to parachains runtime
      
      * use `on_genesis_session`
      
      * protect against zero cores in computation
      
      * tweak voting rule to be based off of best and add logs
      
      * genesis configuration should use VRF slots only
      
      * swallow more keystore errors
      
      * add some docs
      
      * make validation-worker args non-optional and update clap
      
      * better tracing for bitfield signing and provisioner
      
      * pass amount of bits in bitfields to inclusion instead of recomputing
      
      * debug -> warn for some logs
      
      * better tracing for availability recovery
      
      * a little av-store tracing
      
      * bridge: forward availability recovery messages
      
      * add missing try_from impl
      
      * some more tracing
      
      * improve approval distribution tracing
      
      * guide: hold onto pending approval messages until NewBlocks
      
      * Hold onto pending approval messages until NewBlocks
      
      * guide: adjust comment
      
      * process all actions for one wakeup at a time
      
      * vec
      
      * fix network bridge test
      
      * replace randomness-collective-flip with Babe
      
      * remove PairNotFound
      1e2b8ae5
  6. 22 Feb, 2021 1 commit
  7. 18 Feb, 2021 1 commit
  8. 17 Feb, 2021 1 commit
    • asynchronous rob's avatar
      A fast-path for requesting `AvailableData` from backing validators (#2453) · f778e527
      asynchronous rob authored
      
      
      * guide changes for a fast-path requesting from backing validators
      
      * add backing group to availability recovery message
      
      * add new phase to interaction
      
      * typos
      
      * add full data messages
      
      * handle new network messages
      
      * dispatch full data requests
      
      * cleanup
      
      * check chunk index
      
      * test for invalid recovery
      
      * tests
      
      * Typos.
      
      * fix some grumbles
      
      * be more explicit about error handling and control flow
      
      * fast-path param
      
      * use with_chunks_only in Service
      
      Co-authored-by: default avatarRobert Klotzner <robert.klotzner@gmx.at>
      f778e527
  9. 16 Feb, 2021 1 commit
    • asynchronous rob's avatar
      Integrate Approval Voting into Overseer / Service / GRANDPA (#2412) · 7a1e581c
      asynchronous rob authored
      * integrate approval voting into overseer
      
      * expose public API and make keystore arc
      
      * integrate overseer in service
      
      * guide: `ApprovedAncestor` returns block number
      
      * return block number along with hash from ApprovedAncestor
      
      * introduce a voting rule for reporting on approval checking
      
      * integrate the delay voting rule
      
      * Rococo configuration
      
      * fix compilation and add slack
      
      * fix web-wasm build
      
      * tweak parameterization
      
      * migrate voting rules to asycn
      
      * remove hack comment
      7a1e581c
  10. 11 Feb, 2021 1 commit
    • asynchronous rob's avatar
      Implement Approval Voting Subsystem (#2112) · 35ea1c4b
      asynchronous rob authored
      
      
      * skeleton
      
      * skeleton aux-schema module
      
      * start approval types
      
      * start aux schema with aux store
      
      * doc
      
      * finish basic types
      
      * start approval types
      
      * doc
      
      * finish basic types
      
      * write out schema types
      
      * add debug and codec impls to approval types
      
      * add debug and codec impls to approval types
      
      also add some key computation
      
      * add debug and codec impls to approval types
      
      * getters for block and candidate entries
      
      * grumbles
      
      * remove unused AssignmentId
      
      * load_decode utility
      
      * implement DB clearing
      
      * function for adding new block entry to aux store
      
      * start `canonicalize` implementation
      
      * more skeleton
      
      * finish implementing canonicalize
      
      * tag TODO
      
      * implement a test AuxStore
      
      * add allow(unused)
      
      * basic loading and deleting test
      
      * block_entry test function
      
      * add a test for `add_block_entry`
      
      * ensure range is exclusive at end
      
      * test clear()
      
      * test that add_block sets children
      
      * add a test for canonicalize
      
      * extract Pre-digest from header
      
      * utilities for extracting RelayVRFStory from the header-chain
      
      * add approval voting message types
      
      * approval distribution message type
      
      * subsystem skeleton
      
      * state struct
      
      * add futures-timer
      
      * prepare service for babe slot duration
      
      * more skeleton
      
      * better integrate AuxStore
      
      * RelayVRF -> RelayVRFStory
      
      * canonicalize
      
      * implement some tick functionality
      
      * guide: tweaks
      
      * check_approval
      
      * more tweaks and helpers
      
      * guide: add core index to candidate event
      
      * primitives: add core index to candidate event
      
      * runtime: add core index to candidate events
      
      * head handling (session window)
      
      * implement `determine_new_blocks`
      
      * add TODO
      
      * change error type on functions
      
      * compute RelayVRFModulo assignments
      
      * compute RelayVRFDelay assignments
      
      * fix delay tranche calc
      
      * assignment checking
      
      * pluralize
      
      * some dummy code for fetching assignments
      
      * guide: add babe epoch runtime API
      
      * implement a current_epoch() runtime API
      
      * compute assignments
      
      * candidate events get backing group
      
      * import blocks and assignments into DB
      
      * push block approval meta
      
      * add message types, no overseer integration yet
      
      * notify approval distribution of new blocks
      
      * refactor import into separate functions
      
      * impl tranches_to_approve
      
      * guide: improve function signatures
      
      * guide: remove Tick from ApprovalEntry
      
      * trigger and broadcast assignment
      
      * most of approval launching
      
      * remove byteorder crate
      
      * load blocks back to finality, except on startup
      
      * check unchecked assignments
      
      * add claimed core to approval voting message
      
      * fix checks
      
      * assign only to backing group
      
      * remove import_checked_assignment from guide
      
      * newline
      
      * import assignments
      
      * abstract out a bit
      
      * check and import approvals
      
      * check full approvals from assignment import too
      
      * comment
      
      * create a Transaction utility
      
      * must_use
      
      * use transaction in `check_full_approvals`
      
      * wire up wakeups
      
      * add Ord to CandidateHash
      
      * wakeup refactoring
      
      * return candidate info from add_block_entry
      
      * schedule wakeups
      
      * background task: do candidate validation
      
      * forward candidate validation requests
      
      * issue approval votes when requested
      
      * clean up a couple TODOs
      
      * fix up session caching
      
      * clean up last unimplemented!() items
      
      * fix remaining warnings
      
      * remove TODO
      
      * implement handle_approved_ancestor
      
      * update Cargo.lock
      
      * fix runtime API tests
      
      * guide: cleanup assignment checking
      
      * use claimed candidate index instead of core
      
      * extract time to a trait
      
      * tests module
      
      * write a mock clock for testing
      
      * allow swapping out the clock
      
      * make abstract over assignment criteria
      
      * add some skeleton tests and simplify params
      
      * fix backing group check
      
      * do backing group check inside check_assignment_cert
      
      * write some empty test functions to implement
      
      * add a test for non-backing
      
      * test that produced checks pass
      
      * some empty test ideas
      
      * runtime/inclusion: remove outdated TODO
      
      * fix compilation
      
      * av-store: fix tests
      
      * dummy cert
      
      * criteria tests
      
      * move `TestStore` to main tests file
      
      * fix unused warning
      
      * test harness beginnings
      
      * resolve slots renaming fallout
      
      * more compilation fixes
      
      * wip: extract pure data into a separate module
      
      * wip: extract pure data into a separate module
      
      * move types completely to v1
      
      * add persisted_entries
      
      * add conversion trait impls
      
      * clean up some warnings
      
      * extract import logic to own module
      
      * schedule wakeups
      
      * experiment with Actions
      
      * uncomment approval-checking
      
      * separate module for approval checking utilities
      
      * port more code to use actions
      
      * get approval pipeline using actions
      
      * all logic is uncommented
      
      * main loop processes actions
      
      * all loop logic uncommented
      
      * separate function for handling actions
      
      * remove last unimplemented item
      
      * clean up warnings
      
      * State gives read-only access to underlying DB
      
      * tests for approval checking
      
      * tests for approval criteria
      
      * skeleton test module for import
      
      * list of import tests to do
      
      * some test glue code
      
      * test reject bad assignment
      
      * test slot too far in future
      
      * test reject assignment with unknown candidate
      
      * remove loads_blocks tests
      
      * determine_new_blocks back to finalized & harness
      
      * more coverage for determining new blocks
      
      * make `imported_block_info` have less reliance on State
      
      * candidate_info tests
      
      * tests for session caching
      
      * remove println
      
      * extricate DB and main TestStores
      
      * rewrite approval checking logic to counteract early delays
      
      * move state out of function
      
      * update approval-checking tests
      
      * tweak wakeups & scheduling logic
      
      * rename check_full_approvals
      
      * test that assignment import updates candidate
      
      * some approval import tests
      
      * some tests for check_and_apply_approval
      
      * add 'full' qualifier to avoid confusion
      
      * extract should-trigger logic to separate function
      
      * some tests for all triggering
      
      * tests for when we trigger assignments
      
      * test wakeups
      
      * add block utilities for testing
      
      * some more tests for approval updates
      
      * approved_ancestor tests
      
      * new action type for launch approval
      
      * process-wakeup tests
      
      * clean up some warnings
      
      * fix in_future test
      
      * approval checking tests
      
      * tighten up too-far-in-future
      
      * special-case genesis when caching sessions
      
      * fix bitfield len
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      35ea1c4b
  11. 18 Jan, 2021 1 commit
    • asynchronous rob's avatar
      Approval Voting Database (#2162) · a4c418a5
      asynchronous rob authored
      
      
      * skeleton
      
      * skeleton aux-schema module
      
      * start approval types
      
      * start aux schema with aux store
      
      * doc
      
      * finish basic types
      
      * start approval types
      
      * doc
      
      * finish basic types
      
      * write out schema types
      
      * add debug and codec impls to approval types
      
      * add debug and codec impls to approval types
      
      also add some key computation
      
      * add debug and codec impls to approval types
      
      * getters for block and candidate entries
      
      * grumbles
      
      * remove unused AssignmentId
      
      * load_decode utility
      
      * implement DB clearing
      
      * function for adding new block entry to aux store
      
      * start `canonicalize` implementation
      
      * more skeleton
      
      * finish implementing canonicalize
      
      * tag TODO
      
      * implement a test AuxStore
      
      * add allow(unused)
      
      * basic loading and deleting test
      
      * block_entry test function
      
      * add a test for `add_block_entry`
      
      * ensure range is exclusive at end
      
      * test clear()
      
      * test that add_block sets children
      
      * add a test for canonicalize
      
      * Update node/core/approval-voting/src/aux_schema/mod.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      * Update node/core/approval-voting/src/aux_schema/tests.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      * Update node/core/approval-voting/src/aux_schema/mod.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      a4c418a5
  12. 18 Jul, 2020 1 commit
    • asynchronous rob's avatar
      Implement Runtime APIs (#1411) · 5d7142f1
      asynchronous rob authored
      * create a README on Runtime APIs
      
      * add ParaId type
      
      * write up runtime APIs
      
      * more preamble
      
      * rename
      
      * rejig runtime APIs
      
      * add occupied_since to `BlockNumber`
      
      * skeleton crate for runtime API subsystem
      
      * improve group_for_core
      
      * improve docs on availability cores runtime API
      
      * guide: freed -> free
      
      * add primitives for runtime APIs
      
      * create a v1 ParachainHost API trait
      
      * guide: make validation code return `Option`al.
      
      * skeleton runtime API helpers
      
      * make parachain-host runtime-generic
      
      * skeleton for most runtime API implementation functions
      
      * guide: add runtime API helper methods
      
      * implement new helpers of the inclusion module
      
      * guide: remove retries check, as it is unneeded
      
      * implement helpers for scheduler module for Runtime APIs
      
      * clean up `validator_groups` implementation
      
      * implement next_rotation_at and last_rotation_at
      
      * guide: more helpers on GroupRotationInfo
      
      * almost finish implementing runtime APIs
      
      * add explicit block parameter to runtime API fns
      
      * guide: generalize number parameter
      
      * guide: add group_responsible to occupied-core
      
      * update primitives due to guide changes
      
      * finishing touches on runtime API implementation; squash warnings
      
      * break out runtime API impl to separate file
      
      * add tests for next_up logic
      
      * test group rotation info
      
      * point to filed TODO
      
      * remove unused TODO [now]
      
      * indentation
      
      * guide: para -> para_id
      
      * rename para field to para_id for core meta
      
      * remove reference to outdated AvailabilityCores type
      
      * add an event in `inclusion` for candidates being included or timing out
      
      * guide: candidate events
      
      * guide: adjust language
      
      * Candidate events type from guide and adjust inclusion event
      
      * implement `candidate_events` runtime API
      
      * fix runtime test compilation
      
      * max -> min
      
      * fix typos
      
      * guide: add `RuntimeAPIRequest::CandidateEvents`
      5d7142f1
  13. 06 Apr, 2020 1 commit
    • asynchronous rob's avatar
      Upgradeable validation functions (#918) · ed2c4cab
      asynchronous rob authored
      * upgrade primitives to allow changing validation function
      
      * set up storage schema for old parachains code
      
      * fix compilation errors
      
      * fix test compilation
      
      * add some tests for past code meta
      
      * most of the runtime logic for code upgrades
      
      * implement old-code pruning
      
      * add a couple tests
      
      * clean up remaining TODOs
      
      * add a whole bunch of tests for runtime functionality
      
      * remove unused function
      
      * fix runtime compilation
      
      * extract some primitives to parachain crate
      
      * add validation-code upgrades to validation params and result
      
      * extend validation params with code upgrade fields
      
      * provide maximums to validation params
      
      * port test-parachains
      
      * add a code-upgrader test-parachain and tests
      
      * fix collator tests
      
      * move test-parachains to own folder to work around compilation errors
      
      * fix test compilation
      
      * update the Cargo.lock
      
      * fix parachains tests
      
      * remove dbg! invocation
      
      * use new pool in code-upgrader
      
      * bump lockfile
      
      * link TODO to issue
      ed2c4cab
  14. 05 Jan, 2020 1 commit
  15. 14 Aug, 2018 1 commit