5. Command: key¶
5.1. Command: key new¶
Generate new mitum keypair (privatekey and publickey)
$ ./mitum-example key new --help
Usage: a key new [<seed>]
generate new key
Arguments:
[<seed>] seed for generating key
Flags:
-h, --help Show context-sensitive help.
logging
--log.out="stderr" log output file: {stdout, stderr, <file>}
--log.format="terminal" log format: {json, terminal}
--log.level=debug log level: {trace, debug, info, warn, error}
--[no-]log.force-color log force color
$ ./mitum-example key new
{
"privatekey": "EGGQu4bCWDy1p4RhEZCdE7vP4hP1UeN2jS8U8s7zAomhmpr",
"publickey": "29Zrw2ZgWyeeHapnxc6cU8D19f5exjqkB4Mk2Bc2ACYyrmpu",
"hint": "mpr-v0.0.1",
"seed": "",
"type": "privatekey"
}
5.1.1. Arguments¶
seedOptional. With seed string, new kepair is generated from seed. As you expected, same seed will generated same keypair.
Without seed, different keypair will be generated in each time.
5.2. Command: key load¶
Load mitum key (privatekey or publickey) and validate it.
$ ./mitum-example key load --help
Usage: a key load <key string>
load key
Arguments:
<key string> key string
Flags:
-h, --help Show context-sensitive help.
logging
--log.out="stderr" log output file: {stdout, stderr, <file>}
--log.format="terminal" log format: {json, terminal}
--log.level=debug log level: {trace, debug, info, warn, error}
--[no-]log.force-color log force color
# load the privatekey, EGGQu4bCWDy1p4RhEZCdE7vP4hP1UeN2jS8U8s7zAomhmpr
$ ./mitum-example key load EGGQu4bCWDy1p4RhEZCdE7vP4hP1UeN2jS8U8s7zAomhmpr
{
"privatekey": "EGGQu4bCWDy1p4RhEZCdE7vP4hP1UeN2jS8U8s7zAomhmpr",
"publickey": "29Zrw2ZgWyeeHapnxc6cU8D19f5exjqkB4Mk2Bc2ACYyrmpu",
"hint": "mpr-v0.0.1",
"string": "EGGQu4bCWDy1p4RhEZCdE7vP4hP1UeN2jS8U8s7zAomhmpr",
"type": "privatekey"
}
# load the publickey, 29Zrw2ZgWyeeHapnxc6cU8D19f5exjqkB4Mk2Bc2ACYyrmpu
$ ./mitum-example key load 29Zrw2ZgWyeeHapnxc6cU8D19f5exjqkB4Mk2Bc2ACYyrmpu
{
"publickey": "29Zrw2ZgWyeeHapnxc6cU8D19f5exjqkB4Mk2Bc2ACYyrmpu",
"hint": "mpu-v0.0.1",
"string": "29Zrw2ZgWyeeHapnxc6cU8D19f5exjqkB4Mk2Bc2ACYyrmpu",
"type": "publickey"
}
5.2.1. Arguments¶
key stringLoad key, parse and validate it. Key can be privatekey or publickey.
5.3. Command: key sign¶
Sign message by the given privatekey
$ ./mitum-example key sign --help
Usage: a key sign <privatekey> <network-id> <body>
sign
Arguments:
<privatekey> privatekey string
<network-id> network-id
<body> body
Flags:
-h, --help Show context-sensitive help.
--node=ADDRESS-FLAG node address
--token=STRING set fact token
logging
--log.out="stderr" log output file: {stdout, stderr, <file>}
--log.format="terminal" log format: {json, terminal}
--log.level=debug log level: {trace, debug, info, warn, error}
--[no-]log.force-color log force color
# suffrage-candidate-no1sas.json is the oparation to be signed
$ cat ./suffrage-candidate-no1sas.json
{
"fact": {
"address": "no1sas",
"publickey": "25AZEiKTPhNkpcj6B1mofXHFyJRR8DaEMcNjc2WSvvW8Jmpu",
"token": "6qLkX1LfSXejcuzijomt+w==",
"_hint": "suffrage-candidate-fact-v0.0.1"
},
"_hint": "suffrage-candidate-operation-v0.0.1"
}
# sign by the privatekey, CaSheUmWGeAYgAKwnwdYrDuJ5fkr2wsVXSpmGFTEUpYtmpr
$ ./mitum-example key sign \
CaSheUmWGeAYgAKwnwdYrDuJ5fkr2wsVXSpmGFTEUpYtmpr \
"mitum; Sat 26 Dec 2020 05:29:13 AM KST" \
./suffrage-candidate-no1sas.json \
--node no1sas \
--token findme
{
"hash": "9PJgJA17dtCiGkTDRTFaK1fLiD3zbPYTNrYDpQhzMcYg",
"fact": {
"address": "no1sas",
"publickey": "25AZEiKTPhNkpcj6B1mofXHFyJRR8DaEMcNjc2WSvvW8Jmpu",
"hash": "GxhAT8KoWyS8E9d1zM47c5anGrNFC8XiCwWEuAdtSexZ",
"token": "ZmluZG1l",
"_hint": "suffrage-candidate-fact-v0.0.1"
},
"signed": [
{
"node": "no1sas",
"signed_at": "2022-08-07T04:00:45.499676834Z",
"signer": "25AZEiKTPhNkpcj6B1mofXHFyJRR8DaEMcNjc2WSvvW8Jmpu",
"signature": "AN1rKvtAWGE3APxii4jFfe6gzkTBAhqpQiMcLKKQJuSrWRgjGuMUsnG4aspLs3yJbsYgtkpsBLteVTn2vi4LhVn95GRubtWqf"
}
],
"_hint": "suffrage-candidate-operation-v0.0.1"
}
5.3.1. Arguments¶
privatekeyPrivatekey for signing
network-id*Network ID for signing
bodyMessage body to be signed
5.3.2. Flags¶
nodeSome message needs to be signed with node address
tokenUpdate token of operation