Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

chore: move genesis block builder to chain-spec crate. #13427

Merged
merged 9 commits into from
Feb 28, 2023

Conversation

yjhmelody
Copy link
Contributor

@yjhmelody yjhmelody commented Feb 21, 2023

The genesis block builder is very useful. It should not be defined in sc-service.

The logic is better in sc-block-builder. And it's useful to reduce deps when import genesis block builder logic.

@bkchr
Copy link
Member

bkchr commented Feb 22, 2023

The genesis block builder is very useful. It should not be defined in sc-service.

For what else are you using it?

@yjhmelody
Copy link
Contributor Author

yjhmelody commented Feb 23, 2023

The genesis block builder is very useful. It should not be defined in sc-service.

For what else are you using it?

I need to build genesis block for checking genesis hash in local(not in cmd).

It will be helpful if chain spec have genesis hash directly. But it seems not easy, so we should just build genesis block.

@bkchr bkchr added B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders. D3-trivial 🧸 PR contains trivial changes in a runtime directory that do not require an audit A0-pleasereview labels Feb 23, 2023
@bkchr bkchr requested a review from a team February 23, 2023 09:44
state.finish().to_le_bytes().to_vec()
},
};
let runtime_version = RuntimeVersionOf::runtime_version(executor, &mut ext, &runtime_code)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you considered using ReadRuntimeVersion trait + a manual decode instead? I think that could probably work? And it wouldn't require all of the fiddling with WrappedRuntimeCode and RuntimeCode.

Copy link
Member

@bkchr bkchr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just realized that I wanted to have it put into some different crate. I think sc-chain-spec is better suited for this. Block builder is not really related to what you are doing here.

@yjhmelody
Copy link
Contributor Author

yjhmelody commented Feb 24, 2023

Hi @bkchr I found some inconsistecy about state version here:

  • Genesis block always use V0 to construct tx. Should it be config?
  • Genesis block in test-utils use V1 to construct trie. But use V0 to construct tx.
  • For new chain, should we always use V1?

@yjhmelody
Copy link
Contributor Author

I just realized that I wanted to have it put into some different crate. I think sc-chain-spec is better suited for this. Block builder is not really related to what you are doing here.

It is done.

@yjhmelody yjhmelody changed the title chore: move genesis block builder to block builder crate. chore: move genesis block builder to chain-spec crate. Feb 24, 2023
Copy link
Member

@bkchr bkchr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ty!

client/chain-spec/src/genesis.rs Outdated Show resolved Hide resolved
test-utils/runtime/client/src/lib.rs Outdated Show resolved Hide resolved
test-utils/runtime/src/genesismap.rs Outdated Show resolved Hide resolved
@bkchr
Copy link
Member

bkchr commented Feb 24, 2023

  • Genesis block always use V0 to construct tx. Should it be config?

Ty for fixing this! This was an oversight!

yjhmelody and others added 2 commits February 24, 2023 23:10
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Bastian Köcher <git@kchr.de>
@yjhmelody
Copy link
Contributor Author

  • Genesis block always use V0 to construct tx. Should it be config?

Ty for fixing this! This was an oversight!

Fine, Could you edit the PR title for this fix.

Copy link
Contributor

@melekes melekes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@bkchr
Copy link
Member

bkchr commented Feb 25, 2023

@yjhmelody could you please fix the warnings?

@bkchr
Copy link
Member

bkchr commented Feb 27, 2023

The CI pipeline was cancelled due to failure one of the required jobs. Job name: test-linux-stable-int Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2450835

@yjhmelody still the same warning as before.

@yjhmelody
Copy link
Contributor Author

Now it's ready @bkchr

@bkchr bkchr merged commit ad53996 into paritytech:master Feb 28, 2023
@bkchr
Copy link
Member

bkchr commented Feb 28, 2023

TY @yjhmelody

gpestana pushed a commit that referenced this pull request Mar 1, 2023
* chore: move genesis block builder to block builder crate.

* add missing file

* chore: move genesis block builder to sc-chain-spec

* Update client/chain-spec/src/genesis.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update test-utils/runtime/src/genesismap.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update test-utils/runtime/client/src/lib.rs

* fix warnings

* fix warnings

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
@nazar-pc nazar-pc mentioned this pull request Apr 2, 2023
1 task
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 3, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 3, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 3, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 4, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 4, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 5, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
ukint-vs pushed a commit to gear-tech/substrate that referenced this pull request Apr 10, 2023
)

* chore: move genesis block builder to block builder crate.

* add missing file

* chore: move genesis block builder to sc-chain-spec

* Update client/chain-spec/src/genesis.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update test-utils/runtime/src/genesismap.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update test-utils/runtime/client/src/lib.rs

* fix warnings

* fix warnings

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 13, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 20, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 21, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 25, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request Apr 28, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request May 1, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
atodorov added a commit to gluwa/creditcoin that referenced this pull request May 4, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
nathanwhit pushed a commit to gluwa/creditcoin that referenced this pull request Jun 7, 2023
- Use of `#[pallet::generate_store(pub(super) trait Store)]` will be removed soon,
  paritytech/substrate#13535

- Update return values and arguments, b/c syncing protocol was extracted from
  sc-network. See paritytech/substrate#12828

- Update call to construct_genesis_block(), see
  paritytech/substrate#13427

- Use of deprecated associated function
  `frame_support::dispatch::Weight::from_ref_time`: Will be removed soon; use
  `from_parts` instead.
nathanwhit pushed a commit to nathanwhit/substrate that referenced this pull request Jul 19, 2023
)

* chore: move genesis block builder to block builder crate.

* add missing file

* chore: move genesis block builder to sc-chain-spec

* Update client/chain-spec/src/genesis.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update test-utils/runtime/src/genesismap.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update test-utils/runtime/client/src/lib.rs

