连接到 polkadotjs 应用程序显示 0 帐户余额的基板节点模板教程

问题描述

我是新手 我正在关注 Substrate 节点并且是新手。 t 模板教程并连接到 polkadot js 应用程序。 当我导航到“帐户”部分时,所有帐户都显示 0 余额。如何定义帐户余额?

polkadoitjs 应用程序帐户部分

enter image description here

基板前端模板出错

enter image description here

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/

应用程序版本显示polkadotjs/apps

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)

解决方法

请清除所有节点缓存和锈蚀缓存 安装节点依赖和基板依赖 然后它工作

请注意

  • 在本地开发环境中清除缓存后安装教程中提到的最新库