1. 04 Sep, 2021 1 commit
  2. 07 Aug, 2021 1 commit
  3. 06 Aug, 2021 1 commit
  4. 08 Jul, 2021 1 commit
  5. 06 Jul, 2021 1 commit
    • asynchronous rob's avatar
      Chain Selection: Follow-ups (#3328) · 6cc70a8a
      asynchronous rob authored
      
      
      * DB skeleton
      
      * key formats
      
      * lexicographic test
      
      * custom types for DB
      
      * implement backend for db-v1
      
      * remove VoidBackend and integrate with real DbBackend
      
      * detect stagnant blocks on in interval
      
      * fix tests
      
      * add tests for stagnant
      
      * send ChainSelectionMessage::Approved
      
      * tests for DB backend
      
      * unused import
      
      * upgrade kvdb-memorydb
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      6cc70a8a
  6. 05 Jul, 2021 1 commit
  7. 21 Jun, 2021 1 commit
    • asynchronous rob's avatar
      Chain Selection Subsystem Logic (#3277) · 70a4469d
      asynchronous rob authored
      
      
      * crate skeleton and type definitions
      
      * add ChainSelectionMessage
      
      * add error type
      
      * run loop
      
      * fix overseer
      
      * simplify determine_new_blocks API
      
      * write an overlay struct and fetch new blocks
      
      * add new function to overlay
      
      * more flow
      
      * add leaves to overlay and add a strong type around leaves-set
      
      * add is_parent_viable
      
      * implement block import, ignoring reversions
      
      * add stagnant-at to overlay
      
      * add stagnant
      
      * add revert consensus log
      
      * flow for reversions
      
      * extract and import block reversions
      
      * recursively update viability
      
      * remove redundant parameter from WriteBlockEntry
      
      * do some removal of viable leaves
      
      * address grumbles
      
      * refactor
      
      * address grumbles
      
      * add comment about non-monotonicity
      
      * extract backend to submodule
      
      * begin the hunt for viable leaves
      
      * viability pivots for updating the active leaves
      
      * remove LeafSearchFrontier
      
      * partially -> explicitly viable and untwist some booleans
      
      * extract tree to submodule
      
      * implement block finality update
      
      * Implement block approval routine
      
      * implement stagnant detection
      
      * ensure blocks pruned on finality are removed from the active leaves set
      
      * write down some planned test cases
      
      * floww
      
      * leaf loading
      
      * implement best_leaf_containing
      
      * write down a few more tests to do
      
      * remove dependence of tree on header
      
      * guide: ChainApiMessage::BlockWeight
      
      * node: BlockWeight ChainAPI
      
      * fix compile issue
      
      * note a few TODOs for the future
      
      * fetch block weight using new BlockWeight ChainAPI
      
      * implement unimplemented
      
      * sort leaves by block number after weight
      
      * remove warnings and add more TODOs
      
      * create test module
      
      * storage for test backend
      
      * wrap inner in mutex
      
      * add write waker query to test backend
      
      * Add OverseerSignal -> FromOverseer conversion
      
      * add test harnes
      
      * add no-op test
      
      * add some more test helpers
      
      * the first test
      
      * more progress on tests
      
      * test two subtrees
      
      * determine-new-blocks: cleaner genesis avoidance and tighter ancestry requests
      
      * don't make ancestry requests when asking for one block
      
      * add a couple more tests
      
      * add to AllMessages in guide
      
      * remove bad spaces from bridge
      
      * compact iterator
      
      * test import with gaps
      
      * more reversion tests
      
      * test finalization pruning subtrees
      
      * fixups
      
      * test clobbering and fix bug in overlay
      
      * exhaustive backend state after finalizaiton tested
      
      * more finality tests
      
      * leaf tests
      
      * test approval
      
      * test ChainSelectionMessage::Leaves thoroughly
      
      * remove TODO
      
      * avoid Ordering::is_ne so CI can build
      
      * comment algorithmic complexity
      
      * Update node/core/chain-selection/src/lib.rs
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      70a4469d
  8. 19 Jun, 2021 1 commit
  9. 09 Jun, 2021 1 commit
  10. 27 May, 2021 1 commit
  11. 11 Mar, 2021 1 commit
  12. 18 Jan, 2021 1 commit
  13. 15 Jan, 2021 1 commit
  14. 24 Nov, 2020 1 commit
  15. 20 Nov, 2020 1 commit
    • Peter Goodspeed-Niklaus's avatar
      Add tracing support to node (#1940) · f7ea3d07
      Peter Goodspeed-Niklaus authored
      * drop in tracing to replace log
      
      * add structured logging to trace messages
      
      * add structured logging to debug messages
      
      * add structured logging to info messages
      
      * add structured logging to warn messages
      
      * add structured logging to error messages
      
      * normalize spacing and Display vs Debug
      
      * add instrumentation to the various 'fn run'
      
      * use explicit tracing module throughout
      
      * fix availability distribution test
      
      * don't double-print errors
      
      * remove further redundancy from logs
      
      * fix test errors
      
      * fix more test errors
      
      * remove unused kv_log_macro
      
      * fix unused variable
      
      * add tracing spans to collation generation
      
      * add tracing spans to av-store
      
      * add tracing spans to backing
      
      * add tracing spans to bitfield-signing
      
      * add tracing spans to candidate-selection
      
      * add tracing spans to candidate-validation
      
      * add tracing spans to chain-api
      
      * add tracing spans to provisioner
      
      * add tracing spans to runtime-api
      
      * add tracing spans to availability-distribution
      
      * add tracing spans to bitfield-distribution
      
      * add tracing spans to network-bridge
      
      * add tracing spans to collator-protocol
      
      * add tracing spans to pov-distribution
      
      * add tracing spans to statement-distribution
      
      * add tracing spans to overseer
      
      * cleanup
      f7ea3d07
  16. 17 Nov, 2020 1 commit
    • Andronik Ordian's avatar
      update most of the dependencies (#1946) · 31fb8fed
      Andronik Ordian authored
      * update tiny-keccak to 0.2
      
      * update deps except bitvec and shared_memory
      
      * fix some warning after futures upgrade
      
      * remove useless package rename caused by bug in cargo-upgrade
      
      * revert parity-util-mem *
      
      * remove unused import
      
      * cargo update
      
      * remove all renames on parity-scale-codec
      
      * remove the leftovers
      
      * remove unused dep
      31fb8fed
  17. 29 Sep, 2020 1 commit
  18. 07 Aug, 2020 1 commit
  19. 31 Jul, 2020 1 commit
    • Andronik Ordian's avatar
      Chain API subsystem (#1498) · d4022633
      Andronik Ordian authored
      * chain-api subsystem skeleton
      
      * chain-api subsystem: draft impl
      
      * chain-api subsystem: mock testclient
      
      * chain-api subsystem: impl HeaderBacked for TestClient
      
      * chain-api subsystem: impl basic tests
      
      * chain-api subsystem: tiny guide
      
      * chain-api subsystem: rename ChainApiRequestMessage to ChainApiMessage
      
      * chain-api subsystem: add the page to the ToC
      
      * chain-api subsystem: proper error type
      
      * chain-api subsystem: impl ancestors request
      
      * chain-api subsystem: tests for ancestors request
      
      * guide: fix ancestor return type
      
      * runtime-api subsystem: remove unused dep
      
      * fix fmt
      
      * fix outdated comment
      
      * chain-api subsystem: s/format/to_string
      
      * lower-case subsystem names
      
      * chain-api subsystem: resolve Finalized todo
      
      * chain-api subsystem: remove TODO
      
      * extract request errors into a module
      
      * remove caching TODO
      
      * fix imports
      d4022633
  20. 30 Jul, 2020 1 commit
    • asynchronous rob's avatar
      Implement the Runtime API subsystem (#1494) · f772196f
      asynchronous rob authored
      * type defaults for ParachainHost
      
      * add ValidationCode message
      
      * implement core loop of runtime API subsystem
      
      * subsystem trait implementation for runtime API subsystem
      
      * implement a mock runtime API
      
      * some tests that ensure requests are forwarded to runtime API correctly
      
      * fix dependency grumbles
      
      * improve RuntimeApiError API
      f772196f
  21. 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
  22. 17 Jul, 2020 1 commit
  23. 14 Jul, 2020 1 commit
    • Peter Goodspeed-Niklaus's avatar
      mod subsystem-util (#1376) · d7684115
      Peter Goodspeed-Niklaus authored
      * Add subsystem-util crate.
      
      Start by moving the JobCanceler here.
      
      * copy utility functions for requesting runtime data; generalize
      
      * convert subsystem-util from crate to module in subsystem
      
      The point of making a sub-crate is to ensure that only the necessary
      parts of a program get compiled; if a dependent package needed only
      subsystem-util, and not subsystem, then subsystem wouldn't need to
      be compiled.
      
      However, that will never happen: subsystem-util depends on
      subsystem::messages, so subsystem will always be compiled.
      
      Therefore, it makes more sense to add it as a module in the existing
      crate than as a new and distinct crate.
      
      * make runtime request sender type generic
      
      * candidate backing subsystem uses util for api requests
      
      * add struct Validator representing the local validator
      
      This struct can be constructed when the local node is a validator;
      the constructor fails otherwise. It stores a bit of local data, and
      provides some utility methods.
      
      * add alternate constructor for better efficiency
      
      * refactor candidate backing to use utility methods
      
      * fix test breakage caused by reordering tests
      
      * restore test which accidentally got deleted during merge
      
      * start extracting jobs management into helper traits + structs
      
      * use util::{JobHandle, Jobs} in CandidateBackingSubsystem
      
      * implement generic job-manager subsystem impl
      
      This means that the work of implementing a subsystem boils down
      to implementing the job, and then writing an appropriate
      type definition, i.e.
      
      pub type CandidateBackingSubsystem<Spawner, Context> =
      	util::JobManager<Spawner, Context, CandidateBackingJob>;
      
      * add hash-extraction helper to messages
      
      * fix errors caused by improper rebase
      
      * doc improvement
      
      * simplify conversion from overseer communication to job message
      
      * document fn hash for all messages
      
      * rename fn hash() -> fn relay_parent
      
      * gracefully shut down running futures on Conclude
      
      * ensure we're validating with the proper validator index
      
      * rename: handle_unhashed_msg -> handle_orphan_msg
      
      * impl Stream for Jobs<Spawner, Job>
      
      This turns out to be relatively complicated and requires some
      unsafe code, so we'll want either detailed review, or to choose
      to revert this commit.
      
      * add missing documentation for public items
      
      * use pin-project to eliminate unsafe code from this codebase
      
      * rename SenderMessage -> FromJob
      
      * reenvision the subsystem requests as an extension trait
      
      This works within `util.rs`, but fails in `core/backing/src/lib.rs`,
      because we don't actually create the struct soon enough. Continuing
      down this path would imply substantial rewriting.
      
      * Revert "reenvision the subsystem requests as an extension trait"
      
      This reverts commit a5639e36.
      
      The fact is, the new API is more complicated to no real benefit.
      
      * apply suggested futuresunordered join_all impl
      
      * CandidateValidationMessage variants have no top-level relay parents
      
      * rename handle_orphan_msg -> handle_unanchored_msg
      
      * make most node-core-backing types private
      
      Now the only public types exposed in that module are
      CandidateBackingSubsystem and ToJob. While ideally we could reduce
      the public interface to only the former type, that doesn't work
      because ToJob appears in the public interface of CandidateBackingSubsystem.
      
      This also involves changing the definition of CandidateBackingSubsystem;
      it is no longer a typedef, but a struct wrapping the job manager.
      d7684115
  24. 09 Jul, 2020 1 commit
    • Fedor Sakharov's avatar
      CandidateBackingSubsystem (#1312) · 6aa5bfba
      Fedor Sakharov authored
      * Updates guide for CandidateBacking
      
      * Move assignment types to primitives
      
      * Initial implementation.
      
      * More functionality
      
      * use assert_matches
      
      * Changes to report misbehaviors
      
      * Some fixes after a review
      
      * Remove a blank line
      
      * Update guide and some types
      
      * Adds run_job function
      
      * Some comments and refactorings
      
      * Fix review
      
      * Remove warnings
      
      * Use summary in kicking off validation
      
      * Parallelize requests
      
      * Validation provides local and global validation params
      
      * Test issued validity tracking
      
      * Nits from review
      6aa5bfba