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

in #eos6 years ago (edited)

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

Sort:  

Twitterもfollowしました。

ありがとうございます!follw backさせていただきました!

Congratulations @daidai! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

You published your First Post
You got a First Vote
Award for the number of upvotes received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:
SteemitBoard and the Veterans on Steemit - The First Community Badge.

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 67710.07
ETH 2614.05
USDT 1.00
SBD 2.67