Skip to content
  1. Nov 23, 2020
  2. Nov 11, 2020
    • Jon Häggblad's avatar
      slots: incrementally backoff claiming slots if finality lags behind (#7186) · 7cf78c16
      Jon Häggblad authored
      
      
      * babe: backoff authoring blocks when finality lags
      
      * babe: move backoff authoring params to default constructor
      
      * babe: deduplicate the test a bit
      
      * babe: set backoff constants in service
      
      * babe: use better names for backoff authoring block parameters
      
      * babe: remove last unwrap
      
      * babe: slight style tweak
      
      * babe: fix comment
      
      * slots: move backoff block authorship logic to SimpleSlotWorker
      
      * aura: append SlotInfo in on_slot
      
      * slots: use the correct types for parameters
      
      * slots: fix review comments
      
      * aura: add missing backoff authoring blocks parameters
      
      * slots: add comments for default values
      
      * slots: add additional checks in test
      
      * slots: update implementation for new master
      
      * slots: revert the change to SlotInfo
      
      * Fix review comments
      
      * slots: rework unit tests for backing off claiming slots
      
      * slots: add test for asymptotic behaviour for slot claims
      
      * slots: address review comments
      
      * slots: add test for max_interval
      
      * slots: add assertion for intervals between between claimed slots
      
      * slots: remove rustfmt directive
      
      * slots: another attempt at explaining authoring_rate
      
      * slots: up unfinalized_slack to 50 by default
      
      * slots: add tests for time to reach max_interval
      
      * slots: fix typo in comments
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * slots: additional tweaks to comments and info calls
      
      * slots: rename to BackoffAuthoringOnFinalizedHeadLagging
      
      * slots: make the backing off strategy generic
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * slots: implement backoff trait for () for simplicity
      
      * slots: move logging inside backing off function to make it more specific
      
      * aura: add missing function parameter
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      7cf78c16
    • Bastian Köcher's avatar
      Skip slot lenience on first block in BABE (#7515) · 48a84f90
      Bastian Köcher authored
      The genesis header doesn't have the BABE pre-digest and we insert `0` as
      slot number. The slot lenience calculation will return the maximum in
      this situation. Besides returning the maximum which is not bad at all,
      it also prints some a debug message that can be confusing in the first
      moment. To prevent printing this debug message, we now just return early
      when we see that the parent block is the genesis block.
      48a84f90
  3. Nov 05, 2020
  4. Nov 04, 2020
    • Web3 Philosopher's avatar
      Allow BabeConsensusDataProvider fork existing chain (#7078) · 6328f874
      Web3 Philosopher authored
      * parent affbc38a
      
      
      author Seun Lanlege <[email protected]> 1599568164 +0100
      committer Seun Lanlege <[email protected]> 1604321289 +0100
      gpgsig -----BEGIN PGP SIGNATURE-----
      
       iQGzBAABCgAdFiEECvQ02MnjnssnSbjr3HzzEhjN254FAl+gAAkACgkQ3HzzEhjN
       254soAv+KO5JA0HXSe0R0XS5TnwA3IxYsW+UvdF5dXFeC3jFdGTMvor818uoBePD
       dxzYEsUK6gjsNcM9+hpFhoy5JnUrUPInd2BZ7pmZiDuXmYJrHi0s7K5qL0EYDoe0
       m1egPNNyRR125ozJ24M+09c3OQsi3bvTx1TJaV9Aov8hK4So8UmlJTHWpkLw97ku
       HuTre2IPSFbV4GwJE40V+KNuDVHxaKL7zrInYScqbr6/hOTqBCvFn4ib3CjpF5HG
       zDAA5S2PrcbL9NQOothVcVB/TZr3IkhglCFqEjVyCX80IL0JkNZkw8jAh0B8uqXx
       Ug/c1/Mssa8F1jLZMmW45Cway60txqVbcWntPJAymGJbrRErOO/++oUrV0u1C65u
       LW7gXAaIJWQTX9KnX0SEyejNod7ubZktBz7n5WfkJAPIzdw5wtJalhLa673YTgQ9
       zyTPKiWjJj2myCq1AYrJvlK8hSsIBqbBFcUf1zX4SzZWKS+5mtp51o4gfVzcCRPd
       z/6/iPbB
       =g5tx
       -----END PGP SIGNATURE-----
      
      BabeConsensusDataProvider works with existing chains
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      6328f874
  5. Oct 27, 2020
    • Bastian Köcher's avatar
      Make consensus `SlotWorker` don't assume a slot is time / duration (#7441) · 05af334b
      Bastian Köcher authored
      
      
      * Make consensus `SlotWorker` don't assume a slot is time / duration
      
      This removes the last bit of assumption that a slot is always `time /
      duration`. This will be required by parachains where a slot will be the
      relay chain block number. Besides this there are also some other drive
      by changes. One more notable is that `on_slot` now returns a
      `SlotResult` that holds the block and a potential storage proof.
      
      To simplify the implementation and usage of the `SimpleSlotWorker` the
      `SlotWorker` trait is now implemented for each type that implements
      `SimpleSlotWorker`.
      
      * Update client/consensus/slots/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update client/consensus/slots/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      05af334b
  6. Oct 21, 2020
    • Cecile Tonglet's avatar
      Add node name to the log lines (#7328) · 8cebbd14
      Cecile Tonglet authored
      * Initial commit
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * CLEANUP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * Add notes to original source code
      
      * CLEANUP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * CLEANUP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * CLEANUP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * WIP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * Some doc
      
      * Test with trybuild
      
      * Revert "Test with trybuild" (issue with trybuild atm)
      
      This reverts commit 9055ec2206808ba3ddce6e3d87eb358907fa5e42.
      
      https://github.com/dtolnay/trybuild/issues/53
      
      * Apply suggestions
      
      * Rename derive to proc-macro
      
      * Remove "prefix" feature from informant
      
      * Blocking task should use SpawnHandle::spawn_blocking
      
      * Improve doc as suggested
      
      * Fixes
      
      Forked at: 601e2fa1
      
      
      Parent branch: origin/master
      
      * Apply suggestion
      
      * Update client/cli/proc-macro/src/lib.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * More suggestions
      
      * CLEANUP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * Improve error message
      
      * CLEANUP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * Fix async issue
      
      * CLEANUP
      
      Forked at: 601e2fa1
      Parent branch: origin/master
      
      * CLEANUP
      
      Forked at: 601e2fa1
      
      
      Parent branch: origin/master
      
      * Add test
      
      * fix doc test
      
      * Update client/cli/src/logging.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Update client/basic-authorship/src/basic_authorship.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Update client/basic-authorship/src/basic_authorship.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Apply suggestions
      
      * Suggestions
      
      * Clarify doc
      
      * WIP
      
      Forked at: 601e2fa1
      
      
      Parent branch: origin/master
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      8cebbd14
  7. Oct 15, 2020
    • Ashley's avatar
      Add missing fields to the light sync state (#7225) · d1ef8507
      Ashley authored
      * Initial draft
      
      * Add an iterator that helps us get most items
      
      * Revert changes to grandpa
      
      * Change fields to just be the grandpa authority set and babe epoch changes
      
      * Only use the fields we need from the shared authority set
      
      * Switch to RPC call
      
      * Revert "Only use the fields we need from the shared authority set"
      
      This reverts commit 6ede87b0c5fe53f251d7cb45951006a7dc8f9b83.
      
      * Add babe_finalized_block_weight from `ashley-improve-sync-state-WIP-loading`
      
      * Fix rpc test
      
      * Move sync state rpc stuff into sc-sync-state-rpc
      
      * Remove as_json_value and remove unwraps from sc-sync-state-rpc
      
      * Add clone_inner to SharedAuthoritySet
      d1ef8507
  8. Oct 08, 2020
    • Rakan Alhneiti's avatar
      Async keystore + Authority-Discovery async/await (#7000) · 3aa4bfac
      Rakan Alhneiti authored
      
      
      * Asyncify sign_with
      
      * Asyncify generate/get keys
      
      * Complete BareCryptoStore asyncification
      
      * Cleanup
      
      * Rebase
      
      * Add Proxy
      
      * Inject keystore proxy into extensions
      
      * Implement some methods
      
      * Await on send
      
      * Cleanup
      
      * Send result over the oneshot channel sender
      
      * Process one future at a time
      
      * Fix cargo stuff
      
      * Asyncify sr25519_vrf_sign
      
      * Cherry-pick and fix changes
      
      * Introduce SyncCryptoStore
      
      * SQUASH ME WITH THE first commit
      
      * Implement into SyncCryptoStore
      
      * Implement BareCryptoStore for KeystoreProxyAdapter
      
      * authority-discovery
      
      * AURA
      
      * BABE
      
      * finality-grandpa
      
      * offchain-workers
      
      * benchmarking-cli
      
      * sp_io
      
      * test-utils
      
      * application-crypto
      
      * Extensions and RPC
      
      * Client Service
      
      * bin
      
      * Update cargo.lock
      
      * Implement BareCryptoStore on proxy directly
      
      * Simplify proxy setup
      
      * Fix authority-discover
      
      * Pass async keystore to authority-discovery
      
      * Fix tests
      
      * Use async keystore in authority-discovery
      
      * Rename BareCryptoStore to CryptoStore
      
      * WIP
      
      * Remote mutable borrow in CryptoStore trait
      
      * Implement Keystore with backends
      
      * Remove Proxy implementation
      
      * Fix service builder and keystore user-crates
      
      * Fix tests
      
      * Rework authority-discovery after refactoring
      
      * futures::select!
      
      * Fix multiple mut borrows in authority-discovery
      
      * Merge fixes
      
      * Require sync
      
      * Restore Cargo.lock
      
      * PR feedback - round 1
      
      * Remove Keystore and use LocalKeystore directly
      
      Also renamed KeystoreParams to KeystoreContainer
      
      * Join
      
      * Remove sync requirement
      
      * Fix keystore tests
      
      * Fix tests
      
      * client/authority-discovery: Remove event stream dynamic dispatching
      
      With authority-discovery moving from a poll based future to an `async`
      future Rust has difficulties propagating the `Sync` trade through the
      generated state machine.
      
      Instead of using dynamic dispatching, use a trait parameter to specify
      the DHT event stream.
      
      * Make it compile
      
      * Fix submit_transaction
      
      * Fix block_on issue
      
      * Use await in async context
      
      * Fix manual seal keystore
      
      * Fix authoring_blocks test
      
      * fix aura authoring_blocks
      
      * Try to fix tests for auth-discovery
      
      * client/authority-discovery: Fix lookup_throttling test
      
      * client/authority-discovery: Fix triggers_dht_get_query test
      
      * Fix epoch_authorship_works
      
      * client/authority-discovery: Remove timing assumption in unit test
      
      * client/authority-discovery: Revert changes to termination test
      
      * PR feedback
      
      * Remove deadcode and mark test code
      
      * Fix test_sync
      
      * Use the correct keyring type
      
      * Return when from_service stream is closed
      
      * Convert SyncCryptoStore to a trait
      
      * Fix line width
      
      * Fix line width - take 2
      
      * Remove unused import
      
      * Fix keystore instantiation
      
      * PR feedback
      
      * Remove KeystoreContainer
      
      * Revert "Remove KeystoreContainer"
      
      This reverts commit ea4a37c7d74f9772b93d974e05e4498af6192730.
      
      * Take a ref of keystore
      
      * Move keystore to dev-dependencies
      
      * Address some PR feedback
      
      * Missed one
      
      * Pass keystore reference - take 2
      
      * client/finality-grandpa: Use `Arc<dyn CryptoStore>` instead of SyncXXX
      
      Instead of using `SyncCryptoStorePtr` within `client/finality-grandpa`,
      which is a type alias for `Arc<dyn SyncCryptoStore>`, use `Arc<dyn
      CryptoStore>`. Benefits are:
      
      1. No additional mental overhead of a `SyncCryptoStorePtr`.
      
      2. Ability for new code to use the asynchronous methods of `CryptoStore`
      instead of the synchronous `SyncCryptoStore` methods within
      `client/finality-granpa` without the need for larger refactorings.
      
      Note: This commit uses `Arc<dyn CryptoStore>` instead of
      `CryptoStorePtr`, as I find the type signature more descriptive. This is
      subjective and in no way required.
      
      * Remove SyncCryptoStorePtr
      
      * Remove KeystoreContainer & SyncCryptoStorePtr
      
      * PR feedback
      
      * *: Use CryptoStorePtr whereever possible
      
      * *: Define SyncCryptoStore as a pure extension trait of CryptoStore
      
      * Follow up to SyncCryptoStore extension trait
      
      * Adjust docs for SyncCryptoStore as Ben suggested
      
      * Cleanup unnecessary requirements
      
      * sp-keystore
      
      * Use async_std::task::block_on in keystore
      
      * Fix block_on std requirement
      
      * Update primitives/keystore/src/lib.rs
      
      Co-authored-by: default avatarMax Inden <[email protected]>
      
      * Fix wasm build
      
      * Remove unused var
      
      * Fix wasm compilation - take 2
      
      * Revert async-std in keystore
      
      * Fix indent
      
      * Fix version and copyright
      
      * Cleanup feature = "std"
      
      * Auth Discovery: Ignore if from_service is cloed
      
      * Max's suggestion
      
      * Revert async-std usage for block_on
      
      * Address PR feedback
      
      * Fix example offchain worker build
      
      * Address PR feedback
      
      * Update Cargo.lock
      
      * Move unused methods to test helper functions
      
      * Restore accidentally deleted cargo.lock files
      
      * Fix unused imports
      
      Co-authored-by: default avatarMax Inden <[email protected]>
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      3aa4bfac
  9. Sep 23, 2020
    • Kian Paimani's avatar
      PhragMMS election. (#6685) · 313f86ec
      Kian Paimani authored
      
      
      * Revamp npos-elections and implement phragmms
      
      * Update primitives/npos-elections/src/phragmms.rs
      
      * Fix build
      
      * Some review grumbles
      
      * Add some stuff for remote testing
      
      * fix some of the grumbles.
      
      * Add remote testing stuff.
      
      * Cleanup
      
      * fix docs
      
      * Update primitives/arithmetic/src/rational.rs
      
      Co-authored-by: default avatarDan Forbes <[email protected]>
      
      * Small config change
      
      * Better handling of approval_stake == 0
      
      * Final touhces.
      
      * Clean fuzzer a bit
      
      * Clean fuzzer a bit
      
      * Update primitives/npos-elections/src/balancing.rs
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Fix fuzzer.
      
      * Better api for normalize
      
      * Add noramlize_up
      
      * A large number of small fixes.
      
      * make it merge ready
      
      * Fix warns
      
      * bump
      
      * Fix fuzzers a bit.
      
      * Fix warns as well.
      
      * Fix more tests.
      
      Co-authored-by: default avatarDan Forbes <[email protected]>
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      313f86ec
  10. Sep 22, 2020
    • Benjamin Kampmann's avatar
      Releasing 2.0 – two dot 😮 (#7182) · ecdc9442
      Benjamin Kampmann authored
      Tagging the release of substrate 2.0
      
      
      [ci: skip-checks]
      ecdc9442
    • Steve Degosserie's avatar
      Update READMEs, fix links (#7176) · 22632efc
      Steve Degosserie authored
      * Re-generate READMEs to fix doc links; set readme field in package manifests
      
      * Re-generate READMEs to fix doc links; set readme field in package manifests
      
      * Re-generate READMEs to fix doc links; set readme field in package manifests
      
      * Re-generate READMEs to fix doc links; set readme field in package manifests
      
      * Revert stuff that shouldn't have been committed
      
      * Revert stuff that shouldn't have been committed
      
      * Fix parent relative link generation
      
      * Manually remove this incorrect link for now.
      22632efc
  11. Sep 21, 2020
  12. Sep 18, 2020
  13. Sep 17, 2020
    • Wei Tang's avatar
      Use tracing-based subscriber logging (#6825) · 9fdd4672
      Wei Tang authored
      
      
      * init_logger: switch from log-based to tracing-based and add compatibility layer
      
      * Move tracing profiling subscriber related config realization
      
      * sp-tracing: change profiling to be a layer instead of a subscriber
      
      * Enable profiling layer in cli
      
      * Change all test env_logger init to sp_tracing::try_init_simple
      
      * Remove all local env_logger dependency
      
      * Add missing tracing-subscriber dependency
      
      * frame-sudo: fix tests
      
      * frame-support: fix tests
      
      * Fix frame/pallet and executor tests
      
      * Fix the remaining tests
      
      * Use subscriber's try_init as recommended by @davidbarsky
      
      * Be explict that the tracing-log feature is needed
      
      * Set subscriber writer to stderr
      
      * Shorter line width
      
      * Update cargo lock tracing version
      
      * Fix sc_tracing crate compile
      
      * Fix sc_authority_discovery crate test
      
      * unremove default-features
      
      * Leave enabled to default true
      
      * Warn if global default cannot be set
      
      * Fix unused import
      
      * Remove unused PROXY_TARGET
      
      * Change all reference from rc5 to rc6
      
      * Change all reference of rc2 to rc6
      
      * Fix styling
      
      * Fix typo
      
      * make logger init error'ing
      
      * re-fixing the test issue
      
      Co-authored-by: default avatarBenjamin Kampmann <[email protected]>
      9fdd4672
  14. Sep 14, 2020
  15. Sep 03, 2020
  16. Aug 20, 2020
    • Benjamin Kampmann's avatar
      prepping for releasing rc6 (#6922) · 2416aa79
      Benjamin Kampmann authored
      * Bump version
      
      * update test-utils crates to be ready for publishing
      
      * adding changelog
      
      * Adding automaticly generated READMEs
      
      * fixing versions
      
      * another version mishap
      2416aa79
  17. Aug 19, 2020
  18. Aug 17, 2020
  19. Aug 07, 2020
  20. Jul 30, 2020
  21. Jul 28, 2020
  22. Jul 27, 2020
  23. Jul 26, 2020
  24. Jul 22, 2020
    • Ashley's avatar
      Remove the service builder (#6557) · ffa2177d
      Ashley authored
      
      
      * :)
      
      * Slight tidy
      
      * Remove ServiceBuilderCommand
      
      * Remove whitespace
      
      * Keep task manager alive for check_block/import_blocks
      
      * Pass task_manager to run_until_exit
      
      * WIP
      
      * WIP
      
      * Get rid of the macros
      
      * Simplify a few chain components creation APIs related to the service
      
      * Fix basic-authorship doc tests
      
      * Remove DefaultQueue
      
      * Update client/service/src/builder.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Move ExecutionExtensions comment around
      
      * Remove unused BlakeTwo256
      
      * Add sc-prelude
      
      * Rename sc-prelude to sc-service-prelude
      
      * Rename to sc-service-types
      
      * Improve service types
      
      * Fix line widths
      
      * Remove sc-service-types and move type definitions to crates
      
      * Update bin/node-template/node/src/service.rs
      
      Co-authored-by: default avatarSeun Lanlege <[email protected]>
      
      * Add TLightClientWithHash
      
      * Rework types
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      Co-authored-by: default avatarSeun Lanlege <[email protected]>
      ffa2177d
  25. Jul 21, 2020
  26. Jul 09, 2020
  27. Jul 04, 2020
    • André Silva's avatar
      babe: report equivocations (#6362) · a9c21b8b
      André Silva authored
      * slots: create primitives crate for consensus slots
      
      * offences: add method to check if an offence is unknown
      
      * babe: initial equivocation reporting implementation
      
      * babe: organize imports
      
      * babe: working equivocation reporting
      
      * babe: add slot number to equivocation proof
      
      * session: move duplicate traits to session primitives
      
      * babe: move equivocation stuff to its own file
      
      * offences: fix test
      
      * session: don't have primitives depend on frame_support
      
      * babe: use opaque type for key owner proof
      
      * babe: cleanup client equivocation reporting
      
      * babe: cleanup equivocation code in pallet
      
      * babe: allow sending signed equivocation reports
      
      * node: fix compilation
      
      * fix test compilation
      
      * babe: return bool on check_equivocation_proof
      
      * babe: add test for equivocation reporting
      
      * babe: add more tests
      
      * babe: add test for validate unsigned
      
      * babe: take slot number in generate_key_ownership_proof API
      
      * babe: add benchmark for equivocation proof checking
      
      * session: add benchmark for membership proof checking
      
      * offences: fix babe benchmark
      
      * babe: add weights based on benchmark results
      
      * babe: adjust weights after benchmarking on reference hardware
      
      * babe: reorder checks in check_and_report_equivocation
      a9c21b8b
  28. Jun 25, 2020
  29. Jun 24, 2020
  30. Jun 19, 2020
  31. Jun 18, 2020
    • Rakan Alhneiti's avatar
      Babe VRF Signing in keystore (#6225) · d25f460b
      Rakan Alhneiti authored
      * Introduce trait
      
      * Implement VRFSigner in keystore
      
      * Use vrf_sign from keystore
      
      * Convert output to VRFInOut
      
      * Simplify conversion
      
      * vrf_sign secondary slot using keystore
      
      * Fix RPC call to claim_slot
      
      * Use Public instead of Pair
      
      * Check primary threshold in signer
      
      * Fix interface to return error
      
      * Move vrf_sign to BareCryptoStore
      
      * Fix authorship_works test
      
      * Fix BABE logic leaks
      
      * Acquire a read lock once
      
      * Also fix RPC acquiring the read lock once
      
      * Implement a generic way to construct VRF Transcript
      
      * Use make_transcript_data to call sr25519_vrf_sign
      
      * Make sure VRFTranscriptData is serializable
      
      * Cleanup
      
      * Move VRF to it's own module
      
      * Implement & test VRF signing in testing module
      
      * Remove leftover
      
      * Fix feature requirements
      
      * Revert removing vec macro
      
      * Drop keystore pointer to prevent deadlock
      
      * Nitpicks
      
      * Add test to make sure make_transcript works
      
      * Fix mismatch in VRF transcript
      
      * Add a test to verify transcripts match in babe
      
      * Return VRFOutput and VRFProof from keystore
      d25f460b
  32. Jun 16, 2020
    • Xiliang Chen's avatar
      add system_dryRun (#6300) · 7d30ae7b
      Xiliang Chen authored
      * add system_dryRun
      
      * fix build error
      
      * delete unneeded code
      
      * return ApplyExtrinsicResult directly
      
      * line width
      
      * mark dry run unsafe
      
      * line width
      
      * fix test
      
      * add test
      
      * update comment
      7d30ae7b