見出し画像

【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やっています。よかったらフォローお願いします!


この記事が気に入ったらサポートをしてみませんか?