rebrand: kusama → dicle
- Replace all kusama/Kusama references with dicle/Dicle - Rename weight files from ksm_size to dcl_size - Update papi-tests files from ksm to dcl - Remove chain-specs/kusama.json files - cargo check --workspace successful (Finished output) - Update MAINNET_ROADMAP.md: FAZ 8 completed
This commit is contained in:
@@ -16,8 +16,8 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
/// Kusama value size distribution
|
||||
pub const KUSAMA_STATE_DISTRIBUTION: &[(u32, u32)] = &[
|
||||
/// Dicle value size distribution
|
||||
pub const DICLE_STATE_DISTRIBUTION: &[(u32, u32)] = &[
|
||||
(32, 35),
|
||||
(33, 20035),
|
||||
(34, 5369),
|
||||
|
||||
@@ -60,8 +60,8 @@ pub enum DatabaseSize {
|
||||
Huge,
|
||||
}
|
||||
|
||||
static KUSAMA_STATE_DISTRIBUTION: LazyLock<SizePool> =
|
||||
LazyLock::new(|| SizePool::from_histogram(crate::state_sizes::KUSAMA_STATE_DISTRIBUTION));
|
||||
static DICLE_STATE_DISTRIBUTION: LazyLock<SizePool> =
|
||||
LazyLock::new(|| SizePool::from_histogram(crate::state_sizes::DICLE_STATE_DISTRIBUTION));
|
||||
|
||||
impl DatabaseSize {
|
||||
/// Should be multiple of SAMPLE_SIZE!
|
||||
@@ -116,7 +116,7 @@ impl core::BenchmarkDescription for TrieReadBenchmarkDescription {
|
||||
let mut database = TempDatabase::new();
|
||||
|
||||
let mut rng = rand::thread_rng();
|
||||
let warmup_prefix = KUSAMA_STATE_DISTRIBUTION.key(&mut rng);
|
||||
let warmup_prefix = DICLE_STATE_DISTRIBUTION.key(&mut rng);
|
||||
|
||||
let mut key_values = KeyValues::new();
|
||||
let mut warmup_keys = KeyValues::new();
|
||||
@@ -124,8 +124,8 @@ impl core::BenchmarkDescription for TrieReadBenchmarkDescription {
|
||||
let every_x_key = self.database_size.keys() / SAMPLE_SIZE;
|
||||
for idx in 0..self.database_size.keys() {
|
||||
let kv = (
|
||||
KUSAMA_STATE_DISTRIBUTION.key(&mut rng).to_vec(),
|
||||
KUSAMA_STATE_DISTRIBUTION.value(&mut rng),
|
||||
DICLE_STATE_DISTRIBUTION.key(&mut rng).to_vec(),
|
||||
DICLE_STATE_DISTRIBUTION.value(&mut rng),
|
||||
);
|
||||
if idx % every_x_key == 0 {
|
||||
// warmup keys go to separate tree with high prob
|
||||
@@ -226,15 +226,15 @@ impl core::BenchmarkDescription for TrieWriteBenchmarkDescription {
|
||||
let mut database = TempDatabase::new();
|
||||
|
||||
let mut rng = rand::thread_rng();
|
||||
let warmup_prefix = KUSAMA_STATE_DISTRIBUTION.key(&mut rng);
|
||||
let warmup_prefix = DICLE_STATE_DISTRIBUTION.key(&mut rng);
|
||||
|
||||
let mut key_values = KeyValues::new();
|
||||
let mut warmup_keys = KeyValues::new();
|
||||
let every_x_key = self.database_size.keys() / SAMPLE_SIZE;
|
||||
for idx in 0..self.database_size.keys() {
|
||||
let kv = (
|
||||
KUSAMA_STATE_DISTRIBUTION.key(&mut rng).to_vec(),
|
||||
KUSAMA_STATE_DISTRIBUTION.value(&mut rng),
|
||||
DICLE_STATE_DISTRIBUTION.key(&mut rng).to_vec(),
|
||||
DICLE_STATE_DISTRIBUTION.value(&mut rng),
|
||||
);
|
||||
if idx % every_x_key == 0 {
|
||||
// warmup keys go to separate tree with high prob
|
||||
|
||||
@@ -49,6 +49,9 @@ name = "executor"
|
||||
harness = false
|
||||
|
||||
[dependencies]
|
||||
# Umbrella crate for re-exports
|
||||
pezkuwi-sdk = { workspace = true, default-features = true, features = ["node", "runtime"] }
|
||||
|
||||
# third-party dependencies
|
||||
array-bytes = { workspace = true, default-features = true }
|
||||
clap = { features = ["derive"], optional = true, workspace = true }
|
||||
@@ -192,15 +195,25 @@ pez-node-testing = { workspace = true }
|
||||
pezsc-service-test = { workspace = true }
|
||||
|
||||
[build-dependencies]
|
||||
bizinikiwi-build-script-utils = { workspace = true, default-features = true }
|
||||
clap = { optional = true, workspace = true }
|
||||
clap_complete = { optional = true, workspace = true }
|
||||
|
||||
node-inspect = { optional = true, workspace = true, default-features = true }
|
||||
pezframe-benchmarking-cli = { optional = true, workspace = true }
|
||||
pezsc-cli = { optional = true, workspace = true, default-features = true }
|
||||
pezsc-storage-monitor = { optional = true, workspace = true, default-features = true }
|
||||
|
||||
# Build dependencies use dep: syntax for optional dependencies
|
||||
[features]
|
||||
default = ["cli"]
|
||||
cli = ["clap", "clap_complete", "dep:node-inspect"]
|
||||
cli = [
|
||||
"clap",
|
||||
"clap_complete",
|
||||
"dep:node-inspect",
|
||||
"dep:pezframe-benchmarking-cli",
|
||||
"dep:pezsc-cli",
|
||||
"dep:pezsc-storage-monitor",
|
||||
]
|
||||
runtime-benchmarks = [
|
||||
"bizinikiwi-cli-test-utils/runtime-benchmarks",
|
||||
"bizinikiwi-frame-rpc-support/runtime-benchmarks",
|
||||
|
||||
@@ -27,9 +27,7 @@ mod cli {
|
||||
|
||||
use clap::{CommandFactory, ValueEnum};
|
||||
use clap_complete::{generate_to, Shell};
|
||||
use pezkuwi_sdk::bizinikiwi_build_script_utils::{
|
||||
generate_cargo_keys, rerun_if_git_head_changed,
|
||||
};
|
||||
use bizinikiwi_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed};
|
||||
use std::{env, fs, path::Path};
|
||||
|
||||
pub fn main() {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
use pezkuwi_sdk::*;
|
||||
|
||||
use crate::chain_spec::pezsc_service::Properties;
|
||||
use pezsc_service::Properties;
|
||||
use pez_kitchensink_runtime::{
|
||||
genesis_config_presets::{Staker, ENDOWMENT, STASH},
|
||||
wasm_binary_unwrap, Block, MaxNominations, StakerStatus,
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
use pezkuwi_sdk::*;
|
||||
|
||||
/// An overarching CLI command definition.
|
||||
#[derive(Debug, clap::Parser)]
|
||||
pub struct Cli {
|
||||
|
||||
@@ -33,7 +33,7 @@ use pez_kitchensink_runtime::RuntimeApi;
|
||||
use pez_node_primitives::Block;
|
||||
use pezframe_benchmarking_cli::BIZINIKIWI_REFERENCE_HARDWARE;
|
||||
use pezframe_system_rpc_runtime_api::AccountNonceApi;
|
||||
use pezkuwi_sdk::{pezsp_api::ProvideRuntimeApi, pezsp_core::crypto::Pair};
|
||||
use pezkuwi_sdk::{pezsp_api::ProvideRuntimeApi, pezsp_core::Pair};
|
||||
use pezsc_client_api::{Backend, BlockBackend};
|
||||
use pezsc_consensus_babe::{self, SlotProportion};
|
||||
use pezsc_network::{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "pez-subkey"
|
||||
version = "9.0.0"
|
||||
authors.workspace = true
|
||||
description = "Generate and restore keys for Bizinikiwi based chains such as Pezkuwi, Kusama and a growing number of teyrchains and Bizinikiwi based projects."
|
||||
description = "Generate and restore keys for Bizinikiwi based chains such as Pezkuwi, Dicle and a growing number of teyrchains and Bizinikiwi based projects."
|
||||
edition.workspace = true
|
||||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
|
||||
homepage.workspace = true
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Subkey
|
||||
|
||||
Subkey is a commandline utility included with Bizinikiwi. It allows generating and restoring keys for Bizinikiwi based
|
||||
chains such as PezkuwiChain, Kusama and a growing number of teyrchains and Bizinikiwi based projects.
|
||||
chains such as PezkuwiChain, Dicle and a growing number of teyrchains and Bizinikiwi based projects.
|
||||
|
||||
`pez_subkey` provides a few sub-commands to generate keys, check keys, sign messages, verify messages, etc...
|
||||
|
||||
@@ -78,7 +78,7 @@ The output above also shows the **public key** and the **Account ID**. Those are
|
||||
you will use the key.
|
||||
|
||||
The **SS58 address** (or **Public Address**) of a new account is a representation of the public keys of an account for
|
||||
a given network (for instance Kusama or PezkuwiChain).
|
||||
a given network (for instance Dicle or PezkuwiChain).
|
||||
|
||||
You can read more about the [SS58 format in the Bizinikiwi Docs](https://docs.pezkuwichain.io/reference/address-formats/) and see the list of reserved prefixes in the [SS58 Registry](https://docs.pezkuwichain.io/ss58-registry).
|
||||
|
||||
@@ -86,7 +86,7 @@ For instance, considering the previous seed `0xa05c75731970cc7868a2fb7cb577353cd
|
||||
SS58 addresses are:
|
||||
|
||||
- PezkuwiChain: `16m4J167Mptt8UXL8aGSAi7U2FnPpPxZHPrCgMG9KJzVoFqM`
|
||||
- Kusama: `JLNozAv8QeLSbLFwe2UvWeKKE4yvmDbfGxTuiYkF2BUMx4M`
|
||||
- Dicle: `JLNozAv8QeLSbLFwe2UvWeKKE4yvmDbfGxTuiYkF2BUMx4M`
|
||||
|
||||
### Json output
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
//! # Subkey
|
||||
//!
|
||||
//! Subkey is a commandline utility included with Bizinikiwi. It allows generating and restoring
|
||||
//! keys for Bizinikiwi based chains such as Pezkuwi, Kusama and a growing number of teyrchains and
|
||||
//! keys for Bizinikiwi based chains such as Pezkuwi, Dicle and a growing number of teyrchains and
|
||||
//! Bizinikiwi based projects.
|
||||
|
||||
//! `pez_subkey` provides a few sub-commands to generate keys, check keys, sign messages, verify
|
||||
@@ -98,7 +98,7 @@
|
||||
//! from the network where you will use the key.
|
||||
//!
|
||||
//! The **SS58 address** (or **Public Address**) of a new account is a representation of the public
|
||||
//! keys of an account for a given network (for instance Kusama or Pezkuwi).
|
||||
//! keys of an account for a given network (for instance Dicle or Pezkuwi).
|
||||
//!
|
||||
//! You can read more about the [SS58 format in the Bizinikiwi Docs](https://docs.pezkuwichain.io/reference/address-formats/) and see the list of reserved prefixes in the [SS58 Registry](https://docs.pezkuwichain.io/ss58-registry).
|
||||
//!
|
||||
@@ -106,7 +106,7 @@
|
||||
//! `0xa05c75731970cc7868a2fb7cb577353cd5b31f62dccced92c441acd8fee0c92d` the SS58 addresses are:
|
||||
//!
|
||||
//! - Pezkuwi: `16m4J167Mptt8UXL8aGSAi7U2FnPpPxZHPrCgMG9KJzVoFqM`
|
||||
//! - Kusama: `JLNozAv8QeLSbLFwe2UvWeKKE4yvmDbfGxTuiYkF2BUMx4M`
|
||||
//! - Dicle: `JLNozAv8QeLSbLFwe2UvWeKKE4yvmDbfGxTuiYkF2BUMx4M`
|
||||
//!
|
||||
//! ### Json output
|
||||
//!
|
||||
|
||||
@@ -108,7 +108,7 @@ impl Default for WorkerConfig {
|
||||
// interval on which to trigger new queries for the current and next authorities is a
|
||||
// trade off between efficiency and performance.
|
||||
//
|
||||
// Querying 700 [`AuthorityId`]s takes ~8m on the Kusama DHT (16th Nov 2020) when
|
||||
// Querying 700 [`AuthorityId`]s takes ~8m on the Dicle DHT (16th Nov 2020) when
|
||||
// comparing `authority_discovery_authority_addresses_requested_total` and
|
||||
// `authority_discovery_dht_event_received`.
|
||||
max_query_interval: Duration::from_secs(10 * 60),
|
||||
|
||||
@@ -54,7 +54,7 @@ pub struct GenerateNodeKeyCmd {
|
||||
pub common: GenerateKeyCmdCommon,
|
||||
/// Specify the chain specification.
|
||||
///
|
||||
/// It can be any of the predefined chains like dev, local, staging, pezkuwi, kusama.
|
||||
/// It can be any of the predefined chains like dev, local, staging, pezkuwi, dicle.
|
||||
#[arg(long, value_name = "CHAIN_SPEC")]
|
||||
pub chain: Option<String>,
|
||||
/// A directory where the key should be saved. If a key already
|
||||
|
||||
@@ -718,7 +718,7 @@ pub fn grandpa_peers_set_config<B: BlockT, N: NetworkBackend<B, <B as BlockT>::H
|
||||
N::notification_config(
|
||||
protocol_name,
|
||||
grandpa_protocol_name::LEGACY_NAMES.iter().map(|&n| n.into()).collect(),
|
||||
// Notifications reach ~256kiB in size at the time of writing on Kusama and Pezkuwi.
|
||||
// Notifications reach ~256kiB in size at the time of writing on Dicle and Pezkuwi.
|
||||
1024 * 1024,
|
||||
None,
|
||||
pezsc_network::config::SetConfig {
|
||||
|
||||
@@ -36,11 +36,11 @@ enum Method {
|
||||
Compiled { instantiation_strategy: InstantiationStrategy, precompile: bool },
|
||||
}
|
||||
|
||||
// This is just a bog-standard Kusama runtime with an extra
|
||||
// This is just a bog-standard Dicle runtime with an extra
|
||||
// `test_empty_return` and `test_dirty_plenty_memory` functions
|
||||
// copy-pasted from the test runtime.
|
||||
fn kusama_runtime() -> &'static [u8] {
|
||||
include_bytes!("kusama_runtime.wasm")
|
||||
fn dicle_runtime() -> &'static [u8] {
|
||||
include_bytes!("dicle_runtime.wasm")
|
||||
}
|
||||
|
||||
fn initialize(
|
||||
@@ -204,7 +204,7 @@ fn bench_call_instance(c: &mut Criterion) {
|
||||
),
|
||||
];
|
||||
|
||||
let runtimes = [("kusama_runtime", kusama_runtime()), ("test_runtime", test_runtime())];
|
||||
let runtimes = [("dicle_runtime", dicle_runtime()), ("test_runtime", test_runtime())];
|
||||
|
||||
let thread_counts = [1, 2, 4, 8, 16];
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@ fn common_config(semantics: &Semantics) -> std::result::Result<wasmtime::Config,
|
||||
// Pooling needs a bunch of hard limits to be set; if we go over
|
||||
// any of these then the instantiation will fail.
|
||||
//
|
||||
// Current minimum values for kusama (as of 2022-04-14):
|
||||
// Current minimum values for dicle (as of 2022-04-14):
|
||||
// size: 32384
|
||||
// table_elements: 1249
|
||||
// memory_pages: 2070
|
||||
|
||||
@@ -29,8 +29,8 @@ use prometheus_endpoint::{register, Counter, PrometheusError, Registry, U64};
|
||||
use std::{collections::HashMap, iter, sync::Arc, time, time::Instant};
|
||||
|
||||
// FIXME: Add additional spam/DoS attack protection: https://github.com/pezkuwichain/pezkuwi-sdk/issues/7
|
||||
// NOTE: The current value is adjusted based on largest production network deployment (Kusama) and
|
||||
// the current main gossip user (GRANDPA). Currently there are ~800 validators on Kusama, as such,
|
||||
// NOTE: The current value is adjusted based on largest production network deployment (Dicle) and
|
||||
// the current main gossip user (GRANDPA). Currently there are ~800 validators on Dicle, as such,
|
||||
// each GRANDPA round should generate ~1600 messages, and we currently keep track of the last 2
|
||||
// completed rounds and the current live one. That makes it so that at any point we will be holding
|
||||
// ~4800 live messages.
|
||||
|
||||
@@ -148,7 +148,7 @@ pub trait StateApi<Hash> {
|
||||
/// interpretation of the traces requires an understanding of the Bizinikiwi chain's block
|
||||
/// execution.
|
||||
///
|
||||
/// [Link to conceptual map of trace structure for Pezkuwi and Kusama block execution.][2]
|
||||
/// [Link to conceptual map of trace structure for Pezkuwi and Dicle block execution.][2]
|
||||
///
|
||||
/// [1]: https://crates.io/crates/tracing
|
||||
/// [2]: https://docs.google.com/drawings/d/1vZoJo9jaXlz0LmrdTOgHck9_1LsfuQPRmTr-5g1tOis/edit?usp=sharing
|
||||
@@ -263,7 +263,7 @@ pub trait StateApi<Hash> {
|
||||
/// will be filtered by storage key (so non-storage events will **not** show up).
|
||||
/// You can specify any length of a storage key prefix (i.e. if a specified storage
|
||||
/// key is in the beginning of an events storage key it is considered a match).
|
||||
/// Example: for balance tracking on Pezkuwi & Kusama you would likely want
|
||||
/// Example: for balance tracking on Pezkuwi & Dicle you would likely want
|
||||
/// to track changes to account balances with the pezframe_system::Account storage item,
|
||||
/// which is a map from `AccountId` to `AccountInfo`. The key filter for this would be
|
||||
/// the storage prefix for the map:
|
||||
|
||||
@@ -70,7 +70,7 @@ pub fn display_and_check_bags<Runtime: RuntimeT<Instance1>>(
|
||||
.try_into()
|
||||
.map_err(|_| "runtime must configure score to at most u64 to use this test")
|
||||
.unwrap();
|
||||
// threshold in terms of UNITS (e.g. KSM, HEZ etc)
|
||||
// threshold in terms of UNITS (e.g. DCL, HEZ etc)
|
||||
let vote_weight_thresh_as_unit = vote_weight_thresh_u64 as f64 / currency_unit as f64;
|
||||
let pretty_thresh = format!("Threshold: {}. {}", vote_weight_thresh_as_unit, currency_name);
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ use pezsp_runtime::{traits::Block as BlockT, DeserializeOwned};
|
||||
use remote_externalities::{Builder, Mode, OnlineConfig};
|
||||
|
||||
/// Test voter bags migration. `currency_unit` is the number of planks per the the runtimes `UNITS`
|
||||
/// (i.e. number of decimal places per HEZ, KSM etc)
|
||||
/// (i.e. number of decimal places per HEZ, DCL etc)
|
||||
pub async fn execute<Runtime, Block>(
|
||||
currency_unit: u64,
|
||||
currency_name: &'static str,
|
||||
|
||||
@@ -171,7 +171,7 @@ pub trait MinerConfig {
|
||||
///
|
||||
/// Must be the same as configured in the [`crate::Config::DataProvider`].
|
||||
///
|
||||
/// For simplicity, this is 16 in Pezkuwi and 24 in Kusama.
|
||||
/// For simplicity, this is 16 in Pezkuwi and 24 in Dicle.
|
||||
type MaxVotesPerVoter: Get<u32>;
|
||||
/// Maximum number of winners to select per page.
|
||||
///
|
||||
|
||||
@@ -22,10 +22,10 @@ mod pezpallet_election_provider_multi_block_signed_hez_size;
|
||||
mod pezpallet_election_provider_multi_block_unsigned_hez_size;
|
||||
mod pezpallet_election_provider_multi_block_verifier_hez_size;
|
||||
|
||||
mod pezpallet_election_provider_multi_block_ksm_size;
|
||||
mod pezpallet_election_provider_multi_block_signed_ksm_size;
|
||||
mod pezpallet_election_provider_multi_block_unsigned_ksm_size;
|
||||
mod pezpallet_election_provider_multi_block_verifier_ksm_size;
|
||||
mod pezpallet_election_provider_multi_block_dcl_size;
|
||||
mod pezpallet_election_provider_multi_block_signed_dcl_size;
|
||||
mod pezpallet_election_provider_multi_block_unsigned_dcl_size;
|
||||
mod pezpallet_election_provider_multi_block_verifier_dcl_size;
|
||||
|
||||
use pezframe_support::pezpallet_prelude::Weight;
|
||||
|
||||
@@ -168,13 +168,13 @@ pub mod traits {
|
||||
}
|
||||
}
|
||||
|
||||
/// Kusama-esque weights only be used in testing runtimes.
|
||||
pub mod kusama {
|
||||
/// Dicle-esque weights only be used in testing runtimes.
|
||||
pub mod dicle {
|
||||
pub use super::{
|
||||
pezpallet_election_provider_multi_block_ksm_size::WeightInfo as MultiBlockWeightInfo,
|
||||
pezpallet_election_provider_multi_block_signed_ksm_size::WeightInfo as MultiBlockSignedWeightInfo,
|
||||
pezpallet_election_provider_multi_block_unsigned_ksm_size::WeightInfo as MultiBlockUnsignedWeightInfo,
|
||||
pezpallet_election_provider_multi_block_verifier_ksm_size::WeightInfo as MultiBlockVerifierWeightInfo,
|
||||
pezpallet_election_provider_multi_block_dcl_size::WeightInfo as MultiBlockWeightInfo,
|
||||
pezpallet_election_provider_multi_block_signed_dcl_size::WeightInfo as MultiBlockSignedWeightInfo,
|
||||
pezpallet_election_provider_multi_block_unsigned_dcl_size::WeightInfo as MultiBlockUnsignedWeightInfo,
|
||||
pezpallet_election_provider_multi_block_verifier_dcl_size::WeightInfo as MultiBlockVerifierWeightInfo,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -43,13 +43,13 @@
|
||||
// --repeat
|
||||
// 5
|
||||
// --genesis-builder-preset
|
||||
// fake-ksm
|
||||
// fake-dcl
|
||||
// --template
|
||||
// ../../../../../bizinikiwi/pezframe/election-provider-multi-block/src/template.hbs
|
||||
// --heap-pages
|
||||
// 65000
|
||||
// --output
|
||||
// ./pezpallet_election_provider_multi_block_fake-ksm.rs
|
||||
// ./pezpallet_election_provider_multi_block_fake-dcl.rs
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
+2
-2
@@ -43,13 +43,13 @@
|
||||
// --repeat
|
||||
// 5
|
||||
// --genesis-builder-preset
|
||||
// fake-ksm
|
||||
// fake-dcl
|
||||
// --template
|
||||
// ../../../../../bizinikiwi/pezframe/election-provider-multi-block/src/template.hbs
|
||||
// --heap-pages
|
||||
// 65000
|
||||
// --output
|
||||
// ./pezpallet_election_provider_multi_block_signed_fake-ksm.rs
|
||||
// ./pezpallet_election_provider_multi_block_signed_fake-dcl.rs
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
+2
-2
@@ -43,14 +43,14 @@
|
||||
// --repeat
|
||||
// 3
|
||||
// --genesis-builder-preset
|
||||
// fake-ksm
|
||||
// fake-dcl
|
||||
// --template
|
||||
// ../../../../../bizinikiwi/pezframe/election-provider-multi-block/src/template.hbs
|
||||
// --heap-pages
|
||||
// 65000
|
||||
// --extra
|
||||
// --output
|
||||
// ./pezpallet_election_provider_multi_block_unsigned_fake-ksm.rs
|
||||
// ./pezpallet_election_provider_multi_block_unsigned_fake-dcl.rs
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
+2
-2
@@ -43,13 +43,13 @@
|
||||
// --repeat
|
||||
// 5
|
||||
// --genesis-builder-preset
|
||||
// fake-ksm
|
||||
// fake-dcl
|
||||
// --template
|
||||
// ../../../../../bizinikiwi/pezframe/election-provider-multi-block/src/template.hbs
|
||||
// --heap-pages
|
||||
// 65000
|
||||
// --output
|
||||
// ./pezpallet_election_provider_multi_block_verifier_fake-ksm.rs
|
||||
// ./pezpallet_election_provider_multi_block_verifier_fake-dcl.rs
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
@@ -15,7 +15,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! Remote mining tests for Kusama and Pezkuwi.
|
||||
//! Remote mining tests for Dicle and Pezkuwi.
|
||||
//!
|
||||
//! Run like this:
|
||||
//!
|
||||
@@ -84,7 +84,7 @@ pub mod pezkuwi {
|
||||
}
|
||||
}
|
||||
|
||||
pub mod kusama {
|
||||
pub mod dicle {
|
||||
use super::*;
|
||||
pub struct MinerConfig;
|
||||
|
||||
@@ -235,13 +235,13 @@ async fn mine_for_pezkuwi() {
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn mine_for_kusama() {
|
||||
async fn mine_for_dicle() {
|
||||
pezsp_tracing::try_init_simple();
|
||||
|
||||
// good way to find good block hashes: https://kusama.subscan.io/event?page=1&time_dimension=date&module=electionprovidermultiphase&event_id=solutionstored
|
||||
// good way to find good block hashes: https://dicle.subscan.io/event?page=1&time_dimension=date&module=electionprovidermultiphase&event_id=solutionstored
|
||||
// we are just looking for blocks with snapshot present, that's all.
|
||||
let block_hash_str = std::option_env!("BLOCK_HASH")
|
||||
// known good kusama hash
|
||||
// known good dicle hash
|
||||
.unwrap_or("d5d9f5e098fcb41915c85e6695eddc18c0bc4aa4976ad0d9bf5f4713039bca26")
|
||||
.to_string();
|
||||
let block_hash = H256::from_slice(hex::decode(block_hash_str).unwrap().as_ref());
|
||||
@@ -260,6 +260,6 @@ async fn mine_for_kusama() {
|
||||
.await
|
||||
.unwrap()
|
||||
.execute_with(|| {
|
||||
test_for_network::<kusama::MinerConfig>();
|
||||
test_for_network::<dicle::MinerConfig>();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@ fn offchainify_works() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
/// Inspired by the Kusama incident of 8th Dec 2022 and its resolution through the governance
|
||||
/// Inspired by the Dicle incident of 8th Dec 2022 and its resolution through the governance
|
||||
/// fallback.
|
||||
///
|
||||
/// Mass slash of validators shouldn't disable more than 1/3 of them (the byzantine threshold). Also
|
||||
|
||||
@@ -1112,7 +1112,7 @@ mod batched {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn kusama_estimate() {
|
||||
fn dicle_estimate() {
|
||||
use crate::WeightInfo;
|
||||
let block_time = pezframe_support::weights::Weight::from_parts(
|
||||
pezframe_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND * 2,
|
||||
|
||||
@@ -1696,7 +1696,7 @@ pub mod pezpallet {
|
||||
///
|
||||
/// See the inline code docs of `Member::pending_rewards` and `RewardPool::update_recorded`
|
||||
/// for example analysis. A [`pezsp_runtime::FixedU128`] should be fine for chains with
|
||||
/// balance types similar to that of Pezkuwi and Kusama, in the absence of severe slashing
|
||||
/// balance types similar to that of Pezkuwi and Dicle, in the absence of severe slashing
|
||||
/// (or prevented via a reasonable `MaxPointsToBalance`), for many many years to come.
|
||||
type RewardCounter: FixedPointNumber + MaxEncodedLen + TypeInfo + Default + codec::FullCodec;
|
||||
|
||||
|
||||
@@ -2374,7 +2374,7 @@ mod claim_payout {
|
||||
|
||||
#[test]
|
||||
fn claim_payout_large_numbers() {
|
||||
let unit = 10u128.pow(12); // akin to KSM
|
||||
let unit = 10u128.pow(12); // akin to DCL
|
||||
ExistentialDeposit::set(unit);
|
||||
StakingMinBond::set(unit * 1000);
|
||||
|
||||
|
||||
@@ -228,7 +228,7 @@ mod test {
|
||||
use std::fs;
|
||||
|
||||
fn load_metadata(version: u32) -> Vec<u8> {
|
||||
fs::read(format!("./test_data/ksm_metadata_v{}.bin", version)).unwrap()
|
||||
fs::read(format!("./test_data/dcl_metadata_v{}.bin", version)).unwrap()
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! Metadata Version 10. Networks like Kusama contain this version on-chain.
|
||||
//! Metadata Version 10. Networks like Dicle contain this version on-chain.
|
||||
//! Chains old enough to contain this metadata need a way to decode it.
|
||||
|
||||
#![allow(missing_docs)]
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! Metadata Version 11. Networks like Kusama contain this version on-chain.
|
||||
//! Metadata Version 11. Networks like Dicle contain this version on-chain.
|
||||
//! Chains old enough to contain this metadata need a way to decode it.
|
||||
|
||||
#![allow(missing_docs)]
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! Metadata Version 12. Networks like Kusama contain this version on-chain.
|
||||
//! Metadata Version 12. Networks like Dicle contain this version on-chain.
|
||||
//! Chains old enough to contain this metadata need a way to decode it.
|
||||
|
||||
#![allow(missing_docs)]
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! Metadata Version 13. Networks like Kusama contain this version on-chain.
|
||||
//! Metadata Version 13. Networks like Dicle contain this version on-chain.
|
||||
//! Chains old enough to contain this metadata need a way to decode it.
|
||||
|
||||
use crate::decode_different::*;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! Metadata Version 9. Networks like/as old as Kusama start here.
|
||||
//! Metadata Version 9. Networks like/as old as Dicle start here.
|
||||
//! Chains old enough to contain this metadata need a way to decode it.
|
||||
|
||||
#![allow(missing_docs)]
|
||||
|
||||
@@ -887,7 +887,7 @@ mod tests {
|
||||
assert_eq!(encoded_size, 74);
|
||||
}
|
||||
|
||||
// Kusama has the same configurations as of now.
|
||||
// Dicle has the same configurations as of now.
|
||||
const PEZKUWI_MAX_DOWNWARD_MESSAGE_SIZE: u32 = 51200; // 50 Kib
|
||||
const PEZKUWI_MAX_UPWARD_MESSAGE_SIZE: u32 = 65531; // 64 Kib
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ This type looks into `parameter_types! { pub storage UsePreviousValidators: bool
|
||||
validators run by ZN (often alice and bob). If AH sends us back a validator set that contains a
|
||||
large new validator set, the setup will break. As seen in the next section, a number of runtime
|
||||
presets are designed to generate large validator/nominator sets to mimic the behavior of PezkuwiChain
|
||||
and Kusama. We thereofre must use this hack in such cases.
|
||||
and Dicle. We thereofre must use this hack in such cases.
|
||||
- If set to `false`, it will use the new validator set.
|
||||
|
||||
#### Presets
|
||||
@@ -99,7 +99,7 @@ More concretely, the presets are:
|
||||
- Teyrchain:
|
||||
- `fake-dev`: 4 page, small number of fake validators and nominators.
|
||||
- `fake-hez`: 32 pages, large number of fake validators and nominators.
|
||||
- `fake-ksm`: 16 pages, large number of fake validators and nominators.
|
||||
- `fake-dcl`: 16 pages, large number of fake validators and nominators.
|
||||
- `real-s`: 4 pages, alice and bob as validators, 500 fake nominators
|
||||
- `real-m`: 4 pages, alice, bob, dave, eve as validators, 2000 fake nominators.
|
||||
- Relay Chain
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Bizinikiwi. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! New governance configurations for the Kusama runtime.
|
||||
//! New governance configurations for the Dicle runtime.
|
||||
|
||||
use super::*;
|
||||
use crate::xcm_config::Collectives;
|
||||
|
||||
@@ -59,15 +59,15 @@ pub mod pezpallet_custom_origins {
|
||||
ReferendumCanceller,
|
||||
/// Origin able to kill referenda.
|
||||
ReferendumKiller,
|
||||
/// Origin able to spend up to 1 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 1 DCL from the treasury at once.
|
||||
SmallTipper,
|
||||
/// Origin able to spend up to 5 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 5 DCL from the treasury at once.
|
||||
BigTipper,
|
||||
/// Origin able to spend up to 50 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 50 DCL from the treasury at once.
|
||||
SmallSpender,
|
||||
/// Origin able to spend up to 500 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 500 DCL from the treasury at once.
|
||||
MediumSpender,
|
||||
/// Origin able to spend up to 5,000 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 5,000 DCL from the treasury at once.
|
||||
BigSpender,
|
||||
/// Origin able to dispatch a whitelisted call.
|
||||
WhitelistedCaller,
|
||||
|
||||
@@ -1179,7 +1179,7 @@ where
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
// Minimum 100 bytes/KSM deposited (1 CENT/byte)
|
||||
// Minimum 100 bytes/DCL deposited (1 CENT/byte)
|
||||
pub const BasicDeposit: Balance = 1000 * CENTS; // 258 bytes on-chain
|
||||
pub const ByteDeposit: Balance = deposit(0, 1);
|
||||
pub const UsernameDeposit: Balance = deposit(0, 32);
|
||||
|
||||
+3
-3
@@ -20,13 +20,13 @@
|
||||
//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! WORST CASE MAP SIZE: `1000000`
|
||||
//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dicle-dev"), DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
// ./target/production/pezkuwi
|
||||
// benchmark
|
||||
// pezpallet
|
||||
// --chain=kusama-dev
|
||||
// --chain=dicle-dev
|
||||
// --steps=50
|
||||
// --repeat=20
|
||||
// --no-storage-info
|
||||
@@ -37,7 +37,7 @@
|
||||
// --execution=wasm
|
||||
// --wasm-execution=compiled
|
||||
// --header=./file_header.txt
|
||||
// --output=./runtime/kusama/src/weights/
|
||||
// --output=./runtime/dicle/src/weights/
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
|
||||
@@ -146,7 +146,7 @@ pub fn get_preset(id: &PresetId) -> Option<Vec<u8>> {
|
||||
params.dev_stakers = Some((2_500, 25_000));
|
||||
staking_async_teyrchain_genesis(params, id.to_string())
|
||||
},
|
||||
"fake-ksm" => {
|
||||
"fake-dcl" => {
|
||||
params.validator_count = 1_000;
|
||||
params.dev_stakers = Some((4_500, 15_000));
|
||||
staking_async_teyrchain_genesis(params, id.to_string())
|
||||
@@ -168,6 +168,6 @@ pub fn preset_names() -> Vec<PresetId> {
|
||||
PresetId::from("real-m"),
|
||||
PresetId::from("fake-dev"),
|
||||
PresetId::from("fake-hez"),
|
||||
PresetId::from("fake-ksm"),
|
||||
PresetId::from("fake-dcl"),
|
||||
]
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//! New governance configurations for the Kusama runtime.
|
||||
//! New governance configurations for the Dicle runtime.
|
||||
|
||||
use super::*;
|
||||
use crate::xcm_config::Collectives;
|
||||
|
||||
@@ -59,15 +59,15 @@ pub mod pezpallet_custom_origins {
|
||||
ReferendumCanceller,
|
||||
/// Origin able to kill referenda.
|
||||
ReferendumKiller,
|
||||
/// Origin able to spend up to 1 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 1 DCL from the treasury at once.
|
||||
SmallTipper,
|
||||
/// Origin able to spend up to 5 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 5 DCL from the treasury at once.
|
||||
BigTipper,
|
||||
/// Origin able to spend up to 50 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 50 DCL from the treasury at once.
|
||||
SmallSpender,
|
||||
/// Origin able to spend up to 500 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 500 DCL from the treasury at once.
|
||||
MediumSpender,
|
||||
/// Origin able to spend up to 5,000 KSM from the treasury at once.
|
||||
/// Origin able to spend up to 5,000 DCL from the treasury at once.
|
||||
BigSpender,
|
||||
/// Origin able to dispatch a whitelisted call.
|
||||
WhitelistedCaller,
|
||||
|
||||
@@ -2182,9 +2182,9 @@ impl_runtime_apis! {
|
||||
log::info!(target: "runtime", "detected a fake-dev preset");
|
||||
// noop, default values are for dev.
|
||||
},
|
||||
"fake-ksm" => {
|
||||
log::info!(target: "runtime", "detected fake-ksm preset");
|
||||
crate::staking::enable_ksm_preset(true);
|
||||
"fake-dcl" => {
|
||||
log::info!(target: "runtime", "detected fake-dcl preset");
|
||||
crate::staking::enable_dcl_preset(true);
|
||||
},
|
||||
"fake-hez" => {
|
||||
log::info!(target: "runtime", "detected fake-hez preset");
|
||||
|
||||
@@ -43,7 +43,7 @@ pub(crate) fn enable_hez_preset(fast: bool) {
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn enable_ksm_preset(fast: bool) {
|
||||
pub(crate) fn enable_dcl_preset(fast: bool) {
|
||||
Pages::set(&16);
|
||||
MinerPages::set(&4);
|
||||
MaxElectingVoters::set(&12_500);
|
||||
@@ -55,21 +55,21 @@ pub(crate) fn enable_ksm_preset(fast: bool) {
|
||||
}
|
||||
|
||||
// This macro contains all of the variable parameters that we intend to use for Pezkuwi and
|
||||
// Kusama.
|
||||
// Dicle.
|
||||
//
|
||||
// Note that this runtime has 3 broad presets:
|
||||
//
|
||||
// 1. dev: fast development preset.
|
||||
// 2. dot-size: as close to Pezkuwi as possible.
|
||||
// 3. ksm-size: as close to Kusama as possible.
|
||||
// 3. dcl-size: as close to Dicle as possible.
|
||||
//
|
||||
// The default values here are related to `dev`. The above helper functions are used at launch (see
|
||||
// `build_state` runtime-api) to enable dot/ksm presets.
|
||||
// `build_state` runtime-api) to enable dot/dcl presets.
|
||||
parameter_types! {
|
||||
/// Number of election pages that we operate upon.
|
||||
///
|
||||
/// * Pezkuwi: 32 (3.2m snapshot)
|
||||
/// * Kusama: 16 (1.6m snapshot)
|
||||
/// * Dicle: 16 (1.6m snapshot)
|
||||
///
|
||||
/// Reasoning: Both leads to around 700 nominators per-page, yielding the weights in
|
||||
/// https://github.com/pezkuwichain/pezkuwi-sdk/issues/273, the maximum of which being around 1mb
|
||||
@@ -82,22 +82,22 @@ parameter_types! {
|
||||
pub storage Pages: u32 = 4;
|
||||
|
||||
/// * Pezkuwi: 16 * 32 (512 blocks, 51.2m).
|
||||
/// * Kusama: 8 * 16 (12 blocks, 12.8m).
|
||||
/// * Dicle: 8 * 16 (12 blocks, 12.8m).
|
||||
///
|
||||
/// (MaxSubmissions * Pages) for both, enough to verify all solutions.
|
||||
///
|
||||
/// Reasoning: Less security needed in Kusama, to compensate for the shorter session duration.
|
||||
/// Reasoning: Less security needed in Dicle, to compensate for the shorter session duration.
|
||||
pub storage SignedValidationPhase: u32 = Pages::get() * 2;
|
||||
|
||||
/// * Pezkuwi: 200 blocks, 20m.
|
||||
/// * Kusama: 100 blocks, 10m.
|
||||
/// * Dicle: 100 blocks, 10m.
|
||||
///
|
||||
/// Reasoning:
|
||||
///
|
||||
/// * Pezkuwi wishes at least 8 submitters to be able to submit. That is 8 * 32 = 256 pages
|
||||
/// for all submitters. Weight of each submission page is roughly 0.0007 of block weight. 200
|
||||
/// blocks is more than enough.
|
||||
/// * Kusama wishes at least 4 submitters to be able to submit. That is 4 * 16 = 64 pages for
|
||||
/// * Dicle wishes at least 4 submitters to be able to submit. That is 4 * 16 = 64 pages for
|
||||
/// all submitters. Weight of each submission page is roughly 0.0007 of block weight. 100
|
||||
/// blocks is more than enough.
|
||||
///
|
||||
@@ -105,16 +105,16 @@ parameter_types! {
|
||||
pub storage SignedPhase: u32 = 4 * MINUTES;
|
||||
|
||||
/// * Pezkuwi: 4
|
||||
/// * Kusama: 4
|
||||
/// * Dicle: 4
|
||||
///
|
||||
/// Reasoning: with 4 pages, the `ElectionScore` computed in both Kusama and Pezkuwi is pretty
|
||||
/// Reasoning: with 4 pages, the `ElectionScore` computed in both Dicle and Pezkuwi is pretty
|
||||
/// good. See and run `run_election_with_pages` below to see. With 4 pages, roughly 2800
|
||||
/// nominators will be elected. This is not great for staking reward, but is good enough for
|
||||
/// chain's economic security.
|
||||
pub storage MinerPages: u32 = 4;
|
||||
|
||||
/// * Pezkuwi: 300 blocks, 30m
|
||||
/// * Kusama: 150 blocks, 15m
|
||||
/// * Dicle: 150 blocks, 15m
|
||||
///
|
||||
/// Reasoning: The only criteria is for the phase to be long enough such that the OCW miner is
|
||||
/// able to run the mining code at least twice. Note that `OffchainRepeat` limits execution of
|
||||
@@ -123,13 +123,13 @@ parameter_types! {
|
||||
/// Benchmarks logs from tests below are:
|
||||
///
|
||||
/// * exec_time of pezkuwi miner in WASM with 4 pages is 27369ms
|
||||
/// * exec_time of kusama miner in WASM with 4 pages is 23848ms
|
||||
/// * exec_time of dicle miner in WASM with 4 pages is 23848ms
|
||||
///
|
||||
/// See `max_ocw_miner_pages_as_per_weights` test below.
|
||||
pub storage UnsignedPhase: u32 = MINUTES;
|
||||
|
||||
/// * Pezkuwi: 22_500
|
||||
/// * Kusama: 12_500
|
||||
/// * Dicle: 12_500
|
||||
///
|
||||
/// Reasoning: Yielding 703 nominators per page in both. See [`Pages`] for more info. Path to
|
||||
/// Upgrade: We may wish to increase the number of "active nominators" in both networks by 1)
|
||||
@@ -138,7 +138,7 @@ parameter_types! {
|
||||
pub storage MaxElectingVoters: u32 = 1000;
|
||||
|
||||
/// * Pezkuwi: 2000 (always equal to `staking.maxValidatorCount`)
|
||||
/// * Kusama: 4000 (always equal to `staking.maxValidatorCount`)
|
||||
/// * Dicle: 4000 (always equal to `staking.maxValidatorCount`)
|
||||
///
|
||||
/// Reasoning: As of now, we don't have a way to sort validators, so we wish to select all of
|
||||
/// them. In case this limit is reached, governance should introduce `minValidatorBond`, and
|
||||
@@ -146,20 +146,20 @@ parameter_types! {
|
||||
/// info: SRL-417
|
||||
pub storage TargetSnapshotPerBlock: u32 = 4000;
|
||||
|
||||
// NOTE: rest of the parameters are computed identically in both Kusama and Pezkuwi.
|
||||
// NOTE: rest of the parameters are computed identically in both Dicle and Pezkuwi.
|
||||
|
||||
/// Allow OCW miner to at most run 4 times in the entirety of the 10m Unsigned Phase.
|
||||
pub OffchainRepeat: u32 = UnsignedPhase::get() / 4;
|
||||
|
||||
/// Upper bound of `Staking.ValidatorCount`, which translates to
|
||||
/// `ElectionProvider::DesiredTargets`. 1000 is the end-game for both Kusama and Pezkuwi for
|
||||
/// `ElectionProvider::DesiredTargets`. 1000 is the end-game for both Dicle and Pezkuwi for
|
||||
/// the foreseeable future.
|
||||
pub const MaxValidatorSet: u32 = 1000;
|
||||
|
||||
/// Number of nominators per page of the snapshot, and consequently number of backers in the
|
||||
/// solution.
|
||||
///
|
||||
/// 703 in both Pezkuwi and Kusama.
|
||||
/// 703 in both Pezkuwi and Dicle.
|
||||
pub VoterSnapshotPerBlock: u32 = MaxElectingVoters::get() / Pages::get();
|
||||
|
||||
/// In each page, we may observe up to all of the validators.
|
||||
@@ -185,7 +185,7 @@ parameter_types! {
|
||||
// Signed phase parameters.
|
||||
parameter_types! {
|
||||
/// * Pezkuwi: 16
|
||||
/// * Kusama: 8
|
||||
/// * Dicle: 8
|
||||
///
|
||||
/// Reasoning: This is double the capacity of verification. There is no point for someone to be
|
||||
/// a submitter if they cannot be verified, yet, it is beneficial to act as a "reserve", in case
|
||||
@@ -195,26 +195,26 @@ parameter_types! {
|
||||
/// * Pezkuwi: Geometric progression with starting value 4 HEZ, common factor 2. For 16
|
||||
/// submissions, it will be [4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384,
|
||||
/// 32768, 65536, 131072]. Sum is `262140 HEZ` for all 16 submissions.
|
||||
/// * Kusama: Geometric progression with with starting value 0.1 KSM, common factor 4. For 8
|
||||
/// * Dicle: Geometric progression with with starting value 0.1 DCL, common factor 4. For 8
|
||||
/// submissions, values will be: `[0.1, 0.4, 1.6, 6.4, 25.6, 102.4, 409.6, 1638.4]`. Sum is
|
||||
/// `2184.5 KSM` for all 8 submissions.
|
||||
/// `2184.5 DCL` for all 8 submissions.
|
||||
pub DepositBase: Balance = 5 * UNITS;
|
||||
|
||||
/// * Pezkuwi: standard byte deposit configured in PAH.
|
||||
/// * Kusama: standard byte deposit configured in KAH.
|
||||
/// * Dicle: standard byte deposit configured in KAH.
|
||||
///
|
||||
/// TODO: need a maximum solution length for each runtime.
|
||||
pub DepositPerPage: Balance = 1 * UNITS;
|
||||
|
||||
/// * Pezkuwi: 20 HEZ
|
||||
/// * Kusama: 1 KSM
|
||||
/// * Dicle: 1 DCL
|
||||
///
|
||||
///
|
||||
/// Fixed deposit for invulnerable accounts.
|
||||
pub InvulnerableDeposit: Balance = UNITS;
|
||||
|
||||
/// * Pezkuwi: 10% (more restrictive, don't bail!)
|
||||
/// * Kusama: 25%
|
||||
/// * Dicle: 25%
|
||||
///
|
||||
/// Reasoning: The weight/fee of the `bail` transaction is already assuming you delete all pages
|
||||
/// of your solution while bailing, and charges you accordingly. So the chain is being
|
||||
@@ -223,7 +223,7 @@ parameter_types! {
|
||||
pub BailoutGraceRatio: Perbill = Perbill::from_percent(5);
|
||||
|
||||
/// * Pezkuwi: 100%
|
||||
/// * Kusama: 100%
|
||||
/// * Dicle: 100%
|
||||
///
|
||||
/// The transaction fee of `register` takes into account the cost of possibly ejecting another
|
||||
/// submission into account. In the scenario that the honest submitter is being ejected by an
|
||||
@@ -232,12 +232,12 @@ parameter_types! {
|
||||
pub EjectGraceRatio: Perbill = Perbill::from_percent(50);
|
||||
|
||||
/// * Pezkuwi: 5 DOTs per era/day
|
||||
/// * Kusama: 1 KSM per era/6h
|
||||
/// * Dicle: 1 DCL per era/6h
|
||||
pub RewardBase: Balance = 10 * UNITS;
|
||||
}
|
||||
|
||||
// * Pezkuwi: as seen here.
|
||||
// * Kusama, we will use a similar type, but with 24 as the maximum filed length.
|
||||
// * Dicle, we will use a similar type, but with 24 as the maximum filed length.
|
||||
//
|
||||
// Reasoning: using u16, we can have up to 65,536 nominators and validators represented in the
|
||||
// snapshot. If we every go beyond this, we have to first adjust this type.
|
||||
@@ -418,7 +418,7 @@ parameter_types! {
|
||||
pub const MaxControllersInDeprecationBatch: u32 = 751;
|
||||
pub const MaxNominations: u32 = <NposCompactSolution16 as pezframe_election_provider_support::NposSolution>::LIMIT as u32;
|
||||
// Note: In WAH, this should be set closer to the ideal era duration to trigger capping more
|
||||
// frequently. On Kusama and Pezkuwi, a higher value like 7 × ideal_era_duration is more
|
||||
// frequently. On Dicle and Pezkuwi, a higher value like 7 × ideal_era_duration is more
|
||||
// appropriate.
|
||||
pub const MaxEraDuration: u64 = RelaySessionDuration::get() as u64 * RELAY_CHAIN_SLOT_DURATION_MILLIS as u64 * SessionsPerEra::get() as u64;
|
||||
pub MaxPruningItems: u32 = 100;
|
||||
@@ -692,13 +692,13 @@ mod tests {
|
||||
let block_weight = <Runtime as pezframe_system::Config>::BlockWeights::get().max_block;
|
||||
let pezkuwi_signed_submission =
|
||||
mb::weights::pezkuwi::MultiBlockSignedWeightInfo::<Runtime>::submit_page();
|
||||
let kusama_signed_submission =
|
||||
mb::weights::kusama::MultiBlockSignedWeightInfo::<Runtime>::submit_page();
|
||||
let dicle_signed_submission =
|
||||
mb::weights::dicle::MultiBlockSignedWeightInfo::<Runtime>::submit_page();
|
||||
|
||||
log::info!(target: "runtime", "Pezkuwi:");
|
||||
weight_diff(block_weight, pezkuwi_signed_submission);
|
||||
log::info!(target: "runtime", "Kusama:");
|
||||
weight_diff(block_weight, kusama_signed_submission);
|
||||
log::info!(target: "runtime", "Dicle:");
|
||||
weight_diff(block_weight, dicle_signed_submission);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -718,15 +718,15 @@ mod tests {
|
||||
});
|
||||
|
||||
pezsp_io::TestExternalities::default().execute_with(|| {
|
||||
super::enable_ksm_preset(false);
|
||||
super::enable_dcl_preset(false);
|
||||
let duration = mb::Pezpallet::<Runtime>::average_election_duration();
|
||||
let kusama_session = 1 * HOURS;
|
||||
let dicle_session = 1 * HOURS;
|
||||
log::info!(
|
||||
target: "runtime",
|
||||
"Kusama election duration: {:?}, session: {:?} ({} sessions)",
|
||||
"Dicle election duration: {:?}, session: {:?} ({} sessions)",
|
||||
duration,
|
||||
kusama_session,
|
||||
duration / kusama_session
|
||||
dicle_session,
|
||||
duration / dicle_session
|
||||
);
|
||||
});
|
||||
}
|
||||
@@ -745,9 +745,9 @@ mod tests {
|
||||
for p in 1..=16 {
|
||||
log::info!(
|
||||
target: "runtime",
|
||||
"exec_time of kusama miner in WASM with {} pages is {:?}ms",
|
||||
"exec_time of dicle miner in WASM with {} pages is {:?}ms",
|
||||
p,
|
||||
mb::weights::kusama::MultiBlockUnsignedWeightInfo::<Runtime>::mine_solution(p).ref_time() / WEIGHT_REF_TIME_PER_MILLIS
|
||||
mb::weights::dicle::MultiBlockUnsignedWeightInfo::<Runtime>::mine_solution(p).ref_time() / WEIGHT_REF_TIME_PER_MILLIS
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -20,13 +20,13 @@
|
||||
//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! WORST CASE MAP SIZE: `1000000`
|
||||
//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dicle-dev"), DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
// ./target/production/pezkuwi
|
||||
// benchmark
|
||||
// pezpallet
|
||||
// --chain=kusama-dev
|
||||
// --chain=dicle-dev
|
||||
// --steps=50
|
||||
// --repeat=20
|
||||
// --no-storage-info
|
||||
@@ -37,7 +37,7 @@
|
||||
// --execution=wasm
|
||||
// --wasm-execution=compiled
|
||||
// --header=./file_header.txt
|
||||
// --output=./runtime/kusama/src/weights/
|
||||
// --output=./runtime/dicle/src/weights/
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
|
||||
@@ -728,7 +728,7 @@ pub mod bridging {
|
||||
/// User fee for ERC20 token transfer back to Ethereum.
|
||||
/// (initially was calculated by test `OutboundQueue::calculate_fees` - ETH/ZGR 1/400 and fee_per_gas 20 GWEI = 2200698000000 + *25%)
|
||||
/// Needs to be more than fee calculated from DefaultFeeConfig FeeConfigRecord in snowbridge:teyrchain/pallets/outbound-queue/src/lib.rs
|
||||
/// Pezkuwi uses 10 decimals, Kusama,Pezkuwichain,Zagros 12 decimals.
|
||||
/// Pezkuwi uses 10 decimals, Dicle,Pezkuwichain,Zagros 12 decimals.
|
||||
pub const DefaultBridgeHubEthereumBaseFee: Balance = 2_750_872_500_000;
|
||||
pub storage BridgeHubEthereumBaseFee: Balance = DefaultBridgeHubEthereumBaseFee::get();
|
||||
pub SiblingBridgeHubWithEthereumInboundQueueInstance: Location = Location::new(
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
//! `pezpallet-election-provider-multi-block`.
|
||||
//!
|
||||
//! While `pezpallet-staking` was somewhat general-purpose, this pezpallet is absolutely NOT right
|
||||
//! from the get-go: It is designed to be used ONLY in Pezkuwi/Kusama AssetHub system teyrchains.
|
||||
//! from the get-go: It is designed to be used ONLY in Pezkuwi/Dicle AssetHub system teyrchains.
|
||||
//!
|
||||
//! The workings of this pezpallet can be divided into a number of subsystems, as follows.
|
||||
//!
|
||||
|
||||
@@ -656,7 +656,7 @@ enum PalletsConversion {
|
||||
///
|
||||
/// `System: pezframe_system::{Pezpallet, Call}`
|
||||
///
|
||||
/// However, for backwards compatibility with Pezkuwi/Kusama
|
||||
/// However, for backwards compatibility with Pezkuwi/Dicle
|
||||
/// we must propagate some other parts to the pezpallet by default.
|
||||
Explicit(Vec<Pezpallet>),
|
||||
/// Pallets explicitly declare parts that are fully expanded.
|
||||
|
||||
@@ -63,7 +63,7 @@ pezframe_support::construct_runtime!(
|
||||
Example: common::outer_enums::pezpallet::{Pezpallet, Config<T>, Event<T>, Error<T>},
|
||||
Instance1Example: common::outer_enums::pezpallet::<Instance1>::{ Pezpallet, Config<T>, Event<T> },
|
||||
|
||||
// This pezpallet does not mention the Error type, but it must be propagated (similarly to the pezkuwi/kusama).
|
||||
// This pezpallet does not mention the Error type, but it must be propagated (similarly to the pezkuwi/dicle).
|
||||
Example2: common::outer_enums::pallet2::{Pezpallet, Config<T>, Event<T> },
|
||||
Instance1Example2: common::outer_enums::pallet2::<Instance1>::{Pezpallet, Config<T>, Event<T>},
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ type Balance = u128;
|
||||
type AccountId = u64;
|
||||
|
||||
/// Or any other token type.
|
||||
const KSM: Balance = 1_000_000_000_000;
|
||||
const DCL: Balance = 1_000_000_000_000;
|
||||
|
||||
fn main() {
|
||||
loop {
|
||||
@@ -92,7 +92,7 @@ fn generate_random_phragmen_assignment(
|
||||
if winners.iter().all(|w| *w != target) {
|
||||
winners.push(target);
|
||||
}
|
||||
(target, rng.gen_range(1 * KSM..100 * KSM))
|
||||
(target, rng.gen_range(1 * DCL..100 * DCL))
|
||||
})
|
||||
.collect::<Vec<(AccountId, ExtendedBalance)>>();
|
||||
|
||||
|
||||
@@ -864,7 +864,7 @@ mod score {
|
||||
|
||||
#[test]
|
||||
fn score_comparison_large_value() {
|
||||
// some random value taken from eras in kusama.
|
||||
// some random value taken from eras in dicle.
|
||||
let initial =
|
||||
[12488167277027543u128, 5559266368032409496, 118749283262079244270992278287436446];
|
||||
// this claim is 0.04090% better in the third component. It should be accepted as better if
|
||||
|
||||
@@ -7,7 +7,7 @@ usage. It can be used to measure the accuracy of the pezpallet benchmarking.
|
||||
In the following it will be explained once for PezkuwiChain and once for Bizinikiwi.
|
||||
|
||||
## PezkuwiChain # 1
|
||||
<sup>(Also works for Kusama, zagros and pezkuwichain)</sup>
|
||||
<sup>(Also works for Dicle, zagros and pezkuwichain)</sup>
|
||||
|
||||
|
||||
Suppose you either have a synced PezkuwiChain node or downloaded a snapshot from [Polkachu]. This example uses a pruned
|
||||
|
||||
Reference in New Issue
Block a user