Skip to content
  1. Aug 08, 2019
    • Xiliang Chen's avatar
      add post_dispatch (#3229) · 0f0df985
      Xiliang Chen authored
      * add post_dispatch
      
      * Update traits.rs
      
      * Update checked_extrinsic.rs
      
      * Update traits.rs
      
      * Update traits.rs
      
      * fix build issue
      
      * update runtime version
      
      * fix test build issue
      0f0df985
  2. Aug 07, 2019
    • Arkadiy Paronyan's avatar
      Set uncles inherent (#3317) · 58bd0d4c
      Arkadiy Paronyan authored
      * Include uncles
      
      * Filter missing uncles
      
      * Moved inherent registration to a new crate
      
      * Ignore invalid inherent encoding
      58bd0d4c
    • Bastian Köcher's avatar
      Make `DefaultByte` implement `Send + Sync` (#3333) · ea58b7c9
      Bastian Köcher authored
      * Make `DefaultByte` implement `Send + Sync`
      
      * Update runtime version.
      ea58b7c9
    • thiolliere's avatar
      Staking optimisation (#3300) · 556a9416
      thiolliere authored and asynchronous rob's avatar asynchronous rob committed
      * staking code api
      
      * doc + test
      
      * version bump
      
      * index fn
      
      * rename function
      
      * doc
      
      * adress comments
      
      * add complexity comment
      556a9416
    • 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 <[email protected]>
      
      * 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
    • Bastian Köcher's avatar
    • thiolliere's avatar
      Fix decl_storage map and linked_map for insert_ref (#3316) · 87e72d93
      thiolliere authored
      
      
      * test
      
      * fix
      
      * bumpd version
      
      * Update srml/support/procedural/src/storage/impls.rs
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      87e72d93
  3. Aug 06, 2019
  4. Aug 02, 2019
    • Sergey Pepyakin's avatar
      srml-contracts: Minor fixes to docs. (#3262) · f0856db1
      Sergey Pepyakin authored
      
      
      * Adjust documentation.
      
      * Bump impl_version.
      
      * Update srml/contracts/src/wasm/runtime.rs
      
      Co-Authored-By: default avatarHero Bird <[email protected]>
      
      * Remove incorrect doc.
      f0856db1
    • André Silva's avatar
      node: use BABE predigest data to find authorship (#3293) · aa861856
      André Silva authored
      * node: use BABE predigest data to find authorship
      
      * node: bump spec_version
      
      * babe: use u32 for authority index
      aa861856
    • cheme's avatar
      Trie simplification. (#2815) · da8b91ae
      cheme authored
      * switch to simple codec, trie broken for now
      
      * Actualy use trie_root_noext
      
      * align some hash, failing test on EMCH comment
      
      * Fix trie code over layout instead of hash, revert legacy code for legacy
      mainnet ??
      
      * stub behind LayOut
      
      * fix no_std
      
      * temp solution for legacy trie behind feature legacy-key in various crate
      
      * use remote project
      
      * rc client db need prefix
      
      * update trie deps
      
      * bum spec runtime version
      
      * Removing legacy as default.
      
      * Switch mode to non legacy.
      
      * bump runtime version
      
      * Remove legacy trie compatibility features.
      
      * fix warning
      
      * bump version
      
      * change hash on new test.
      
      * Move dependency (#11 trie PR) patched to a parity repo.
      Bench reverted to correct hasher.
      Some renaming and doc improvments.
      
      * ChildBitmap renaming to BitMap.
      
      * Renaming of LayOut to Layout.
      
      * formatting.
      
      * Removing abreviation such as _ix nb_ or bm.
      
      * Update deps and apply renaming 'Buff' -> 'Buffer'.
      
      * Align to latest trie crates naming changes.
      
      * Update trie dependency.
      
      * Update trie dependency.
      
      * change block_import test hash
      
      * update trie deps (trie use new scale codec but it does not seems to be
      an issue).
      
      * update to use latest trie version (no mgmt of multiple radix).
      
      * tabify
      
      * Restoring test to 10 000.
      
      * Use published crate, trie bench is currently down until publishing
      (require another pr to update version).
      
      * Update trie-bench.
      da8b91ae
    • Gavin Wood's avatar
      Check the genesis hash in transactions regardless of era. (#3286) · 7927e80b
      Gavin Wood authored
      * Check the genesis hash in transactions regardless of era.
      
      * Fix check-fees, too.
      
      * Undo.
      
      * Subkey supports new signing.
      
      * Remove unneeded type param.
      
      * Bump tx version
      
      * Build.
      
      * Another build fix
      
      * Build again
      
      * Cleanup
      
      * Another fix.
      
      * Fix
      
      * Fixes
      
      * 6 second blocks.
      
      * Fixes
      
      * Build fix
      
      * Fix
      
      * Fix.
      7927e80b
  5. Aug 01, 2019
  6. Jul 30, 2019
  7. Jul 29, 2019
  8. Jul 26, 2019
    • André Silva's avatar
      Use milliseconds for timestamp resolution (#3210) · a5efdd05
      André Silva authored
      
      
      * node: tabify constants file
      
      * node: define minimum period and slot duration in milliseconds
      
      * core: srml: use milliseconds for timestamp resolution
      
      * core: update slot_duration to millis in tests
      
      * node: bump spec_version
      
      * node: fix integration test
      
      * node: fix executor test
      
      * Update node/runtime/src/lib.rs
      
      Co-Authored-By: default avatarKian Peymani <[email protected]>
      
      * node: fix docs on timestamp resolution
      
      * node: add docs on u64 for millis
      a5efdd05
  9. Jul 25, 2019
    • Michael Müller's avatar
      Handle local storage race conditions better (#3177) · 23fba990
      Michael Müller authored
      * Make local_storage_compare_and_set take Option for old_value
      
      * Adapt srml/im-online to API changes
      
      * Bump version
      
      * Bump version again
      
      * Replace match
      23fba990
    • André Silva's avatar
      srml: staking: track session index of current era start (#3203) · b633f93b
      André Silva authored
      * srml: staking: track session index of current era start
      
      * node: bump spec_version
      b633f93b
    • Kian Peymani's avatar
      Weight annotation. (#3157) · 002acb93
      Kian Peymani authored
      
      
      * Make extrinsics extensible.
      
      Also Remove old extrinsic types.
      
      * Rest of mockup. Add tips.
      
      * Fix some build issues
      
      * Runtiem builds :)
      
      * Substrate builds.
      
      * Fix a doc test
      
      * Compact encoding
      
      * Extract out the era logic into an extension
      
      * Weight Check signed extension. (#3115)
      
      * Weight signed extension.
      
      * Revert a bit + test for check era.
      
      * Update Cargo.toml
      
      * Update node/cli/src/factory_impl.rs
      
      * Update node/executor/src/lib.rs
      
      * Update node/executor/src/lib.rs
      
      * Don't use len for weight - use data.
      
      * Operational Transaction; second attempt (#3138)
      
      * working poc added.
      
      * some fixes.
      
      * Update doc.
      
      * Fix all tests + final logic.
      
      * more refactoring.
      
      * nits.
      
      * System block limit in bytes.
      
      * Silent the storage macro warnings.
      
      * More logic more tests.
      
      * Fix import.
      
      * Refactor names.
      
      * Fix build.
      
      * Update srml/balances/src/lib.rs
      
      * Final refactor.
      
      * Bump transaction version
      
      * Fix weight mult test.
      
      * Fix more tests and improve doc.
      
      * Bump.
      
      * Make some tests work again.
      
      * Fix subkey.
      
      * Remove todos + bump.
      
      * First draft of annotating weights.
      
      * Refactor weight to u64.
      
      * More refactoring and tests.
      
      * New convert for weight to fee
      
      * more tests.
      
      * remove merge redundancy.
      
      * Fix system test.
      
      * Bring back subkey stuff.
      
      * a few stress tests.
      
      * fix some of the grumbles.
      
      * Final nits.
      
      * Update srml/system/src/lib.rs
      
      Co-Authored-By: default avatarDemiMarie-parity <[email protected]>
      
      * Scale weights by 1000.
      
      * Bump.
      
      * Fix decl_storage test.
      002acb93
  10. Jul 24, 2019
    • André Silva's avatar
      Use BABE instead of AuRa in node (#3171) · 9f50c8fc
      André Silva authored
      * babe: add babe module trait
      
      * babe: track current slot and epoch start slot
      
      * babe: implement ShouldEndSession based on epochs
      
      * babe: rename weight type to avoid ambiguities
      
      * babe: expose epoch start slot in Epoch digest
      
      * babe: use epoch start for validating epoch transitions
      
      * babe: make the epoch duration a parameter type
      
      * babe: remove unused fields from config
      
      * node: update runtime to use babe instead of aura
      
      * node: use babe instead of aura
      
      * core: generate sr25519 keys from seed and add to keystore
      
      * core: remove AuthorityKeyring
      
      * node: remove unused primitive types related to babe crypto
      
      * uniform babe primitives crate import name
      
      * wrap long lines
      
      * babe: fix find_epoch_digest
      
      * fork-tree: fix find_node_where
      
      * node: set babe epoch duration to "10 minutes"
      
      * babe: cleanup import key cache if authorities don't change
      
      * node: make integration test compile (but fail)
      
      * node: bump spec_version
      
      * node: fix import
      
      * babe: don't use constants in storage fields array sizes
      
      * babe: account for first epoch slot way in the past
      
      * babe: signal next epoch change (not current)
      
      * babe: calculate next epoch randomness with next epoch index
      
      * babe: track next epoch in node
      
      * babe: cache current epoch and authorities separately
      
      * babe: generate valid babe vrf proofs in integration test
      
      * babe: cleanup claim_slot
      
      * babe: perform threshold calculation according to spec
      
      * babe: compute relative weight in threshold
      
      * babe: more precise threshold calculation
      
      * babe: use floats for threshold exponent calculation
      
      * babe: update constant c
      9f50c8fc
    • Bastian Köcher's avatar
      Expose instancing in metadata (#3188) · f7ff339e
      Bastian Köcher authored
      * Expose instancing in metadata
      
      - Introduces metadata v7
      - If a module is using instancing, the storage exposes the instance in
      metadata
      - Metadata module name is now the upper case one given to
      `construct_runtime!`
      
      * Remove obsolete macro
      
      * Just expose one prefix
      
      * Bump spec
      
      * Fix prefix generation
      f7ff339e
    • thiolliere's avatar
      Staking rate targeting and specific rewards. (#2882) · 2b6f664c
      thiolliere authored
      
      
      * PNPoS implementation
      
      * wip: change staking api
      
      * code readibility
      
      * fix overflow
      
      * comment
      
      * license
      
      * doc
      
      * reorganize a bit
      
      * rename to proper english + doc
      
      * address comments
      
      * refactor unused mock
      
      * fix add_point
      
      * update tests
      
      * add not equalize to ci
      
      * Revert "add not equalize to ci"
      
      This reverts commit 1c61c25874b04b1cdfadd7d353b75a189a59ad35.
      
      * bring test back
      
      * update locks
      
      * fix genesis config
      
      * add authorship event handler + test
      
      * uncouple timestamp from staking
      
      * use on finalize instead
      
      * remove todo
      
      * simplify mock
      
      * address comment
      
      * doc
      
      * merge test
      
      * fmt
      
      * remove todo todo
      
      * move add_reward_point to regular function
      
      * doc
      
      * doc
      
      * increase version
      
      * doc and fmt
      
      * Update srml/staking/src/inflation.rs
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * Fix some doc typos
      2b6f664c
    • Bastian Köcher's avatar
      Make function `get` of parameter types public (#3191) · 1c346d21
      Bastian Köcher authored
      I missed this while making parameter types more flexible.
      1c346d21
    • Bastian Köcher's avatar
      Switch `srml-session` keys to `decl_storage!` (#3184) · 5d58d583
      Bastian Köcher authored
      * Switch `srml-session` keys to `decl_storage!`
      
      * Expose `DEDUP_KEY_PREFIX` in constants
      
      * Fix test
      
      * Bump spec version
      5d58d583
  11. Jul 23, 2019
    • Bastian Köcher's avatar
      Bkchr check all benches (#3180) · 6e4066b6
      Bastian Köcher authored
      * Make sure CI checks all benchmarks
      
      * Fix babe
      6e4066b6
    • Bastian Köcher's avatar
      Export `VOTER_SET_SIZE` and `APPROVAL_SET_SIZE` in srml elections (#3173) · af40c368
      Bastian Köcher authored
      * Export `VOTER_SET_SIZE` and `APPROVAL_SET_SIZE` in srml elections
      
      * Fix compilation
      af40c368
    • DemiMarie-parity's avatar
      BABE Epochs (#3028) · f78a7807
      DemiMarie-parity authored and asynchronous rob's avatar asynchronous rob committed
      
      
      * Add `epoch` field to `SlotInfo`
      
      * Add slot calculations
      
      * More work on epochs in BABE
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarBastian Köcher <[email protected]>
      
      * Typo: `/` not `%` for division
      
      * Delete useless `LastSlotInEpoch::put(false)`
      
      * Bump `spec_version`
      
      * Make test suite pass again
      
      * Implement BABE epoch randomness signing
      
      * Try to fix compilation
      
      Currently causes a stack overflow in the compiler
      
      * Fix rustc stack overflow
      
      * Add missing `PartialEq` and `Eq` implementations
      
      * Fix compile errors in test suite
      
      * Another silly compile error
      
      * Clone `epoch`
      
      * Fix compile error in benchmarks
      
      * Implement `clone` for `Epoch`
      
      * Merge master
      
      * AUTHORING TEST PASSES!!!
      
      * Fix compilation
      
      * Bump `spec_version`
      
      * Fix compilation
      
      * Fix compilation (again)
      
      * Remove an outdated FIXME
      
      * Fix run.sh and move it to scripts/
      
      * Delete commented-out code
      
      * Fix documentation
      
      Co-Authored-By: default avatarAndré Silva <[email protected]>
      
      * Fix BABE initialization and refactor
      
      * Respond to review
      
      * typo
      
      * Remove useless data in `CheckedHeader::Deferred`
      
      * Remove `slot_number` from Epoch
      
      It is not needed, and only served to waste space and cause confusion.
      
      * Remove epoch from BABE digests
      
      * Move digest.rs to primitives
      
      * Fix incorrect warning names
      
      * Fix compile error
      
      * Consistent field naming for BABE digests
      
      * More compiler error fixex
      
      * Unbound variable
      
      * more compile errors
      
      * another compile error
      
      * Fix compile errors in runtime
      
      * another compile error
      
      * Another compile error
      
      * Fix wasm build
      
      * missing import
      
      * Fix more compile errors
      
      * yet another compile error
      
      * compile fix in test runtime
      
      * Fix and simplify the BABE runtime
      
      The BABE runtime was massively overcomplicated and also wrong.  It
      assumed it needed to:
      
      1. delay new authorities taking effect until the next epoch
      2. not delay emitting `Consensus` digests to mark epoch changes
      
      However, the first is handled by the `srml_session` crate, and the
      second is flat-out incorrect: `Consensus` digests take effect
      immediately.  Furthermore, `srml_babe` tried to duplicate the
      functionality of `srml_session::PeriodicSession`, but did it both
      clumsily and incorrectly.  Fortunately, the new code is simpler and far
      more likely to be correct.
      
      * Use `system` to get the test authorities
      
      The genesis block used by tests defines no authorities.  Only the test
      suite is affected.
      
      * Fix test runtime impl for BabeApi::epoch() with std
      
      * Fix compilation
      
      * Cached authorities are in the form of an epoch
      
      not a `Vec<AuthorityId>`.
      
      * `slots_per_epoch` is not fixed in general
      
      The BABE code previously assumed `slots_per_epoch` to be a constant,
      but that assumption is false in general.  Furthermore, removing this
      assumption also allows a lot of code to go away.
      
      * fix compile error
      
      * Implement epoch checker
      
      * Fix runtime compilation
      
      * fork-tree: add method for finding a node in the tree
      
      * babe: register epoch transitions in fork tree and validate them
      
      * fork-tree: add method for arbitrary pruning
      
      * Expose the queued validator set to SRML modules
      
      BABE needs to know not only what the current validator set is, but also
      what the next validator set will be.  Expose this to clients of the
      session module.
      
      * Bump hex-literal
      
      Hopefully this will fix the panic
      
      * babe: prune epoch change fork tree on finality
      
      * babe: validate epoch index on transition
      
      * babe: persist epoch changes tree
      
      * Fix compile error in tests
      
      * Fix compile error in tests
      
      * Another compile error in tests
      
      * Fix compilation of tests
      
      * core: move grandpa::is_descendent_of to client utils
      
      * babe: use is_descendent_of from client utils
      
      * babe: extract slot_number from pre_digest in import_block
      
      * Move BABE testsuite to its own file
      
      * Initial part of test code
      
      * Missing `WeightMultiplierUpdate` in test-runtime
      
      * bump `spec_version`
      
      * Add a test that a very bogus is rejected
      
      * Run the tests again
      
      * Fix compiler diagnostics
      
      * Bump `spec_version`
      
      * Initial infrastructure for mutation testing
      
      * Mutation testing of block import
      
      * babe: revert epoch changes in case of block import error
      
      * babe: fix logging target
      
      * babe: BabeBlockImport doesn't box inner BlockImport
      
      * babe: fix epoch check in block import
      
      * babe: populate authorities cache on block authorship
      
      * babe: remove unused functions
      
      * babe: use RANDOMNESS_LENGTH const
      
      * babe: remove unneeded config parameters
      
      * core: revert change to hex dependency version
      
      * cleanup gitignore
      
      * babe: add docs to aux_schema
      
      * babe: remove useless drops in tests
      
      * babe: remove annoying macos smart quotes
      
      * fork-tree: docs
      
      * fork-tree: add tests
      
      * babe: style
      
      * babe: rename randomness config variable
      
      * babe: remove randomness helper function
      
      * babe: style fixes
      
      * babe: add docs
      
      * babe: fix tests
      
      * node: bump spec_version
      
      * babe: fix tests
      f78a7807
  12. Jul 22, 2019
    • Gavin Wood's avatar
      Extensible transactions (and tips) (#3102) · 78bc5edc
      Gavin Wood authored
      * Make extrinsics extensible.
      
      Also Remove old extrinsic types.
      
      * Rest of mockup. Add tips.
      
      * Fix some build issues
      
      * Runtiem builds :)
      
      * Substrate builds.
      
      * Fix a doc test
      
      * Compact encoding
      
      * Extract out the era logic into an extension
      
      * Weight Check signed extension. (#3115)
      
      * Weight signed extension.
      
      * Revert a bit + test for check era.
      
      * Update Cargo.toml
      
      * Update node/cli/src/factory_impl.rs
      
      * Update node/executor/src/lib.rs
      
      * Update node/executor/src/lib.rs
      
      * Don't use len for weight - use data.
      
      * Operational Transaction; second attempt (#3138)
      
      * working poc added.
      
      * some fixes.
      
      * Update doc.
      
      * Fix all tests + final logic.
      
      * more refactoring.
      
      * nits.
      
      * System block limit in bytes.
      
      * Silent the storage macro warnings.
      
      * More logic more tests.
      
      * Fix import.
      
      * Refactor names.
      
      * Fix build.
      
      * Update srml/balances/src/lib.rs
      
      * Final refactor.
      
      * Bump transaction version
      
      * Fix weight mult test.
      
      * Fix more tests and improve doc.
      
      * Bump.
      
      * Make some tests work again.
      
      * Fix subkey.
      
      * Remove todos + bump.
      
      * Ignore expensive test.
      
      * Bump.
      78bc5edc
    • Bastian Köcher's avatar
      Document `decl_storage!` hashers (#3170) · 4f5654b6
      Bastian Köcher authored and thiolliere's avatar thiolliere committed
      4f5654b6
    • thiolliere's avatar
      fix doc (#3162) · 08d19331
      thiolliere authored
      08d19331
    • David Craven's avatar
      Refactors the offchain worker api (#3150) · a3d19bae
      David Craven authored
      * Update offchain primitives.
      
      * Update offchain worker.
      
      * Update im-online.
      
      * Update service.
      
      * Update node and node-template.
      
      * Update runtime version.
      
      * Fix build.
      
      * Fix offchain worker tests.
      
      * Generalize authority_pubkey.
      
      * Add test.
      
      * Update lib.rs
      a3d19bae
  13. Jul 21, 2019
  14. Jul 20, 2019
    • Michael Müller's avatar
      Introduce srml/im-online (#3079) · c70b8144
      Michael Müller authored
      
      
      * Fix grammar and typo
      
      * Extend network service
      
      * Extend offchain API
      
      * Support creating unsigned UncheckedExtrinsic
      
      * Introduce srml/im-online
      
      * Bump impl and spec version
      
      * Fix web-wasm test
      
      * Apply suggestions from code review
      
      Remove parity-multiaddr dependency
      
      Co-Authored-By: default avatarPierre Krieger <[email protected]>
      
      * Replace transmute with from_raw_parts
      
      * Replace PeerId.to_string() with .to_base58()
      
      Co-Authored-By: default avatarPierre Krieger <[email protected]>
      
      * Update Cargo.lock
      
      * Bump impl and spec version (again)
      
      It was updated in master in the meantime.
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarSergei Pepyakin <[email protected]>
      
      * Address comments
      
      * Add public function is_online_in_current_session()
      
      * Bump spec_version
      
      * Fix doc tests
      
      * Improve comments
      
      * Remove superfluous line
      
      * Name parameters consistently
      
      * Implement comments
      
      * Switch From to TryFrom
      
      * Use Vec instead of HashSet
      
      * Fix tests
      
      * Revert me: local testing
      
      * Fix check if already sent during session
      
      We gossip each session, hence we need to check
      if already sent in this session (not era).
      
      * Fix typos
      
      * Consistent terminology
      
      * Revert "Revert me: local testing"
      
      This reverts commit 73fbc29ff3e5ed71d99436318260b4f007e837f4.
      
      * Introduce IsMember trait
      
      * Implement misc comments
      
      * Remove unused function
      
      * Fix test
      
      * Fix external_addresses being written
      
      * Fix test
      
      * Add necessary trait bound
      
      * Do not increment version
      
      * Update lib.rs
      c70b8144