问题描述
我是新手 我正在关注 Substrate 节点并且是新手。 t 模板教程并连接到 polkadot js 应用程序。 当我导航到“帐户”部分时,所有帐户都显示 0 余额。如何定义帐户余额?
polkadoitjs 应用程序帐户部分
chain_spec :-
use node_template_runtime::{
AccountId,AuraConfig,BalancesConfig,GenesisConfig,GrandpaConfig,Signature,SudoConfig,SystemConfig,WASM_BINARY,};
use sc_service::ChainType;
use sp_consensus_aura::sr25519::AuthorityId as AuraId;
use sp_core::{sr25519,Pair,Public};
use sp_finality_grandpa::AuthorityId as GrandpaId;
use sp_runtime::traits::{IdentifyAccount,Verify};
// The URL for the telemetry server.
// const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/";
/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type.
pub type ChainSpec = sc_service::GenericChainSpec<GenesisConfig>;
/// Generate a crypto pair from seed.
pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {
TPublic::Pair::from_string(&format!("//{}",seed),None)
.expect("static values are valid; qed")
.public()
}
type AccountPublic = <Signature as Verify>::Signer;
/// Generate an account ID from seed.
pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId
where
AccountPublic: From<<TPublic::Pair as Pair>::Public>,{
AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()
}
/// Generate an Aura authority key.
pub fn authority_keys_from_seed(s: &str) -> (AuraId,GrandpaId) {
(get_from_seed::<AuraId>(s),get_from_seed::<GrandpaId>(s))
}
pub fn development_config() -> Result<ChainSpec,String> {
let wasm_binary =
WASM_BINARY.ok_or_else(|| "Development wasm binary not available".to_string())?;
Ok(ChainSpec::from_genesis(
// Name
"Development",// ID
"dev",ChainType::Development,move || {
testnet_genesis(
wasm_binary,// Initial PoA authorities
vec![authority_keys_from_seed("Alice")],// Sudo account
get_account_id_from_seed::<sr25519::Public>("Alice"),// Pre-funded accounts
vec![
get_account_id_from_seed::<sr25519::Public>("Alice"),get_account_id_from_seed::<sr25519::Public>("Bob"),get_account_id_from_seed::<sr25519::Public>("Alice//stash"),get_account_id_from_seed::<sr25519::Public>("Bob//stash"),],true,)
},// Bootnodes
vec![],// Telemetry
None,// Protocol ID
None,// Properties
None,// Extensions
None,))
}
pub fn local_testnet_config() -> Result<ChainSpec,String> {
let wasm_binary =
WASM_BINARY.ok_or_else(|| "Development wasm binary not available".to_string())?;
Ok(ChainSpec::from_genesis(
// Name
"Local Testnet",// ID
"local_testnet",ChainType::Local,// Initial PoA authorities
vec![
authority_keys_from_seed("Alice"),authority_keys_from_seed("Bob"),get_account_id_from_seed::<sr25519::Public>("Charlie"),get_account_id_from_seed::<sr25519::Public>("Dave"),get_account_id_from_seed::<sr25519::Public>("Eve"),get_account_id_from_seed::<sr25519::Public>("Ferdie"),get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),get_account_id_from_seed::<sr25519::Public>("Dave//stash"),get_account_id_from_seed::<sr25519::Public>("Eve//stash"),get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),))
}
/// Configure initial storage state for FRAME modules.
fn testnet_genesis(
wasm_binary: &[u8],initial_authorities: Vec<(AuraId,GrandpaId)>,root_key: AccountId,endowed_accounts: Vec<AccountId>,_enable_println: bool,) -> GenesisConfig {
GenesisConfig {
frame_system: Some(SystemConfig {
// Add Wasm runtime to storage.
code: wasm_binary.to_vec(),changes_trie_config: Default::default(),}),pallet_balances: Some(BalancesConfig {
// Configure endowed accounts with initial balance of 1 << 60.
balances: endowed_accounts
.iter()
.cloned()
.map(|k| (k,1 << 60))
.collect(),pallet_aura: Some(AuraConfig {
authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(),pallet_grandpa: Some(GrandpaConfig {
authorities: initial_authorities
.iter()
.map(|x| (x.1.clone(),1))
.collect(),pallet_sudo: Some(SudoConfig {
// Assign network admin rights.
key: root_key,}
}
运行命令:-
./target/release/node-template \
--base-path /tmp/alice \
--chain local \
--alice \
--port 30333 \
--ws-port 9944 \
--rpc-port 9933 \
--node-key 0000000000000000000000000000000000000000000000000000000000000001 \
--telemetry-url 'wss://telemetry.polkadot.io/submit/ 0' \
--validator
教程网址:- https://substrate.dev/docs/en/tutorials/start-a-private-network/
Substrate Node v3.0.0
api v4.14.1
apps v0.93.2-11
浏览器控制台中的错误
logger.js:61 2021-06-17 08:24:07 DRR: Unable to decode storage system.account: entry 0:: createType(AccountInfo):: {"nonce":"Index","consumers":"RefCount","providers":"RefCount","sufficients":"RefCount","data":"AccountData"}:: Decoded input doesn't match input,received 0x0000000000000000010000000000000000000010000000000000000000000000…0000000000000000000000000000000000000000000000000000000000000000 (76 bytes),created 0x0000000000000000010000000000000000000010000000000000000000000000…0000000000000000000000000000000000000000000000000000000000000000 (80 bytes)
解决方法
请清除所有节点缓存和锈蚀缓存 安装节点依赖和基板依赖 然后它工作
请注意
- 在本地开发环境中清除缓存后安装教程中提到的最新库