Blockchain 如何初始化底层区块链中的用户余额?
当我启动我的底层区块链时,我想用一些自由余额初始化用户 我怎样才能做到这一点 如果我的链已在运行,而我不想重新启动它,该怎么办?Genesis配置 设置具有初始自由余额的基底用户的最佳方法是更新chain_spec.rs文件,以便在区块链的genesis区块为用户提供单位 此genesis配置通过平衡模块进行:Blockchain 如何初始化底层区块链中的用户余额?,blockchain,substrate,Blockchain,Substrate,当我启动我的底层区块链时,我想用一些自由余额初始化用户 我怎样才能做到这一点 如果我的链已在运行,而我不想重新启动它,该怎么办?Genesis配置 设置具有初始自由余额的基底用户的最佳方法是更新chain_spec.rs文件,以便在区块链的genesis区块为用户提供单位 此genesis配置通过平衡模块进行: fn testnet_genesis(initial_authorities: Vec<AuthorityId>, endowed_accounts: Vec<Acco
fn testnet_genesis(initial_authorities: Vec<AuthorityId>, endowed_accounts: Vec<AccountId>, root_key: AccountId) -> GenesisConfig {
GenesisConfig {
balances: Some(BalancesConfig {
transaction_base_fee: 1,
transaction_byte_fee: 0,
existential_deposit: 500,
transfer_fee: 0,
creation_fee: 0,
balances: endowed_accounts.iter().cloned().map(|k|(k, 1 << 60)).collect(),
vesting: vec![],
}),
...
}
}
其中account_key函数使用输入的字符串生成sr25519种子
fn account_key(s: &str) -> AccountId {
sr25519::Pair::from_string(&format!("//{}", s), None)
.expect("static values are valid; qed")
.public()
}
Sudo模块
如果您已经启动了区块链,并且启用了Sudo模块,那么use还可以调用Balances模块中的set_balance privileged函数
此功能允许您将任何账户的自由和保留余额设置为任何值
sr25519::Public::from_ss58check5gukqt4gjw2xqzfwm3rha7x6syuvcghhuhz72cn7oibsgffx.unwrap基板v2.0.0-rc2中的上述代码应替换为以下代码:AccountId::from_ss58check5gukqt4gjw2xqzfwmm3rha7x6syuvcghhz72cn7oibsgffx.unwrap
fn account_key(s: &str) -> AccountId {
sr25519::Pair::from_string(&format!("//{}", s), None)
.expect("static values are valid; qed")
.public()
}