【EOS 開発】鍵、ウォレットの作成をしてみよう
目次
●前提条件
●コンテナにログイン
●ウォレットの作成
●鍵の作成とインポート
●※注意点
●前提条件
以下の環境構築が完了していることが前提です。
●コンテナにログイン
まずは環境構築で導入したeosioのimageからcontainerを立ち上げましょう!
sudo docker run --rm --name eosio -d -p 8888:8888 -p 9876:9876 -v /tmp/work:/work -v /tmp/eosio/data:/mnt/dev/data -v /tmp/eosio/config:/mnt/dev/config eosio/eos-dev /bin/bash -c "nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::wallet_plugin --plugin eosio::producer_plugin --plugin eosio::history_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin -d /mnt/dev/data --config-dir /mnt/dev/config --http-server-address=0.0.0.0:8888 --access-control-allow-origin=* --contracts-console --http-validate-host=false"
//きちんと立ち上がっていることを確認
$ sudo docker ps
[sudo] password for daiki:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
468b97ba0a93 eosio/eos-dev "/bin/bash -c 'nodeo…" 28 minutes ago Up 28 minutes 0.0.0.0:8888->8888/tcp, 0.0.0.0:9876->9876/tcp eosio
ではさっそくeosioのcontainerに入りましょう!
//docker login
$ sudo docker exec -it eosio bash
これでログインできました。
●ウォレットの作成
ではウォレットの作成をしていきます。
//wallet create
# cleos wallet create
"/opt/eosio/bin/keosd" launched
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5KCa624kA2EM9r4NEpvpi2f3TSM2KghRzxYwovtxPfjRgWpSfqf"
//walletのpasswordなのでなくさないようにしてください!
作成できました。
walletのpasswordは後で使うのでなくさないようにしてください!
次はwalletが作成できたか確認してみましょう。
//wallet 確認
# cleos wallet list
Wallets:
[
"default *"
]
うまくいっているようですね。
またEOSは複数のwalletを作成できるようです。やってみましょう。
//CLEOSでは複数のwaleltを管理可能
//名前をつけて生成
# cleos wallet create -n periwinkle
Creating wallet: periwinkle
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5KFH8wao5q4xFTieJ6CmcysF7uFzVNT25NijqyxDncRHaEURz4u"
//増えていることを確認
# cleos wallet list
Wallets:
[
"default *",
"periwinkle *"
]
複数できていることが確認できました。
アスタリスク(*)が付いていることに注意することが重要です。これは、それぞれのウォレットがロック解除されていることを意味します
常に解除されていると危ないのでロックしてみましょう。
//Lockしましょう
# cleos wallet lock -n periwinkle
Locked: periwinkle
//wallet list再度実行すると、アスタリスクが消えていることがわかります。これは、ウォレットがロックされていることを意味します。
# cleos wallet list
Wallets:
[
"default *",
"periwinkle"
]
periwinkleのアスタリスクが消えていることがわかります。
これでロックすることができました。再度アンロックもしてみましょう。
ここでは先程取得したperiwinkleのパスワードを利用します。
ちゃんとメモしてありますよね???👽
//unlock
# cleos wallet unlock -n periwinkle
password: Unlocked: periwinkle
//unlock確認
# cleos wallet list
Wallets:
[
"default *",
"periwinkle *"
]
ロック解除されていることが確認できました!
良い感じですね!
●鍵の作成とインポート
ウォレットもできたことですし、公開鍵、暗号鍵の生成をしていきましょう。
//2つ作ってみます。
# cleos create key
Private key: 5Hz4Vp8iZ45oc2o3HatNjt54XTkhpB2nD8jUnoSr7hvFsnUvcsa
Public key: EOS5S2DxGngsvf5CYz4A34xsuce4fkJ58VK1amKon4uksNyziHREi
# cleos create key
Private key: 5JMK52ifxHR1ALMMxWm1i6aDri3pDgxrr9wZaDuYNJw7uxZACJa
Public key: EOS5h6auAWuToi4QeBrpPYZZEbZHf2Zp8fLBqwRt2YgESC4fcbR5w
さくっとできました。ではウォレットにPrivate Keyをインポートしていきましょう。
//walletにsecret keyをインポート
//import までで一旦Enter
//以下の状態でPrivate Keyを入力!
# cleos wallet import
//private key:
# cleos wallet import
private key: imported private key for: EOS5S2DxGngsvf5CYz4A34xsuce4fkJ58VK1amKon4uksNyziHREi
root@035601932f9b:/# cleos wallet import
private key: imported private key for: EOS5h6auAWuToi4QeBrpPYZZEbZHf2Zp8fLBqwRt2YgESC4fcbR5w
どちらも上手くいきました。
ウォレットの中に鍵がインポートされたか確認してみましょう。
//walletの中の公開鍵を確認
root@035601932f9b:/# cleos wallet keys
[
"EOS5S2DxGngsvf5CYz4A34xsuce4fkJ58VK1amKon4uksNyziHREi",
"EOS5h6auAWuToi4QeBrpPYZZEbZHf2Zp8fLBqwRt2YgESC4fcbR5w"
]
//walletの中の公開鍵、秘密鍵を確認 walletのパスワードを入力することで秘密鍵もみることができます
root@035601932f9b:/# cleos wallet private_keys --password PW5KCa624kA2EM9r4NEpvpi2f3TSM2KghRzxYwovtxPfjRgWpSfqf
[[
"EOS5S2DxGngsvf5CYz4A34xsuce4fkJ58VK1amKon4uksNyziHREi",
"5Hz4Vp8iZ45oc2o3HatNjt54XTkhpB2nD8jUnoSr7hvFsnUvcsa"
],[
"EOS5h6auAWuToi4QeBrpPYZZEbZHf2Zp8fLBqwRt2YgESC4fcbR5w",
"5JMK52ifxHR1ALMMxWm1i6aDri3pDgxrr9wZaDuYNJw7uxZACJa"
]
]
鍵の作成、インポートはできました。
お疲れ様でした。
※注意点
鍵のインポート時にPrivate Keyのインポートができないバグが発生しているようです。
僕自身一度コンテナを停止した後、再度実行した際にインポートできなくなりました。
対応分かり次第こちらの記事にトラブルシューティングを記載していきます。
Twitterやっています。よかったらフォローお願いします!
この記事が気に入ったらサポートをしてみませんか?