substrate-node-template 中的帐户在哪里?
Where are accounts located in substrate-node-template?
当我们启动 substrate-front-end-template 时,首先看到的是一堆带有一些余额的虚拟账户,我的印象是这些账户是从 运行链。然而,当我进入 chain_spec.rs
文件并删除所有账户,甚至在 testnet_genesis 函数中重命名一些账户时,我继续看到账户,尽管余额为零:
在控制台上,keyring.getAccounts()
returns 这些帐户。
这是我的 ChainSpec 的样子:
Ok(ChainSpec::from_genesis(
"Development",
"dev",
ChainType::Development,
move || {
testnet_genesis(
wasm_binary,
vec![authority_keys_from_seed("Foundation")],
get_account_id_from_seed::<sr25519::Public>("Foundation"),
vec![
get_account_id_from_seed::<sr25519::Public>("Foundation"),
],
true,
)
},
// Bootnodes
vec![],
// Telemetry
None,
// Protocol ID
None,
// Properties
Some(props),
// Extensions
None,
))
如您所见,没有提及 alice、bob、charlie 等帐户。我什至搜索了整个节点文件夹以查找这些帐户的提及但无济于事。有人能告诉我如何 正确地 添加新帐户、sudo 帐户等到我的创世配置中吗?谢谢
帐户只是节点模板中的 public 键。这意味着您可以检查每个可能的 public 键,它会 return 为零。但这并不意味着这个帐户有任何关联的状态。 (假设你已经配置了一个高于 0 的存在存款)。
如果你想在 genesis 上添加帐户,只需查看 testnet_genesis
。 endowed_accounts
(第 4 个参数)是您要搜索的内容。这些账户在创世之初就获得了一些平衡。所有这些代码都是链式依赖的,您可以随意更改它。
如果满足以下条件,当前会添加这些测试帐户:
- 链类型为
ChainType::Development
或ChainType::Local
- 链名是
Development
或 Local Testnet
( https://github.com/polkadot-js/common/blob/2065b437e6ca4303726a04b6560713585c717b76/packages/util/src/is/testChain.ts#L4 )
(第二次检查纯粹是为了向后兼容)
正如 bkchr 提到的那样,这些帐户没有存储状态,因此在将某些内容转移到帐户之前它们并不真正存在。
当我们启动 substrate-front-end-template 时,首先看到的是一堆带有一些余额的虚拟账户,我的印象是这些账户是从 运行链。然而,当我进入 chain_spec.rs
文件并删除所有账户,甚至在 testnet_genesis 函数中重命名一些账户时,我继续看到账户,尽管余额为零:
在控制台上,keyring.getAccounts()
returns 这些帐户。
这是我的 ChainSpec 的样子:
Ok(ChainSpec::from_genesis(
"Development",
"dev",
ChainType::Development,
move || {
testnet_genesis(
wasm_binary,
vec![authority_keys_from_seed("Foundation")],
get_account_id_from_seed::<sr25519::Public>("Foundation"),
vec![
get_account_id_from_seed::<sr25519::Public>("Foundation"),
],
true,
)
},
// Bootnodes
vec![],
// Telemetry
None,
// Protocol ID
None,
// Properties
Some(props),
// Extensions
None,
))
如您所见,没有提及 alice、bob、charlie 等帐户。我什至搜索了整个节点文件夹以查找这些帐户的提及但无济于事。有人能告诉我如何 正确地 添加新帐户、sudo 帐户等到我的创世配置中吗?谢谢
帐户只是节点模板中的 public 键。这意味着您可以检查每个可能的 public 键,它会 return 为零。但这并不意味着这个帐户有任何关联的状态。 (假设你已经配置了一个高于 0 的存在存款)。
如果你想在 genesis 上添加帐户,只需查看 testnet_genesis
。 endowed_accounts
(第 4 个参数)是您要搜索的内容。这些账户在创世之初就获得了一些平衡。所有这些代码都是链式依赖的,您可以随意更改它。
如果满足以下条件,当前会添加这些测试帐户:
- 链类型为
ChainType::Development
或ChainType::Local
- 链名是
Development
或Local Testnet
( https://github.com/polkadot-js/common/blob/2065b437e6ca4303726a04b6560713585c717b76/packages/util/src/is/testChain.ts#L4 )
(第二次检查纯粹是为了向后兼容)
正如 bkchr 提到的那样,这些帐户没有存储状态,因此在将某些内容转移到帐户之前它们并不真正存在。