【EOS 開発】鍵、ウォレットの作成をしてみよう

By @daidai8/19/2018eos

EOS-logo (1).png

■目次

・前提条件
・コンテナにログイン
・ウォレットの作成
・鍵の作成とインポート
・注意点

■前提条件

以下の環境構築が完了していることが前提です。

https://steemit.com/eos/@daidai/eos-eos-docker

■コンテナにログイン

まずは環境構築で導入した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.
"PW5KCa624kA2EM9r4NEpvpi2f3TSM2KghRzxYwovtxPfjRg1WpSfqf"
//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.
"PW5KFH8wao5q4xFTieJ6CmcysF7uFzVNT25NijqyxDnc1RHaEURz4u"

//増えていることを確認
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: 5Hz4Vp8iZ45oc2o3HatNjt54XTkhpB2nD8jU1noSr7hvFsnUvcsa
Public key: EOS5S2DxGngsvf5CYz4A34xsuce4fkJ58VK1a11mKon4uksNyziHREi

cleos create key
Private key: 5JMK52ifxHR1ALMMxWm1i6aDri3pDgxrr9w1ZaDuYNJw7uxZACJa
Public key: EOS5h6auAWuToi4QeBrpPYZZEbZHf2Zp8fL1BqwRt2YgESC4fcbR5w

さくっとできました。ではウォレットにPrivate Keyをインポートしていきましょう。

//walletにsecret keyをインポート
//import までで一旦Enter
//以下の状態でPrivate Keyを入力!
cleos wallet import
//private key:

cleos wallet import
private key: imported private key for: EOS5S2DxGngsvf5CYz4A314xsuce4fkJ58VK1amKon4uksNyziHREi

cleos wallet import
private key: imported private key for: EOS5h6auAWuToi4QeBrp1PYZZEbZHf2Zp8fLBqwRt2YgESC4fcbR5w

どちらも上手くいきました。
ウォレットの中に鍵がインポートされたか確認してみましょう。

//walletの中の公開鍵を確認
cleos wallet keys
[
"EOS5S2DxGngsvf5CYz4A34xsuce4fkJ58VK1amKon4uksNyz1iHREi",
"EOS5h6auAWuToi4QeBrpPYZZEbZHf2Zp8fLBqwRt2YgESC41fcbR5w"
]

//walletの中の公開鍵、秘密鍵を確認 walletのパスワードを入力することで秘密鍵もみることができます
cleos wallet private_keys --password PW5KCa624kA2EM9r4NEpvpi2f3TSM2KghRzxYwovtxPf1jRgWpSfqf
[[
"EOS5S2DxGngsvf5CYz4A34xsuce4fkJ58VK1amKon41uksNyziHREi",
"5Hz4Vp8iZ45oc2o3HatNjt54XTkhpB2nD8jUnoSr7hv1FsnUvcsa"
],[
"EOS5h6auAWuToi4QeBrpPYZZEbZHf2Zp8fLBqwRt21YgESC4fcbR5w",
"5JMK52ifxHR1ALMMxWm1i6aDri3pDgxrr9wZaDuYN1Jw7uxZACJa"
]
]

鍵の作成、インポートはできました。
お疲れ様でした。

■注意点

鍵のインポート時にPrivate Keyのインポートができないバグが発生しているようです。
僕自身一度コンテナを停止した後、再度実行した際にインポートできなくなりました。
対応分かり次第こちらの記事にトラブルシューティングを記載していきます。

Twitterやっています。よかったらフォローお願いします!
https://twitter.com/yamamotodaa

5

comments