Subkey是Substrate包含的命令行工具,主要用于生成和恢复Substrate密钥对,上一篇文章介绍了Subkey的安装和使用Subkey生成SS58地址的命令,这篇文章详细介绍Subkey的功能。 在终端输入subkey即可查看subkey的使用说明: subkey v2.0.0版本所有子命令的用法如下图所示: subkey各子命令有一些通用的标识(FLAGS)和选项(OPTIONS)。 通用标识(FLAGS) --password-interactive:使用交互式的shell输入keystore使用的密码;通用选项(OPTIONS) --network <NETWORK>:指定Substrate网络类型,可选值有很多,下面详细介绍;--output-type <FORMAT>:设置输出格式,默认值text,可选值:json、text;--scheme <SCHEME>:设置椭圆曲线加密算法方案,默认值sr25519,可选值:ed25519、sr25519、ecdsa;--keystore-path <PATH>:指定keystore文件路径;--password <password>:指定keystore使用的密码;--password-filename <PATH>:指定保存keystore使用的密码的文件;subkey generate subkey generate用于生成一个随机密钥对,默认生成Substrate通用SS58地址(以数字5开头)。 用法 subkey generate [FLAGS] [OPTIONS] 选项(OPTIONS) --words <WORDS>:设置生成的密钥对助记词的单词数量,默认12个,可选值:12、15、18、21、24;使用命令 subkey generate --output-type json 生成数据如下 { "accountId": "0xa2f449b01b077aea2fd7932a542706798f3a6bd69cd30d4e2eb718cba294713a", "publicKey": "0xa2f449b01b077aea2fd7932a542706798f3a6bd69cd30d4e2eb718cba294713a", "secretPhrase": "steak artefact bottom chapter dolphin exhaust language atom amateur cross ozone siren", "secretSeed": "0x2e5b47a8dd06957262865c387a3d071cfa0c5cdd65d8eee8d3cc5067a6c7cbc6", "ss58Address": "5FkNBaJWsS6poi3GCzpEdsMJaKDVyFVXiXKbvRF26AxbFTP9" } 包含私钥(secretSeed)、公钥(publicKey/accountId)、助记词(secretPhrase)、SS58地址(ss58Address)。 通过配置--network选项,可以生成指定Substrate网络的密钥对,ss58-registry.json可以查看目前支持的Substrate网络,列表如下: 地址前缀网络名网络全称代币官网0polkadotPolkadot Relay ChainDOThttps://polkadot.network1reserved1保留2kusamaKusama Relay ChainKSMhttps://kusama.network3reserved3保留4katalchainKatal Chainhttps://katalchain.com5plasmPlasm NetworkPLMhttps://www.plasmnet.io6bifrostBifrostBNChttps://bifrost.finance7edgewareEdgewareEDGhttps://edgewa.re8karuraAcala Karura CanaryKARhttps://acala.network9reynoldsLaminar Reynolds CanaryREYhttp://laminar.network10acalaAcalaACAhttps://acala.network11laminarLaminarLAMIhttp://laminar.network12polymathPolymathPOLYhttps://www.polymath.network13substrateeSubstraTEEhttps://www.substratee.com16kulupuKulupuKLPhttps://kulupu.network17darkDark Mainnet18darwiniaDarwinia NetworkRING、KTONhttps://darwinia.network19geekGeekCashGEEKhttps://geekcash.org20stafiStafiFIShttps://stafi.io21dock-testnetDock TestnetDCKhttps://dock.io22dock-mainnetDock MainnetDCKhttps://dock.io23shiftShiftNrgSHIFThttps://shiftnrg.org28subsocialSubsocialSMNhttps://subsocial.network30phalaPhala NetworkPHAhttps://phala.network32robonomicsRobonomics NetworkXRThttps://robonomics.network33datahighwayDataHighwayDHXhttps://www.datahighway.com36centrifugeCentrifuge ChainRADhttps://centrifuge.io37nodleNodle ChainNODLhttps://nodle.io42substrateSubstratehttps://substrate.dev43reserved43保留44chainxChainXPCXhttps://chainx.org46reserved46保留47reserved47保留subkey inspect subkey inspect用于检查密钥,可以检查给定的URI(助记词、私钥、公钥、地址)并恢复公钥和地址。 用法 subkey inspect [FLAGS] [OPTIONS] [uri] 参数(ARGS) uri:密钥的URI,可以是私钥(secret seed)、加密URI(带路径和密码)、公钥、SS58地址。使用助记词恢复密钥对的命令如下 subkey inspect 'trouble sunset debate school seminar alter pulse moon saddle impact okay spare' 恢复结果如下 Secret phrase `trouble sunset debate school seminar alter pulse moon saddle impact okay spare` is account: Secret seed: 0x582a3bef6a394c7a2a7858f2fc7ab088a5778a043d461e223414d9222c489013 Public key (hex): 0xeccac159b58d6147dc508688608424c720f8d82972d8a86c80b21b054bd93c68 Account ID: 0xeccac159b58d6147dc508688608424c720f8d82972d8a86c80b21b054bd93c68 SS58 Address: 5HRBPWLcswbH89eaFE4AToSS5ogCyHi5b6uPJMvPf7hxAsQJ subkey generate-node-key subkey generate-node-key用于生成一个随机libp2p节点的peer ID和密钥。 用法 subkey generate-node-key [OPTIONS] 选项(OPTIONS) --file <file>:指定保存密钥的文件。运行命令 subkey generate-node-key 输出 12D3KooWGBbnegnFKdWUaqyQEubSqmSpH2GBGGPUtEwZo662eaX2 269d18eb6e4f8e2248694d920a2472eef9e997585a3d6d09771265fdd6bad03e 需要保存密钥到文件时运行 subkey generate-node-key --file /home/songguo/key 输出 12D3KooWGvTG95oPodqn2Rt39Eksp9Ru134MkLsFva426YFPG2Ze 并创建/home/songguo/key文件用于保存密钥39d8cebab4262767cc4a5837b1810fa209d31a360c669f5c5e9a24257fe5c6b3。 subkey inspect-node-key subkey inspect-node-key用于从节点密钥恢复peer ID,只能通过文件恢复。 用法 subkey inspect-node-key [OPTIONS] --file <file> 运行命令 subkey inspect-node-key --file /home/songguo/key 输出 12D3KooWGvTG95oPodqn2Rt39Eksp9Ru134MkLsFva426YFPG2Ze subkey sign subkey sign使用私钥或助记词给消息签名。 用法 subkey sign [FLAGS] [OPTIONS] 标识(FLAGS) --hex:输入数据是十六进制编码的数据;选项(OPTIONS) --message <message>:需要签名的消息数据,如果没有通过选项设置,则会在控制台中输入; --suri <suri>:私钥或助记词,如果传入的是文件会读取文件的文本内容;先通过工具把一句字符串转换成十六进制数据 然后运行命令 subkey sign --message 2268656c6c6f7375627374726174652122 --suri 'trouble sunset debate school seminar alter pulse moon saddle impact okay spare' 输出签名 4c2b17bad81916fd26bcca680ce8daea02657b6e4cf73b5c694e36a54fa390371354395a6c51151683bf6bdbcf02ee8995a3df83cbdd335b39e6e122fe1c1783 subkey verify subkey verify使用公钥验证消息的签名。 用法 subkey verify [FLAGS] [OPTIONS] <sig> [uri] 选项(OPTIONS) --message <message>:需要验证签名的消息数据;参数(ARGS) sig:十六进制编码后的签名;uri:公钥,如果传入的是文件会读取文件的文本内容,如果没有配置该选项,控制台会提示输入;运行命令 subkey verify --message 2268656c6c6f7375627374726174652122 e4c6a2af6f58db4cfd8138593f56005297d229167debd4071eb02b81e077f941acf79ad97dd82184ed30a3d3b1e45ccd7e27e5b08a21cd0c298e1cd2e32f2180 0xeccac159b58d6147dc508688608424c720f8d82972d8a86c80b21b054bd93c68 输出 Signature verifies correctly 如果公钥不匹配,会输出 Error: Other("Signature invalid.") subkey vanity subkey vanity是一个装饰器,可以生成指定模式的SS58地址。 用法 subkey vanity [OPTIONS] --pattern <pattern> OPTION(选项) --pattern <pattern>:要匹配的模式;运行命令,生成包含"666"的SS58地址 subkey vanity --pattern 666 结果如下 Generating key containing pattern '666' 100000 keys searched; best is 188/189 complete best: 189 == top: 189 Secret Key URI `0x0d692b67e4e58ed53302140f3d6fd6f526a9044b234a70cc0485d74f77a4ca9b` is account: Secret seed: 0x0d692b67e4e58ed53302140f3d6fd6f526a9044b234a70cc0485d74f77a4ca9b Public key (hex): 0xde3b44145df9dd05de37ca6341a4b9187887333b8384325b546199216d45ec1d Account ID: 0xde3b44145df9dd05de37ca6341a4b9187887333b8384325b546199216d45ec1d SS58 Address: 5H666Ms1Ck9PWDWzzX8oEgZevKa9EWGbBs4UfbrLbwzZTpmR subkey module-id subkey module-id用于检查模块ID的地址。 用法 subkey module-id [FLAGS] [OPTIONS] <id> 运行命令,检查py/trsry模块ID的地址 subkey module-id "py/trsry" 结果如下 Public Key URI `5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z` is account: Network ID/version: substrate Public key (hex): 0x6d6f646c70792f74727372790000000000000000000000000000000000000000 Account ID: 0x6d6f646c70792f74727372790000000000000000000000000000000000000000 SS58 Address: 5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z subkey insert subkey insert用于插入密钥到节点的密钥库。 用法 subkey insert [FLAGS] [OPTIONS] --key-type <key-type> 标识(FLAGS) --dev:指定为开发模式区块链;选项(OPTIONS) --base-path <PATH>:指定节点默认路径;--chain <CHAIN_SPEC>:指定链规范,可选值:dev、local、staging;--key-type <key-type>:密钥类型,如:gran、imon、aura;--log <LOG_PATTERN>...:设置自定义日志过滤器,语法是<target>=<level>,如-lsync=debug;--suri <suri>:私钥或助记词,如果传入的是文件会读取文件的文本内容;示例 subkey insert --suri 0x554b6fc625fbea8f56eb56262d92ccb083fd6eaaf5ee9a966eaab4db2062f4d0 --base-path /tmp/node01 --key-type aura —- 编译者/作者:松果 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
【Substrate开发教程】06 - Subkey功能详解
2020-10-15 松果 来源:区块链网络
- 上一篇:没有了
- 下一篇:没有了
LOADING...
相关阅读:
- Ledger希望帮助MicroStrategy确保其4亿美元的比特币资金2020-10-13
- 加密货币钱包通过了账本安全测试2020-10-10
- PIX在2天内超过了1000万注册2020-10-08
- 被黑客入侵的KuCoin重新开放BTC取款和存款2020-10-08
- 法国巴黎银行(BNP Paribas),Curv推出超级安全的移动安全令牌方式2020-10-07