如何增加系统内代币总发行量?首次构建运行node-template时Polkadot UI显示"total issuance 4.6116 MUnit",如何提升该数值?
嗨,我来帮你搞定这个调整代币总发行量的问题!不管是首次启动链之前修改初始总量,还是链运行后增发,都有对应的办法,咱们一步步说:
调整Node-template代币总发行量的具体操作
方法一:修改创世配置(首次启动链前最推荐)
你看到的初始4.6M Unit总量,其实是由创世块里的初始账户余额总和决定的,直接改创世配置就能搞定:
- 找到node-template代码里的创世配置文件:路径是
node-template/node/src/chain_spec.rs - 定位到
testnet_genesis函数中的balances段,这里定义了所有初始账户的余额分配。默认会给Alice、Bob等几个测试账户分配额度,加起来就是你看到的总发行量。 - 修改每个账户的
balance数值,或者新增更多账户的余额来提升总量。比如把默认的1_000_000 * UNIT改成10_000_000 * UNIT,或者多添加几行账户余额配置。小贴士:
UNIT是代币最小单位的倍数,默认UNIT = 10^12,所以1_000_000 * UNIT对应100万枚完整的Unit代币。 - 修改完成后,重新编译节点:运行
cargo build --release - 如果之前已经初始化过链数据,先删除旧数据(避免冲突):
rm -rf /tmp/substrate-node-template - 最后重新启动节点:
./target/release/node-template --chain=local --alice --tmp - 打开Polkadot UI连接节点,就能看到更新后的
total issuance了。
方法二:链上特权账户增发(链已运行时可用)
要是你的链已经启动,不想重新创世,可以用特权账户直接调整余额来增发:
- 确保你拥有带
balances::force_set_balance权限的账户(默认测试链里Alice账户就有根权限) - 打开Polkadot UI的
Developer -> Extrinsics页面,选择特权账户,然后找到balances模块下的forceSetBalance交易。 - 输入目标账户地址,以及要设置的新余额(比如给某个账户新增大量余额,总发行量会自动累加)
- 提交交易,确认后就能看到总发行量提升了。
注意:node-template默认是开启这个权限给根账户的,要是你自定义过链配置,得先确认权限是否可用。
如果想做长期的自动增发(比如通胀机制),那你需要修改pallet-balances或者自定义一个发行模块,不过这需要一定的Substrate开发基础,适合后续进阶操作。
内容的提问来源于stack exchange,提问作者Aaditya Srivastava
相关产品推荐
相关产品推荐

