Skip to content
Snippets Groups Projects
  1. Jan 17, 2020
    • Max Inden's avatar
      client/finality-grandpa: Reintegrate periodic neighbor packet worker (#4631) · d9837d7d
      Max Inden authored
      The `NeighborPacketWorker` within `client/finality-grandpa` does two
      things:
      
      1. It receives neighbor packets from components within
      `client/finality-grandpa`, sends them down to the `GossipEngine` in
      order for neighboring nodes to receive.
      
      2. It periodically sends out the most recent neighbor packet to the
      `GossipEngine`.
      
      In order to send out packets it had a clone to a `GossipEgine` within
      an atomic reference counter and a mutex. The `NeighborPacketWorker` was
      then spawned onto its own asynchronous task.
      
      Instead of running in its own task, this patch reintegrates the
      `NeighborPacketWorker` into the main `client/finality-grandpa` task not
      requiring the `NeighborPacketWorker` to own a clone of the
      `GossipEngine`.
      
      The greater picture
      
      This is a tiny change within a greater refactoring. The overall goal is
      to **simplify** how finality-grandpa interacts with the network and to
      **reduce** the amount of **unbounded channels** within the logic.
      
      Why no unbounded channels: Bounding channels is needed for backpressure
      and proper scheduling. With unbounded channels there is no way of
      telling the producer side to slow down for the consumer side to catch
      up.  Rephrased, there is no way for the scheduler to know when to favour
      the consumer task over the producer task on a crowded channel and the
      other way round for an empty channel.
      
      Reducing the amount of shared ownership simplifies the logic and enables
      one to use async-await syntax-suggar, given that one does not need to
      hold a lock across poll invocations. Using async-await enables one to
      use bounded channels without complex logic.
      d9837d7d
  2. Jan 05, 2020
  3. Dec 18, 2019
    • asynchronous rob's avatar
      client: Do not set fork sync request via network-gossip (#4439) · 8f1b5b84
      asynchronous rob authored
      The finality-grandpa module needs two sets of functionalities from the
      network:
      
      1. Everything gossip related, e.g. event_stream, write_notification, ...
      
      2. The ability to set a fork sync request for a specific block hash.
      
      Instead of embedding (2) inside of (1) this patch extracts (2) from (1)
      having finality-grandpa depend on a `Network` that fulfills the
      `network_gossip::Network` trait and that can set block sync requests.
      
      On the one hand this improves the overall structure splitting things
      that don't logically belong together. On the other hand it does
      reintroduce a lot of trait bounds within finality-grandpa.
      8f1b5b84
  4. Dec 16, 2019
    • Tomasz Drwięga's avatar
      [big refactor] Remove crate aliasing. (#4395) · 8778ca7d
      Tomasz Drwięga authored
      * Rename: Phase 1.
      
      * Unify codec.
      
      * Fixing: Phase 2
      
      * Fixing: Phase 3.
      
      * Fixing: Phase 4.
      
      * Fixing: Phase 5.
      
      * Fixing: Phase 6.
      
      * Fixing: Phase 7.
      
      * Fixing: Phase 8. Tests
      
      * Fixing: Phase 9. Tests!!!
      
      * Fixing: Phase 10. Moar tests!
      
      * Finally done!
      
      * More fixes.
      
      * Rename primitives:: to sp_core::
      
      * Apply renames in finality-grandpa.
      
      * Fix benches.
      
      * Fix benches 2.
      
      * Revert node-template.
      
      * Fix frame-system in our modules.
      8778ca7d
  5. Dec 13, 2019
    • Pierre Krieger's avatar
      Extract consensus_gossip.rs and put it in its own crate (#4284) · c66c191b
      Pierre Krieger authored
      
      * Extract gossiping system from network
      
      * Finish porting GRANDPA tests
      
      * Try put correct engine ID
      
      * Fix messages encoding
      
      * Fix communication tests
      
      * Use a threads pool to spawn stuff
      
      * Fix compilation everywhere
      
      * Fix bad merge conflict
      
      * Remove dependency on async-std
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarRobert Habermeier <rphmeier@gmail.com>
      
      * More suggestions
      
      * Remove network startup GP future
      
      * Update to futures_timer
      
      * adjust wait_when_behind test
      
      * Pass correct Roles after handshake
      
      * Revert "adjust wait_when_behind test"
      
      This reverts commit 23cb3a0a6d25ed732c2cd648607bc44ef2ab0919.
      
      * Crate root documentation
      
      * Remove MessageRecipient
      
      * Address concerns
      
      * Fix more concerns
      
      * Forgot Cargo.lock
      c66c191b
  6. Dec 04, 2019
    • Ashley's avatar
      Update exit-future and make sc-cli compile on wasm (#4289) · a58e8a6e
      Ashley authored
      * updated exit-future (github repo)
      
      * Switch to broadcast crate
      
      * Migrate client/cli
      
      * Switch exit-future to modernize branch
      
      * Small changes
      
      * Switch to cargo version and fix fg tests
      
      * Revert "Small changes"
      
      This reverts commit a488106805d220cb4aee9e46a71481424c6d87d5.
      a58e8a6e
  7. Dec 03, 2019
  8. Dec 02, 2019
    • Benjamin Kampmann's avatar
      The crate rename (#4223) · 927e13c1
      Benjamin Kampmann authored
      * Adding script for rename, could be applicable for nodes on top of it, too
      
      * add stderr and gitlab ci features
      
      * apply script
      
      * fix now minor details in expected stderr
      
      * Update the Cargo.lock
      
      * fix name: sc-transaction -> sc-tracing
      
      * fix rename in script, too
      927e13c1
  9. Nov 14, 2019
    • Benjamin Kampmann's avatar
      Reorganising the repository - external renames and moves (#4074) · 60e5011c
      Benjamin Kampmann authored
      * Adding first rough ouline of the repository structure
      
      * Remove old CI stuff
      
      * add title
      
      * formatting fixes
      
      * move node-exits job's script to scripts dir
      
      * Move docs into subdir
      
      * move to bin
      
      * move maintainence scripts, configs and helpers into its own dir
      
      * add .local to ignore
      
      * move core->client
      
      * start up 'test' area
      
      * move test client
      
      * move test runtime
      
      * make test move compile
      
      * Add dependencies rule enforcement.
      
      * Fix indexing.
      
      * Update docs to reflect latest changes
      
      * Moving /srml->/paint
      
      * update docs
      
      * move client/sr-* -> primitives/
      
      * clean old readme
      
      * remove old broken code in rhd
      
      * update lock
      
      * Step 1.
      
      * starting to untangle client
      
      * Fix after merge.
      
      * start splitting out client interfaces
      
      * move children and blockchain interfaces
      
      * Move trie and state-machine to primitives.
      
      * Fix WASM builds.
      
      * fixing broken imports
      
      * more interface moves
      
      * move backend and light to interfaces
      
      * move CallExecutor
      
      * move cli off client
      
      * moving around more interfaces
      
      * re-add consensus crates into the mix
      
      * fix subkey path
      
      * relieve client from executor
      
      * starting to pull out client from grandpa
      
      * move is_decendent_of out of client
      
      * grandpa still depends on client directly
      
      * lemme tests pass
      
      * rename srml->paint
      
      * Make it compile.
      
      * rename interfaces->client-api
      
      * Move keyring to primitives.
      
      * fixup libp2p dep
      
      * fix broken use
      
      * allow dependency enforcement to fail
      
      * move fork-tree
      
      * Moving wasm-builder
      
      * make env
      
      * move build-script-utils
      
      * fixup broken crate depdencies and names
      
      * fix imports for authority discovery
      
      * fix typo
      
      * update cargo.lock
      
      * fixing imports
      
      * Fix paths and add missing crates
      
      * re-add missing crates
      60e5011c
  10. Nov 09, 2019
  11. Oct 29, 2019
  12. Oct 27, 2019
  13. Oct 24, 2019
    • Max Inden's avatar
      core/finality-grandpa: Request block sync from network after import timeout (#3800) · 743a34bc
      Max Inden authored
      * core/finality-grandpa: Pass Grandpa msg sender up to UntilImported
      
      * core/finality-grandpa: Track senders to maybe later request blocks
      
      * core/finality-grandpa: Make BlockStatus pub only within crate
      
      * core/finality-grandpa: Abstract NetworkBridge with BlockSyncRequester
      
      * core/finality-grandpa: Pass BlockSyncRequester to UntilImported
      
      * core/finality-grandpa: Track block number of pending within UntilImported
      
      * core/finality-grandpa: Request block sync on long wait
      
      * core/finality-grandpa: Adjust unit tests to previous changes
      
      * core/finality-grandpa: Fix line length
      
      * core/finality-grandpa: Add comment explaining in & out vote combination
      
      * core/finality-grandpa: Log after, not before, timeout expired
      
      The UntilImported component should log whenever waiting for a specific
      block to be imported surpassed a defined constant timeout. Without this
      patch the code would log whenever the current time was below the
      timeout.
      
      * core/finality-grandpa: Collect senders as HashSet for deduplication
      
      * Revert "core/finality-grandpa: Track senders to maybe later request blocks"
      
      This reverts commit 61ac9dd715612d5fdbf7b8f00b84e450f282ade0.
      
      * Revert "core/finality-grandpa: Pass Grandpa msg sender up to UntilImported"
      
      This reverts commit afdc9646a6c314f99a9d19242f1878f85980e70d.
      
      * core/network/sync: Ask for block from all peers if none provided
      
      When requesting an explicit fork sync, try to sync from all known peers,
      when no specific peers were provided.
      
      * core/network/sync: Request specific fork sync from peers ahead or on par
      
      When making an explicit fork sync request without specifying any peers,
      make sure to only request it from the locally known peers that are
      either ahead or on a par compared to the block number we are looking
      for.
      
      * grandpa: fix tests
      
      * grandpa: fix warnings
      
      * grandpa: add test for block sync request on until_imported
      
      * grandpa: rename Environment field inner to client
      
      * grandpa: fix minor nits
      
      * grandpa: minor nits in until_imported
      
      * grandpa: copy docs for set_sync_fork_request
      
      * grandpa: remove stale TODO on UntilImported
      743a34bc
  14. Oct 23, 2019
  15. Oct 18, 2019
    • Max Inden's avatar
      core/finality-grandpa: Minor refactorings (#3825) · abaaaaff
      Max Inden authored
      * core/finality-grandpa: Improve code comments
      
      * core/finality-grandpa: Rename VoteOrPrecommit to PrevoteOrPrecommit
      
      According to the Grandpa paper [1]:
      
      > A vote is a block hash, together with some metadata such as round
      number and the type of vote, such as prevote or precommit, all signed
      with a voter’s private key.
      
      To reduce confusion this patch makes the code consistent with the
      research paper.
      
      [1] https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf
      
      * core/finality-grandpa: Add comment for NetworkStream concept
      
      * core/finality-grandpa: Improve round_communication doc comment
      
      * core/finality-grandpa: Rename PrevoteOrPrecommit to Vote
      
      * core/finality-grandpa: Represent NetworkStream state machine as enum
      
      * core/finality-grandpa: Improve KeepTopics comment
      abaaaaff
  16. Sep 24, 2019
  17. Sep 12, 2019
  18. Sep 11, 2019
  19. Aug 24, 2019
    • asynchronous rob's avatar
      GRANDPA links set IDs to sessions. (#3472) · b5059642
      asynchronous rob authored
      
      * introduce some type aliases for round and set-id
      
      * overhaul session "changed" flag and document better
      
      * do_initialize in BABE when getting new session
      
      * grandpa module tracks set IDs
      
      * update runtime versions
      
      * doc comment -> comment
      
      * Include docs fixes from Gav
      
      Co-Authored-By: default avatarGavin Wood <gavin@parity.io>
      
      * some more review changes
      
      * fix srml-grandpa compilation
      b5059642
  20. Aug 23, 2019
  21. Aug 07, 2019
    • Gavin Wood's avatar
      Refactor key management (#3296) · 1a524b82
      Gavin Wood authored
      
      * Add Call type to extensible transactions.
      
      Cleanup some naming
      
      * Merge Resource and BlockExhausted into just Exhausted
      
      * Fix
      
      * Another fix
      
      * Call
      
      * Some fixes
      
      * Fix srml tests.
      
      * Fix all tests.
      
      * Refactor crypto so each application of it has its own type.
      
      * Introduce new AuthorityProvider API into Aura
      
      This will eventually allow for dynamic determination of authority
      keys and avoid having to set them directly on CLI.
      
      * Introduce authority determinator for Babe.
      
      Experiment with modular consensus API.
      
      * Work in progress to introduce KeyTypeId and avoid polluting API
      with validator IDs
      
      * Finish up drafting imonline
      
      * Rework offchain workers API.
      
      * Rework API implementation.
      
      * Make it compile for wasm, simplify app_crypto.
      
      * Fix compilation of im-online.
      
      * Fix compilation of im-online.
      
      * Fix more compilation errors.
      
      * Make it compile.
      
      * Fixing tests.
      
      * Rewrite `keystore`
      
      * Fix session tests
      
      * Bring back `TryFrom`'s'
      
      * Fix `srml-grandpa`
      
      * Fix `srml-aura`
      
      * Fix consensus babe
      
      * More fixes
      
      * Make service generate keys from dev_seed
      
      * Build fixes
      
      * Remove offchain tests
      
      * More fixes and cleanups
      
      * Fixes finality grandpa
      
      * Fix `consensus-aura`
      
      * Fix cli
      
      * Fix `node-cli`
      
      * Fix chain_spec builder
      
      * Fix doc tests
      
      * Add authority getter for grandpa.
      
      * Test fix
      
      * Fixes
      
      * Make keystore accessible from the runtime
      
      * Move app crypto to its own crate
      
      * Update `Cargo.lock`
      
      * Make the crypto stuff usable from the runtime
      
      * Adds some runtime crypto tests
      
      * Use last finalized block for grandpa authority
      
      * Fix warning
      
      * Adds `SessionKeys` runtime api
      
      * Remove `FinalityPair` and `ConsensusPair`
      
      * Minor governance tweaks to get it inline with docs.
      
      * Make the governance be up to date with the docs.
      
      * Build fixes.
      
      * Generate the inital session keys
      
      * Failing keystore is a hard error
      
      * Make babe work again
      
      * Fix grandpa
      
      * Fix tests
      
      * Disable `keystore` in consensus critical stuff
      
      * Build fix.
      
      * ImOnline supports multiple authorities at once.
      
      * Update core/application-crypto/src/ed25519.rs
      
      * Merge branch 'master' into gav-in-progress
      
      * Remove unneeded code for now.
      
      * Some `session` testing
      
      * Support querying the public keys
      
      * Cleanup offchain
      
      * Remove warnings
      
      * More cleanup
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBenjamin Kampmann <ben.kampmann@googlemail.com>
      
      * More cleanups
      
      * JSONRPC API for setting keys.
      
      Also, rename traits::KeyStore* -> traits::BareCryptoStore*
      
      * Bad merge
      
      * Fix integration tests
      
      * Fix test build
      
      * Test fix
      
      * Fixes
      
      * Warnings
      
      * Another warning
      
      * Bump version.
      1a524b82
  22. Aug 06, 2019
  23. Jul 29, 2019
    • Kian Paimani's avatar
      Refactor sr_primitives. (#3214) · 79feb23a
      Kian Paimani authored
      * refactor sr_primitives.
      
      * Fix try build error.
      
      * Line-width
      
      * Ui test.
      
      * Final fixes.
      
      * Fix build again.
      
      * bring back ui test.
      
      * Fix unsigned import.
      
      * Another ui fix.
      
      * Also refactor substrate-primitives
      
      * Fix benchmarks.
      
      * Fix doc test.
      
      * fix doc tests
      79feb23a
  24. Jul 05, 2019
  25. Jul 04, 2019
    • André Silva's avatar
      grandpa: round catchup messages (#2801) · d5bc7325
      André Silva authored
      
      * grandpa: initial structure for catch up messages
      
      * grandpa: answer catch up requests
      
      * grandpa: inject catch up messages into global stream
      
      * grandpa: keep track of pending catch up request
      
      * grandpa: block catchup until all referenced blocks are imported
      
      * grandpa: unify catch up and commit streams
      
      * grandpa: simplify communication stream/sink types
      
      * grandpa: note gossip validator on catch up message import
      
      * grandpa: fix cost on catch up message validation
      
      * grandpa: check signatures on catch up messages
      
      * grandpa: clean up catch up request handling state
      
      * grandpa: adjust costs on invalid catch up requests
      
      * grandpa: release lock before pushing catch up message
      
      * grandpa: validate catch up request against peer view
      
      * grandpa: catch up docs
      
      * grandpa: fix tests
      
      * grandpa: until_imported: add tests for catch up messages
      
      * grandpa: add tests for catch up message gossip validation
      
      * grandpa: integrate HistoricalVotes changes
      
      * grandpa: add test for neighbor packet triggering catch up
      
      * grandpa: add test for full voter catch up
      
      * grandpa: depend on finality-grandpa 0.8 from crates
      
      * granda: use finality-grandpa test helpers
      
      * grandpa: add PSM cost for answering catch up requests
      
      * grandpa: code style fixes
      
      Co-Authored-By: default avatarRobert Habermeier <rphmeier@gmail.com>
      
      * grandpa: more trailing commas
      
      * grandpa: lower cost of invalid catch up requests near set change
      
      * grandpa: process catch up sending on import of neighbor message
      
      * grandpa: add comments on HistoricalVotes
      
      * grandpa: use finality-grandpa v0.8.1 from crates.io
      
      * grandpa: fix test compilation
      d5bc7325
  26. Jun 26, 2019
    • Pierre Krieger's avatar
      Remove tokio dependencies (#2935) · 1b73b653
      Pierre Krieger authored
      * Remove dependencies on tokio
      
      * Make service not depend on tokio
      
      * Fix service tests
      
      * Manually poll the import queue if failed to start
      
      * Spawn all tasks at the end
      
      * Remove executor from TelemetryOnConnect
      
      * Remove TaskExecutor from offchain workers
      
      * Remove TaskExecutor from AuthoritySetup
      
      * Remove TaskExecutor from service
      
      * Remove tokio dependency from RPC
      
      * Remove finality-grandpa from WASM checks
      
      * Fix offchain tests
      
      * Line widths
      
      * Fix RPC tests
      
      * Fix service tests
      
      * Fix bad futures polling
      
      * Address some concerns
      
      * Better error handling
      
      * Is it the connectivity test that's not passing? I don't know, let's try
      
      * Revert "Is it the connectivity test that's not passing? I don't know, let's try"
      
      This reverts commit 28bbe51f0e2e4885fe1f901e11078604604cb212.
      
      * Fix test
      1b73b653
  27. Jun 24, 2019
  28. Jun 14, 2019
    • Gavin Wood's avatar
      New sessions, kill consensus module (#2802) · bda86418
      Gavin Wood authored
      
      * Draft of new sessions
      
      * Reintroduce tuple impls
      
      * Move staking module to new session API
      
      * More work on staking and grandpa.
      
      * Use iterator to avoid cloning and tuple macro
      
      * Make runtime build again
      
      * Polish the OpaqueKeys devex
      
      * Move consensus logic into system & aura.
      
      * Fix up system module
      
      * Get build mostly going. Stuck at service.rs
      
      * Building again
      
      * Update srml/staking/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
      
      * Refactoring out Consensus module, AuthorityIdOf, &c.
      
      * Refactored out DigestItem::AuthoritiesChanged. Building.
      
      * Remove tentative code
      
      * Remove invalid comment
      
      * Make Seal opaque and introduce nice methods for handling opaque items.
      
      * Start to use proper digest for Aura authorities tracking.
      
      * Fix up grandpa, remove system::Raw/Log
      
      * Refactor Grandpa to use new logging infrastructure.
      
      Also make authorityid/sessionkey static. Switch over to storing
      authorities in a straight Vec.
      
      * Building again
      
      * Tidy up some AuthorityIds
      
      * Expunge most of the rest of the AuthorityKey confusion.
      
      Also, de-generify Babe and re-generify Aura.
      
      * Remove cruft
      
      * Untangle last of the `AuthorityId`s.
      
      * Sort out finality_tracker
      
      * Refactor median getting
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarRobert Habermeier <rphmeier@gmail.com>
      
      * Session tests works
      
      * Update core/sr-primitives/src/generic/digest.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
      
      * Session tests works
      
      * Fix for staking from @dvc94ch
      
      * log an error
      
      * fix test runtime build
      
      * Some test fixes
      
      * Staking mock update to new session api.
      
      * Fix build.
      
      * Move OpaqueKeys to primitives.
      
      * Use on_initialize instead of check_rotate_session.
      
      * Update tests to new staking api.
      
      * fixup mock
      
      * Fix bond_extra_and_withdraw_unbonded_works.
      
      * Fix bond_with_little_staked_value_bounded_by_slot_stake.
      
      * Fix bond_with_no_staked_value.
      
      * Fix change_controller_works.
      
      * Fix less_than_needed_candidates_works.
      
      * Fix multi_era_reward_should_work.
      
      * Fix nominating_and_rewards_should_work.
      
      * Fix nominators_also_get_slashed.
      
      * Fix phragmen_large_scale_test.
      
      * Fix phragmen_poc_works.
      
      * Fix phragmen_score_should_be_accurate_on_large_stakes.
      
      * Fix phragmen_should_not_overflow.
      
      * Fix reward_destination_works.
      
      * Fix rewards_should_work.
      
      * Fix sessions_and_eras_should_work.
      
      * Fix slot_stake_is_least_staked_validator.
      
      * Fix too_many_unbond_calls_should_not_work.
      
      * Fix wrong_vote_is_null.
      
      * Fix runtime.
      
      * Fix wasm runtime build.
      
      * Update Cargo.lock
      
      * Fix warnings.
      
      * Fix grandpa tests.
      
      * Fix test-runtime build.
      
      * Fix template node build.
      
      * Fix stuff.
      
      * Update Cargo.lock to fix CI
      
      * Re-add missing AuRa logs
      
      Runtimes are required to know about every digest they receive ― they
      panic otherwise.  This re-adds support for AuRa pre-runtime digests.
      
      * Update core/consensus/babe/src/digest.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
      
      * Kill log trait and all that jazz.
      
      * Refactor staking tests.
      
      * Fix ci runtime wasm check.
      
      * Line length 120.
      
      * Make tests build again
      
      * Remove trailing commas in function declarations
      
      The `extern_functions!` macro doesn’t like them, perhaps due to a bug in
      rustc.
      
      * Fix type error
      
      * Fix compilation errors
      
      * Fix a test
      
      * Another couple of fixes
      
      * Fix another test
      
      * More test fixes
      
      * Another test fix
      
      * Bump runtime.
      
      * Wrap long line
      
      * Fix build, remove redundant code.
      
      * Issue to track TODO
      
      * Leave the benchmark code alone.
      
      * Fix missing `std::time::{Instant, Duration}`
      
      * Indentation
      
      * Aura ConsensusLog as enum
      bda86418
  29. Jun 09, 2019
  30. May 29, 2019
  31. May 26, 2019
  32. Apr 26, 2019
  33. Apr 23, 2019
    • Michael Müller's avatar
      Adjust consensus telemetry (#2198) · 87776e63
      Michael Müller authored and asynchronous rob's avatar asynchronous rob committed
      * Send high-level consensus telemetry by default
      
      * Notify telemetry on finalized
      
      * Send used authority set to telemetry
      
      * Do not send commit message telemetry by default
      
      * Fix typo
      
      * Allow for notifications on telemetry connect
      
      ...and send the current authority set on each connect.
      
      * Send authority set to telemetry on change
      
      * Revert "Send used authority set to telemetry"
      
      This reverts commit 1deceead52bb7443a02879ac8138afad9a6ca5ff.
      
      * Merge branch 'master' into 'cmichi-send-high-level-consensus-telemetry-by-default'
      
      Squashed commit of the following:
      
      commit 19d77cbc
      Author: Xiliang Chen <xlchen1291@gmail.com>
      Date:   Wed Apr 10 20:26:29 2019 +1200
      
          update authers for rest of the node-template cargo.toml files (#2242)
      
      commit 0afc357a
      Author: Bastian Köcher <bkchr@users.noreply.github.com>
      Date:   Tue Apr 9 10:31:18 2019 +0200
      
          Throw a compile error for `on_finalise` and `on_initialise` (#2236)
      
      commit e57e54ab
      Author: Pierre Krieger <pierre.krieger1708@gmail.com>
      Date:   Tue Apr 9 05:30:43 2019 -0300
      
          Add warning when using default protocol ID (#2234)
      
          * Add warning when using default protocol ID
      
          * Update core/service/src/lib.rs
      
      commit cb766e5f
      Author: Xiliang Chen <xlchen1291@gmail.com>
      Date:   Tue Apr 9 17:22:20 2019 +1200
      
          update name and authors to placeholder text for node-template (#2222)
      
          * update name and authors to placeholder text
      
          * revert package name change
      
      commit a1e15ae5
      Author: André Silva <andre.beat@gmail.com>
      Date:   Mon Apr 8 12:50:34 2019 +0100
      
          grandpa: Voter persistence and upgrade to finality-grandpa v0.7 (#2139)
      
          * core: grandpa: migrate to grandpa 0.7
      
          * core: grandpa: store current round votes and load them on startup
      
          * core: grandpa: resend old persisted votes for the current round
      
          * core: grandpa: store base and votes for last completed round
      
          * core: grandpa: fix latest grandpa 0.7 changes
      
          * core: grandpa: update to grandpa 0.7.1
      
          * core: grandpa: persist votes for last two completed rounds
      
          * core: grandpa: simplify VoterSetState usage
      
          * core: grandpa: use Environment::update_voter_set_state
      
          * core: grandpa: fix aux_schema test
      
          * core: grandpa: add docs
      
          * core: grandpa: add note about environment assumption
      
          * core: grandpa: don't update voter set state on ignored votes
      
          * core: grandpa: add test for v1 -> v2 aux_schema migration
      
          * core: grandpa: add test for voter vote persistence
      
          * core: grandpa: use grandpa 0.7.1 from crates.io
      
          * core: grandpa: use try_init in test
      
          * core: grandpa: add comment about block_import in test
      
          * core: grandpa: avoid cloning HasVoted
      
          * core: grandpa: add missing docs
      
          * core: grandpa: cleanup up can_propose/prevote/precommit
      
      commit ed3ae4ac
      Author: Gregory Terzian <2792687+gterzian@users.noreply.github.com>
      Date:   Mon Apr 8 13:17:00 2019 +0200
      
          remove clone bound on specialization in testnet factory (#2157)
      
      commit 03f3fb14
      Author: Andrew Jones <ascjones@gmail.com>
      Date:   Sat Apr 6 12:23:56 2019 +0100
      
          Contract import/export validation (#2203)
      
          * Reject validation of contract with unknown exports
      
          * Validate imports eagerly
      
          * Increment spec version
      
      commit decddaab
      Author: Pierre Krieger <pierre.krieger1708@gmail.com>
      Date:   Fri Apr 5 14:07:09 2019 -0300
      
          Fix state inconsistency between handler and behaviour (#2220)
      
          * Fix state inconsistency between handler and behaviour
      
          * Fix the error! being in the wrong place
      
      commit dce0b4ea
      Author: Bastian Köcher <bkchr@users.noreply.github.com>
      Date:   Fri Apr 5 18:50:38 2019 +0200
      
          Use `storage_root` of newly calculated header (#2216)
      
          Instead of calculating the `storage_root` a second time, we just can
          take the `storage_root` from the new header.
      
      commit b01136c9
      Author: Marek Kotewicz <marek.kotewicz@gmail.com>
      Date:   Fri Apr 5 14:44:46 2019 +0200
      
          Peerset::discovered accepts many peer ids (#2213)
      
          * Peerset::discovered accepts many peer ids
      
          * Improve tracing in peerset
      
      commit 1142bcde
      Author: Marek Kotewicz <marek.kotewicz@gmail.com>
      Date:   Thu Apr 4 19:40:40 2019 +0200
      
          simplification of peerset api (#2123)
      
          * Introduction of PeersetHandle
      
          * integrate PeersetHandle with the rest of the codebase
      
          * fix compilation errors
      
          * more tests for peerset, fixed overwriting bug in add_reserved_peer
      
          * Slots data structure and bugfixes for peerset
      
          * bend to pressure
      
          * updated lru-cache to 0.1.2 and updated linked-hash-map to 0.5.2
      
          * peerset discovered list is now a LinkedHashMap
      
          * fix review suggestions
      
          * split back Peerset and PeersetHandle
      
          * test for Peerset::discovered
      
          * applied review suggestions
      
          * fixes to peerset::incoming
      
          * peerset disconnects are all instantaneous
      
          * instantaneous drop in peerset finished
      
          * Peerset::set_reserved_only can also reconnect nodes
      
          * Peerset scores cache uses lru-cache
      
          * remove redundant function call and comment from Peerset::on_set_reserved_only
      
          * add_peer returns SlotState enum
      
          * apply review suggestions
      
          * is_reserved -> is_connected_and_reserved
      
      commit 301844dd
      Author: Arkadiy Paronyan <arkady.paronyan@gmail.com>
      Date:   Thu Apr 4 18:01:28 2019 +0200
      
          Disconnect on protocol timeout (#2212)
      
      commit cb3c912b
      Author: André Silva <andre.beat@gmail.com>
      Date:   Thu Apr 4 15:56:49 2019 +0100
      
          core: grandpa: verify commit target in justification (#2201)
      
      commit 6920b169
      Author: Bastian Köcher <bkchr@users.noreply.github.com>
      Date:   Thu Apr 4 16:56:16 2019 +0200
      
          Introduce `original_storage` and `original_storage_hash` (#2211)
      
          Both functions will ignore any overlayed changes and access the backend
          directly.
      
      commit cb7a8161
      Author: Xiliang Chen <xlchen1291@gmail.com>
      Date:   Fri Apr 5 03:55:55 2019 +1300
      
          code cleanup (#2206)
      
      commit acaf1fe6
      
      
      Author: Arkadiy Paronyan <arkady.paronyan@gmail.com>
      Date:   Wed Apr 3 15:52:46 2019 +0200
      
          Emberic elm testnet (#2197)
      
      * Make telemetry onconnect hoook optional
      
      * Merge branch 'master' into 'cmichi-send-high-level-consensus-telemetry-by-default'
      
      * Introduce GrandpaParams struct to condense parameters
      
      * Remove debug statement
      
      * Fix tests
      
      * Rename parameter
      
      * Fix tests
      
      * Rename struct
      
      * Do not send verbosity level
      
      * Combine imports
      
      * Implement comments
      
      * Run cargo build --all
      
      * Remove noisy telemetry
      
      * Add docs for public items
      
      * Unbox and support Clone trait
      
      * Fix merge
      
      * Fix merge
      
      * Update core/finality-grandpa/src/lib.rs
      
      Co-Authored-By: default avatarcmichi <mich@elmueller.net>
      87776e63
  34. Apr 16, 2019
    • asynchronous rob's avatar
      Polite-grandpa improvements (#2229) · 1aa6eb9f
      asynchronous rob authored
      * send neighbor packets in more generic way
      
      * integrate periodic neighbor-packet rebroadcaster
      
      * integrate reporting
      
      * attach callbacks to commit messages for rebroadcasting and reporting
      
      * Tests for commit relay
      
      * crunch up some nice warnings
      
      * exit-scope sub-futures of grandpa
      
      * address small grumbles
      
      * some changes to commit handling
      1aa6eb9f
  35. Apr 08, 2019
    • André Silva's avatar
      grandpa: Voter persistence and upgrade to finality-grandpa v0.7 (#2139) · a1e15ae5
      André Silva authored and asynchronous rob's avatar asynchronous rob committed
      * core: grandpa: migrate to grandpa 0.7
      
      * core: grandpa: store current round votes and load them on startup
      
      * core: grandpa: resend old persisted votes for the current round
      
      * core: grandpa: store base and votes for last completed round
      
      * core: grandpa: fix latest grandpa 0.7 changes
      
      * core: grandpa: update to grandpa 0.7.1
      
      * core: grandpa: persist votes for last two completed rounds
      
      * core: grandpa: simplify VoterSetState usage
      
      * core: grandpa: use Environment::update_voter_set_state
      
      * core: grandpa: fix aux_schema test
      
      * core: grandpa: add docs
      
      * core: grandpa: add note about environment assumption
      
      * core: grandpa: don't update voter set state on ignored votes
      
      * core: grandpa: add test for v1 -> v2 aux_schema migration
      
      * core: grandpa: add test for voter vote persistence
      
      * core: grandpa: use grandpa 0.7.1 from crates.io
      
      * core: grandpa: use try_init in test
      
      * core: grandpa: add comment about block_import in test
      
      * core: grandpa: avoid cloning HasVoted
      
      * core: grandpa: add missing docs
      
      * core: grandpa: cleanup up can_propose/prevote/precommit
      a1e15ae5
  36. Apr 02, 2019
    • asynchronous rob's avatar
      Initial version of the polite-grandpa networking protocol (#2110) · bb95e7d6
      asynchronous rob authored
      
      * Consensus status packet
      
      * Allow for repropagation after status
      
      * More generic gossip
      
      * add a basic view struct and gossip module
      
      * move gossip stuff to the gossip module
      
      * integrate view into gossip
      
      * some reshuffling
      
      * alter rules for keeping one commit at a time in view
      
      * Allow sending addressed messages
      
      * don't cast outgoing votes if we know that we voted before
      
      * Handle one hop messages
      
      * initial run at polite grandpa
      
      * build WASM
      
      * handle neighbor messages
      
      * refactor validator's internals into an Inner struct
      
      * gossip only knows to keep or discard messages. optimize should_send_to
      
      * Periodic rebroadcast
      
      * implement `should_send_to` and message_expired
      
      * track peers' best received commit height
      
      * Pass peer id to topic steam
      
      * kill rebroadcasting network
      
      * Notify about existing peers
      
      * clean up network APIs a bunch
      
      * implement gossip::send_message for direct messages
      
      * refactor network trait
      
      * implement gossip::send_message for direct messages
      
      * get all non set-change tests passing
      
      * treat unknown rebroadcasts as broadcasts
      
      * get all other main tests passing
      
      * remove unimplemented test
      
      * everything compiles
      
      * treat unknown rebroadcasts as broadcasts
      
      * Rebradcast interval
      
      * Apply suggestions from code review
      
      Style
      
      Co-Authored-By: default avatararkpar <arkady.paronyan@gmail.com>
      
      * Style
      
      * some module docs
      
      * address some grumbles + docs
      
      * allow rebroadcast every few minutes
      
      * send_topic && generic context
      
      * some tests for view change
      
      * more grumbles & tests
      
      * use send_peer
      bb95e7d6