* fix warnings

* fix warnings

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
paritytech-processbot bot pushed a commit that referenced this pull request Aug 10, 2023
* Implements dynamic nominations per nominator

* Adds SnapshotBounds and ElectionSizeTracker

* Changes the ElectionDataProvider interface to receive ElectionBounds as input

* Implements get_npos_voters with ElectionBounds

* Implements get_npos_targets with ElectionBounds

* Adds comments

* tests

* Truncates nomninations that exceed nominations quota; Old tests passing

* Uses DataProviderBounds and ElectionBounds (to continue)

* Finishes conversions - tests passing

* Refactor staking in babe mocks

* Replaces MaxElectableTargets and MaxElectingVoters with ElectionBounds; Adds more tests

* Fixes nits; node compiling

* bechmarks

* removes nomination_quota extrinsic to request the nomination quota

* Lazy quota check, ie. at nominate time only

* remove non-working test (for now)

* tests lazy nominations quota when quota is lower than current number of nominated targets

* Adds runtime API and custom RPC call for clients to query the nominations quota for a given balance

* removes old rpc

* Cosmetic touches

* All mocks working

* Fixes benchmarking mocks

* nits

* more tests

* renames trait methods

* nit

* ".git/.scripts/commands/fmt/fmt.sh"

* Fix V2 PoV benchmarking (#13485)

* Bump default 'additional_trie_layers' to two

The default here only works for extremely small runtimes, which have
no more than 16 storage prefices. This is changed to a "sane" default
of 2, which is save for runtimes with up to 4096 storage prefices (eg StorageValue).

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update tests and test weights

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix PoV weights

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_balances

* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_message_queue

* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_glutton

* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_glutton

* Fix sanity check

>0 would also do as a check, but let's try this.

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: command-bot <>

* Move BEEFY code to consensus (#13484)

* Move beefy primitives to consensus dir
* Move beefy gadget to client consensus folder
* Rename beefy crates

* chore: move genesis block builder to chain-spec crate. (#13427)

* chore: move genesis block builder to block builder crate.

* add missing file

* chore: move genesis block builder to sc-chain-spec

* Update client/chain-spec/src/genesis.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update test-utils/runtime/src/genesismap.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update test-utils/runtime/client/src/lib.rs

* fix warnings

* fix warnings

---------

Co-authored-by: Bastian Köcher <git@kchr.de>

* Speed up storage iteration from within the runtime (#13479)

* Speed up storage iteration from within the runtime

* Move the cached iterator into an `Option`

* Use `RefCell` in no_std

* Simplify the code slightly

* Use `Option::replace`

* Update doc comment for `next_storage_key_slow`

* Make unbounded channels size warning exact (part 1) (#13490)

* Replace `futures-channel` with `async-channel` in `out_events`

* Apply suggestions from code review

Co-authored-by: Koute <koute@users.noreply.github.com>

* Also print the backtrace of `send()` call

* Switch from `backtrace` crate to `std::backtrace`

* Remove outdated `backtrace` dependency

* Remove `backtrace` from `Cargo.lock`

---------

Co-authored-by: Koute <koute@users.noreply.github.com>

* Removal of Prometheus alerting rules deployment in cloud-infra (#13499)

* sp-consensus: remove unused error variants (#13495)

* Expose `ChargedAmount` (#13488)

* Expose `ChargedAmount`

* Fix imports

* sc-consensus-beefy: fix metrics: use correct names (#13494)


Signed-off-by: acatangiu <adrian@parity.io>

* clippy fix

* removes NominationsQuotaExceeded event

* Update frame/staking/src/lib.rs

Co-authored-by: Ross Bulat <ross@parity.io>

* adds back the npos_max_iter

* remove duplicate imports added after merge

* fmt

* Adds comment in public struct; Refactors CountBound and SizeCount to struct

* addresses various pr comments

* PR comment reviews

* Fixes on-chain election bounds and related code

* EPM checks the size of the voter list returned by the data provider

* cosmetic changes

* updates e2e tests mock

* Adds more tests for size tracker and refactors code

* Adds back only_iterates_max_2_times_max_allowed_len test

* Refactor

* removes unecessary dependency

* empty commit -- restart all stuck CI jobs

* restarts ci jobs

* Renames ElectionBounds -> Bounds in benchmarking mocks et al

* updates mocks

* Update frame/election-provider-support/src/lib.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/staking/src/pallet/impls.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/election-provider-support/src/lib.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/staking/src/tests.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* more checks in api_nominations_quota in tests

* Improves docs

* fixes e2e tests

* Uses size_hint rather than mem::size_of in size tracker; Refactor size tracker to own module

* nits from reviews

* Refactors bounds to own module; improves docs

* More tests and docs

* fixes docs

* Fixes benchmarks

* Fixes rust docs

* fixes bags-list remote-ext-tests

* Simplify bound checks in create_snapshot_external

* Adds target size check in get_npos_targets

* ".git/.scripts/commands/fmt/fmt.sh"

* restart ci

* rust doc fixes and cosmetic nits

* rollback upgrade on parity-scale-codec version (unecessary)

* reset cargo lock, no need to update it

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Signed-off-by: acatangiu <adrian@parity.io>
Co-authored-by: command-bot <>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: yjh <yjh465402634@gmail.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Koute <koute@users.noreply.github.com>
Co-authored-by: Dmitry Markin <dmitry@markin.tech>
Co-authored-by: Anthony Lazam <lazam@users.noreply.github.com>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
Co-authored-by: Piotr Mikołajczyk <piomiko41@gmail.com>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: Ross Bulat <ross@parity.io>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders. D3-trivial 🧸 PR contains trivial changes in a runtime directory that do not require an audit
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants