LoginSignup
6
2

More than 5 years have passed since last update.

EOSコインのWallet操作まで(したかった)

Posted at

年明け後からの相場大暴落。そしてコイン盗難事件。
期待でウハウハの状態から一気に奈落の底に突き落とされて、まだ傷が癒えきれていない昨今。皆さんいかがお過ごしでしょうか。

久しぶりにコインのランキングなどを見てみました。

1日の取引ボリューム額順ランキング(2018年8月28日現在)

https://coinmarketcap.com/ja/
スクリーンショット 2018-08-28 15.09.28.png

EOSコインというのが4位。527億円! 何このすごいコイン! だけど全然知らないよ!
ということで、調べてみました。

以下、この記事では、testネットでnodeを立ててwalletなどの一連の操作ができるところまでの方法を記載します。

EOSコインとは

コインの経緯や定性的な話は、他サイトの方が詳しいです。→ https://www.newscrypto.jp/articles/3705

ざっくりまとめるとEOSコインは
 1. PoWではなく、DPoS。(投票によって選出された承認者(スーパーノード)によりブロックを生成)
 2. Bitcoinのような1本のチェーンではなく、有向非巡回グラフ(DAG)を採用。
 3. 今年5月にバージョン1.0がリリース(それまではEthトークン。本物がリリースされた貴重なケース?)
というもののようです。どおりでQiitaにまだ記事がないわけだ・・・

早速インスコ

EOSの開発者向けサイト: https://developers.eos.io

「Docker Quickstart」とか書いてるので、従って入れてみます。※サイトに記載のまま
https://developers.eos.io/eosio-nodeos/docs/docker-quickstart

$ docker pull eosio/eos-dev
$ 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::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"

これでノードが立ちあがったようなので、RESTAPIをコールすると動作します。

$ curl --request POST --url http://127.0.0.1:8888/v1/chain/get_info
{"server_version":"2ad41277","chain_id":"cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f","head_block_num":326,"last_irreversible_block_num":325,"last_irreversible_block_id":"000001454aada9f34b827dd1c7a96e34970f69e88eebf8fdca99312a057cdbb9","head_block_id":"00000146b96803b85880927a39435523eb3ee859c75c3f7a0b5d8e4ee237173f","head_block_time":"2018-08-28T01:51:14.500","head_block_producer":"eosio","virtual_block_cpu_limit":276661,"virtual_block_net_limit":1451306,"block_cpu_limit":199900,"block_net_limit":1048576,"server_version_string":"v1.2.2"}

RESTAPIの一覧があるので、バシバシ打ってみるべし
https://developers.eos.io/eosio-cleos/reference

普通のコインですと、ノードを立ち上げると同時に自分用のオリジナルWalletもできて、残高0が確認できるものですが、
EOSコインはそうではないようです。初期状態でwalletやaccountについて問い合わせるとエラーになりました。

$ curl --request POST --url http://127.0.0.1:8888/v1/chain/get_account
{"code":500,"message":"Internal Service Error","error":{"code":0,"name":"exception","what":"unspecified","details":[]}}

docker内のcleosコマンドへエイリアスを張って呼び出す方法もあるので行いました。

$ alias cleos='docker exec -it eosio /opt/eosio/bin/cleos -u 

こうすると、cleosコマンドがdockerの外から呼び出せます。
コマンド一覧

$ cleos wallet create -n testwallet1 --to-console
"/opt/eosio/bin/keosd" launched
Creating wallet: testwallet1
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5JASM9kRGKSvBRF35bwBUG5DHFWmkWvnNyPSWoXXXXXXXXXXXXX"

$ cleos wallet open -n testwallet1
"/opt/eosio/bin/keosd" launched
Opened: testwallet1

$ cleos wallet list
"/opt/eosio/bin/keosd" launched
Wallets:
[]

Walletのcreate→openまではできるのですが、listに表示されない。。。
コマンド一覧のサンプルでは、ここで表示されるはずなのですが。。。

Learn about Keys, Wallets and Accounts with cleos のページには、

Prerequisites
・Built and running copy of cleos and keosd on your system.
・Built and ready to run copy of nodeos on your system.
・Basic understanding of command line interfaces.

と書いてあります。「Builtってコンパイルしろという意味?」などと思ったので、ソースビルドをしてみました。

ソースからビルドしてやり直し

githubにソースが公開されてるので、git cloneして、ビルド用のシェルを実行すればokです。

$ git clone https://github.com/EOSIO/eos.git --recursive
$ cd eos
$ sudo ./eosio_build.sh

※ --recursiveが必要です。
※ eosio_build.sh を実行してもエラーで終了しましたが、再度実行すると必要ライブラリのインストールが徐々に進む感じで、私の環境では3回ほど再実行したところでやっとコンパイルが始まりました。
※ コンパイルが始まってから終わるまで2時間ほどかかりました。(当方マシンは、MacBookPro 2.9GHz Intel Core i5)

コンパイルで出るエラー1

Could not find a package configuration file provided by "LLVM" (requested version 4.0)

対策はこちら、https://github.com/EOSIO/eos/issues/43

$ brew info llvm
$ export LLVM_DIR=/usr/local/Cellar/llvm/4.0.0_1/lib/cmake

コンパイルで出るエラー2

Failed to find Gettext libintl (missing: Intl_INCLUDE_DIR)

対策はこちら、https://github.com/EOSIO/eos/issues/2028

$ brew unlink gettext && brew link --force gettext

コンパイルできた!

らこんな画面が出ました。うれしい〜
スクリーンショット 2018-08-28 17.34.38.png

で、再度、Wallet作成のコマンドを実行してみます。

$ /usr/local/bin/mongod -f /usr/local/etc/mongod.conf &
$ cd build/programs/cleos

mongodを動かして、cleosのディレクトリへ移動します。
もうdockerではないので、エイリアスは使いません。cleosを直接呼びます。

$ cleos wallet create -n testwallet2 --to-console
"/opt/eosio/bin/keosd" launched
Creating wallet: testwallet2
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5KDZ2BLrkim5EuC1yXXd1u7ADK5UGxPKCpEGSE3zTX9EXzZHgCJ"

$ cleos wallet open -n testwallet2
"/opt/eosio/bin/keosd" launched
Opened: testwallet2

$ cleos wallet list
"/opt/eosio/bin/keosd" launched
Wallets:
[]

Walletが表示されない・・・
ここで表示されないと、accountの作成ができません・・・

Mac環境とまだ合わないのか、何かが足りないのか、やっぱりSC◯Mなのかよくわかりませんが、ここで手詰まりのようです。
今後のバージョンアップでの改善に期待。

6
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2