Skip to content
  1. Mar 04, 2022
    • Kian Paimani's avatar
      Trie version migration pallet (#10073) · 6cfdbe5c
      Kian Paimani authored
      
      
      * starting
      
      * Updated from other branch.
      
      * setting flag
      
      * flag in storage struct
      
      * fix flagging to access and insert.
      
      * added todo to fix
      
      * also missing serialize meta to storage proof
      
      * extract meta.
      
      * Isolate old trie layout.
      
      * failing test that requires storing in meta when old hash scheme is used.
      
      * old hash compatibility
      
      * Db migrate.
      
      * runing tests with both states when interesting.
      
      * fix chain spec test with serde default.
      
      * export state (missing trie function).
      
      * Pending using new branch, lacking genericity on layout resolution.
      
      * extract and set global meta
      
      * Update to branch 4
      
      * fix iterator with root flag (no longer insert node).
      
      * fix trie root hashing of root
      
      * complete basic backend.
      
      * Remove old_hash meta from proof that do not use inner_hashing.
      
      * fix trie test for empty (force layout on empty deltas).
      
      * Root update fix.
      
      * debug on meta
      
      * Use trie key iteration that do not include value in proofs.
      
      * switch default test ext to use inner hash.
      
      * small integration test, and fix tx cache mgmt in ext.
      test  failing
      
      * Proof scenario at state-machine level.
      
      * trace for db upgrade
      
      * try different param
      
      * act more like iter_from.
      
      * Bigger batches.
      
      * Update trie dependency.
      
      * drafting codec changes and refact
      
      * before removing unused branch no value alt hashing.
      more work todo rename all flag var to alt_hash, and remove extrinsic
      replace by storage query at every storage_root call.
      
      * alt hashing only for branch with value.
      
      * fix trie tests
      
      * Hash of value include the encoded size.
      
      * removing fields(broken)
      
      * fix trie_stream to also include value length in inner hash.
      
      * triedbmut only using alt type if inner hashing.
      
      * trie_stream to also only use alt hashing type when actually alt hashing.
      
      * Refactor meta state, logic should work with change of trie treshold.
      
      * Remove NoMeta variant.
      
      * Remove state_hashed trigger specific functions.
      
      * pending switching to using threshold, new storage root api does not
      make much sense.
      
      * refactoring to use state from backend (not possible payload changes).
      
      * Applying from previous state
      
      * Remove default from storage, genesis need a special build.
      
      * rem empty space
      
      * Catch problem: when using triedb with default: we should not revert
      nodes: otherwhise thing as trie codec cannot decode-encode without
      changing state.
      
      * fix compilation
      
      * Right logic to avoid switch on reencode when default layout.
      
      * Clean up some todos
      
      * remove trie meta from root upstream
      
      * update upstream and fix benches.
      
      * split some long lines.
      
      * UPdate trie crate to work with new design.
      
      * Finish update to refactored upstream.
      
      * update to latest triedb changes.
      
      * Clean up.
      
      * fix executor test.
      
      * rust fmt from master.
      
      * rust format.
      
      * rustfmt
      
      * fix
      
      * start host function driven versioning
      
      * update state-machine part
      
      * still need access to state version from runtime
      
      * state hash in mem: wrong
      
      * direction likely correct, but passing call to code exec for genesis
      init seem awkward.
      
      * state version serialize in runtime, wrong approach, just initialize it
      with no threshold for core api < 4 seems more proper.
      
      * stateversion from runtime version (core api >= 4).
      
      * update trie, fix tests
      
      * unused import
      
      * clean some TODOs
      
      * Require RuntimeVersionOf for executor
      
      * use RuntimeVersionOf to resolve genesis state version.
      
      * update runtime version test
      
      * fix state-machine tests
      
      * TODO
      
      * Use runtime version from storage wasm with fast sync.
      
      * rustfmt
      
      * fmt
      
      * fix test
      
      * revert useless changes.
      
      * clean some unused changes
      
      * fmt
      
      * removing useless trait function.
      
      * remove remaining reference to state_hash
      
      * fix some imports
      
      * Follow chain state version management.
      
      * trie update, fix and constant threshold for trie layouts.
      
      * update deps
      
      * Update to latest trie pr changes.
      
      * fix benches
      
      * Verify proof requires right layout.
      
      * update trie_root
      
      * Update trie deps to  latest
      
      * Update to latest trie versioning
      
      * Removing patch
      
      * update lock
      
      * extrinsic for sc-service-test using layout v0.
      
      * Adding RuntimeVersionOf to CallExecutor works.
      
      * fmt
      
      * error when resolving version and no wasm in storage.
      
      * use existing utils to instantiate runtime code.
      
      * migration pallet
      
      * Patch to delay runtime switch.
      
      * Revert "Patch to delay runtime switch."
      
      This reverts commit 67e55fee468f1a0cda853f5362b22e0d775786da.
      
      * fix test
      
      * fix child migration calls.
      
      * useless closure
      
      * remove remaining state_hash variables.
      
      * Fix and add more tests
      
      * Remove outdated comment
      
      * useless inner hash
      
      * fmt
      
      * remote tests
      
      * finally ksm works
      
      * batches are broken
      
      * clean the benchmarks
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      
      * Update frame/state-trie-migration/src/lib.rs
      
      Co-authored-by: default avatarJoshy Orndorff <[email protected]>
      
      * Update frame/state-trie-migration/src/lib.rs
      
      * brand new version
      
      * fix build
      
      * Update frame/state-trie-migration/src/lib.rs
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      
      * Update frame/state-trie-migration/src/lib.rs
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      
      * Update primitives/storage/src/lib.rs
      
      Co-authored-by: default avatarcheme <[email protected]>
      
      * Update frame/state-trie-migration/src/lib.rs
      
      Co-authored-by: default avatarcheme <[email protected]>
      
      * Update frame/state-trie-migration/src/lib.rs
      
      Co-authored-by: default avatarcheme <[email protected]>
      
      * fmt and opt-in feature to apply state change.
      
      * feature gate core version, use new test feature for node and test node
      
      * Use a 'State' api version instead of Core one.
      
      * fix merge of test function
      
      * use blake macro.
      
      * Fix state api (require declaring the api in runtime).
      
      * Opt out feature, fix macro for io to select a given version
      instead of latest.
      
      * run test nodes on new state.
      
      * fix
      
      * new test structure
      
      * new testing stuff from emeric
      
      * Add commit_all, still not working
      
      * Fix all tests
      
      * add comment
      
      * we have PoV tracking baby
      
      * document stuff, but proof size is still wrong
      
      * FUCK YEAH
      
      * a big batch of review comments
      
      * add more tests
      
      * tweak test
      
      * update config
      
      * some remote-ext stuff
      
      * delete some of the old stuff
      
      * sync more files with master to minimize the diff
      
      * Fix all tests
      
      * make signed migration a bit more relaxed
      
      * add witness check to signed submissions
      
      * allow custom migration to also go above limit
      
      * Fix these pesky tests
      
      * ==== removal of the unsigned stuff ====
      
      * Make all tests work again
      
      * separate the tests from the logic so it can be reused easier
      
      * fix overall build
      
      * Update frame/state-trie-migration/src/lib.rs
      
      Co-authored-by: default avatarcheme <[email protected]>
      
      * Update frame/state-trie-migration/src/lib.rs
      
      Co-authored-by: default avatarcheme <[email protected]>
      
      * Slightly better termination
      
      * some final tweaks
      
      * Fix tests
      
      * Restrict access to signed migrations
      
      * address most of the review comments
      
      * fix defensive
      
      * New simplified code
      
      * Fix weights
      
      * fmt
      
      * Update frame/state-trie-migration/src/lib.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * make the tests correctly fail
      
      * Fix build
      
      * Fix build
      
      * try and fix the benchmarks
      
      * fix build
      
      * Fix cargo file
      
      * Fix runtime deposit
      
      * make rustdoc happy
      
      * cargo run --quiet --profile=production  --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_state_trie_migration --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/state-trie-migration/src/weights.rs --template=./.maintain/frame-weight-template.hbs
      
      Co-authored-by: default avatarcheme <[email protected]>
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      Co-authored-by: default avatarJoshy Orndorff <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarParity Bot <[email protected]>
      6cfdbe5c
    • Sasha Gryaznov's avatar
      [contracts] Stabilize "seal0" `is_contract` and `caller_is_origin` (#10971) · ded1f770
      Sasha Gryaznov authored
      * stabilize `seal_is_contract`
      
      * stabilize `seal_caller_is_origin`
      ded1f770
    • Arkadiy Paronyan's avatar
      Deprecate "paritydb-experimental" CLI in favour or "paritydb" (#10975) · ecd75682
      Arkadiy Paronyan authored
      * Deprecate paritydb-experimental
      
      * Updated comment
      ecd75682
    • Arkadiy Paronyan's avatar
      Refactored block body database scheme (#10779) · 2bd493ff
      Arkadiy Paronyan authored
      * Refactored tx storage database scheme
      
      * Bump parity-db
      
      * fmt
      
      * Fix handling invalid index size + test
      
      * Removed superflous result
      
      * Minor changes
      
      * fmt
      2bd493ff
  2. Mar 03, 2022
  3. Mar 02, 2022
  4. Mar 01, 2022
  5. Feb 28, 2022
    • Kian Paimani's avatar
    • Roman Gafiyatullin's avatar
      #10576: generic utility to unsubscribe from broadcast upon drop of the rx-side. (#10708) · 40091488
      Roman Gafiyatullin authored
      * #10576: refactor `sc-utils::notification` and `sc-client-api::notifications`, so that they use common subscribe/unsubscribe routines
      
      * Add some docs. Reorganise `sc-utils::notification`
      
      * `sc-clent-api::notifications` and `sc-utils::notification` — ensure the SubscriptionGuard is dropped before the Rx-channel
      
      * `sc-utils::pubsub::SubscriptionGuard` make it a bit more ergonomic.
      
      Let the `Rx` to be put inside of the `SubscriptionGuard`, so that the latter shall guarantee the order:
      - first unsubscribe;
      - then drop the `Rx`.
      
      * Being less zealous with splitting the modules into little pieces
      
      * rework pubsub: the concrete usage should only define a good registry type
      
      * sc-client-api::notifications: make it comply with the reworked pubsub
      
      * cargo fmt
      
      * make sc-client-api tests work
      
      * Address the review notes
      
      * cargo fmt
      
      * Describe the behaviour of pubsub registry
      
      * Doc-comments for module `sc-utils::pubsub`
      
      * Fix: it used to send notifications regardless of the filter setup during subscription
      
      * `sc-client-api::StorageNotifications` the API does not have to require mut-self-reference.
      
      As a result `sc-service::Client` does not have to wrap its `storage_notifications` into a Mutex.
      
      * cargo fmt
      
      * Several changes addressing the notes by @bckhr.
      
      - Remove the `impl Default for StorageNotifications<Block>`;
      - no need for groupping the `remove_from` and `listen_from` into a separate `helpers` module;
      - remove unnecessary import `use registry::SubscribeOp`.
      
      * Add a doc-comment to the `sc-client::notifications::SubscribeOp`
      
      * As per @bkchr note on the unproven assertion: behave gracefully upon receiving a duplicate subscription-ID.
      
      * sc-utils::pubsub: log when a registry yields an ID that does point to an existing sink
      
      * `sc-utils::notifications`: payload materialized lazily
      
      * Update Cargo.lock (after adding `log` as a dependency to the `sc-utils`)
      
      * `sc-client-api::notifications`: introduce a struct (instead of a type def) for the notification message
      
      * Get rid of `sc-utils::pubsub::Channel` trait (instead just use the `sc-utils::mpsc`)
      
      * The SubsID is no more generic: the fact it is a `Copy` is known — no need to pass it by ref
      
      * sc-utils::pubsub internals do not have to be generic over the channel type
      
      * Rename Hub::dispatch into Hub::send
      
      * That method was unnecessary (`SubscriberSink::render_notification`)
      
      * cargo fmt
      
      * No need for a separate UnsubscribeGuard type
      
      * Ditch the type-def of SubsID in the sc-utils::pubsub, instead — just use the crate::id_sequence::SeqID
      
      * Return the <Registry as Dispatch>::Ret when sending an item
      
      * Make the `Hub<M, R>::lock_registry(...)` method more ergonomic
      
      * cargo doc links
      
      * cargo doc links
      
      * Use a simpler name for the type
      
      * cargo doc links
      
      * Derive `Default` rather than implement it
      
      * Derive `Default` rather than implement it
      
      * Remove an unnecessary usage of type_name
      
      * Define a more cautious order between sinks.remove->registry.unsubscribe and registry.subscribe->sinks.insert
      
      * Hub: lock_registry_for_tests->map_registry_for_tests — a safer choice for a public API
      
      * Replace Mutex over the shared Registry with a ReentrableMutex+RefCell
      
      * sc-utils::pubsub: add tests for a panicking registry
      
      * Add the missing copyright headers
      
      * Arc<Vec<_>> -> Arc<[_]>
      40091488
    • Ross Bulat's avatar
      doc corrections (#10936) · 89b5dafc
      Ross Bulat authored
      89b5dafc
    • omadoyeabraham's avatar
      Integrate try-runtime into substrate node template (#10909) · 05877df7
      omadoyeabraham authored
      * [10892-integrate-try-runtime-into-node-template] - Integrated try-runtime into node template
      
      * [10892-integrate-try-runtime-into-node-template] Added match arms for try-runtime in command.rs
      
      * [10892-integrate-try-runtime-into-node-template] Added match arms for try-runtime in command.rs
      
      * Added feature flag for try-runtime in node-template/node and enabled try-runtime for node-template/runtime
      
      * Added missing type annotations for try-runtime SubCommand in node-template
      
      * Added missing type annotations for try-runtime SubCommand in node-template
      
      * Implemented frame_try_runtime::TryRuntime<Block> for the node-template Runtime
      05877df7
  6. Feb 26, 2022
    • Davide Galassi's avatar
      Replace libsecp256k1 with secp256k1 (#10798) · 4aab84cc
      Davide Galassi authored
      * Replace libsecp256k1 with secp256k1
      
      * Wipe ecdsa secret key from memory on drop
      
      * Some comments for a known issue
      
      * Safer core crypto primitives `from_slice` constructor
      
      Previous version panics if slice lenght is not the expected one.
      
      * Unit test fix
      
      * Enable use of global secp256k1 context
      
      * Better comments for ecdsa `Pair` drop
      
      * Replace `libsecp256k1` with `seco256k1` in `beefy-mmr`
      
      Used to convert ecdsa public key to ETH address
      
      * Replace `libsecp256k1` with `secp256k1` in FRAME `contracts`benchmarks
      
      * Temporary rollback of `beefy-mmr` to libsecp256k1
      
      Check for detected build issues
      
      * Cargo fmt
      
      * Rollback of FRAME `contracts` benchmarks to `libsecp256k1`
      
      * Rollback for unrelated changes
      
      * Typo fix
      
      * Add comments for deprecated `ecdsa_verify` and `secp256k1_ecdsa_recover`
      4aab84cc
    • Kian Paimani's avatar
      Minor improvements to `bounded_vec` and `defensive`. (#10873) · b77d3f91
      Kian Paimani authored
      
      
      * Fix a few things in bounded_vec
      
      * add test for try_extend
      
      * Update frame/support/src/storage/bounded_vec.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * some review comments
      
      * use swap
      
      * remove clone
      
      * use pop instead of truncate
      
      * remove warn
      
      * review comments
      
      * Update frame/support/src/storage/bounded_vec.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * fix rustdoc
      
      * fix links
      
      * undo link
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      b77d3f91
  7. Feb 25, 2022
  8. Feb 24, 2022
  9. Feb 23, 2022
  10. Feb 22, 2022