世間的には夏休みなので、ちょっと自由研究してみます。
なんとなくAWSの勉強をしてみたくなったのと、ブロックチェーンとかそろそろやってみたい、というくらいのモチベーションです。 ということで、そんなに詳しくないんですが、仮想通貨のデータの取得をやってみます。
ちょうど似たようなことをしている方がいらっしゃいました。 参考にしたのはこちら。
※ブロックチェーンとか全くわからないので、細かい理屈は目をつぶってやってみます。
※※ripple思ったよりデータ量があるみたいで、有償環境じゃないと難しいみたいです。
アーキテクチャ
BitcoinやらEthereumはチェーンが長いので、今回は省略しました。 今回はメジャーでもマイナーでもないRippleでやってみます。
https://ripple.com/jp/ripple.com
とりあえず、DBに突っ込んで好き放題分析できるようにするところまでが目標です。
データ量がまあまああるみたいで、macbookだと心もとなかったので、今回はAWSの環境を使用してやってみます。
rippled
rippledはrippleに関するデータを取ってくるクライアントソフトらしいです。
https://developers.ripple.com/manage-the-rippled-server.html
英語苦手なので、全くわかりません←
なんとなくやってみる
AWSの環境準備
まあ、自由研究なので軽い気持ちでやってみます。
まずはこちらに入ってみます。 なにはともあれアカウント作成してくださいな。
アカウントができて晴れてログインできるようになると、こんな感じになります。
初期設定はこちらを読んでそのとおり進めていただければと←
後はいろいろ弄るときにターミナルにSSHで接続したくなるはずなので、 そちらはこちらを参考にしました。
sshのログイン先がいまいちよくわからなくてこんなのが出て入れませんでした。
Permission denied (publickey)
ググってみると、ありました。
私の場合はユーザ名が間違ってたみたいです。 こんなもんで、だいたいAWSの初期設定はおしまいです。 細かいことは気にせず、サクサク行きましょ←
rippled
コマンドを使って放り込みたい場合はrippledを使うとターミナルコマンドでいろいろいじれます。
rippledのインストールコマンドはこちらにあります。
Install rippled - XRP Ledger Dev Portal
読んでみると推奨環境が書いてあります。 なので、有償インスタンスでトライしてみます。 今回はm5d.largeを使ってみます。
あとは書いてあるがままにコマンドを放り込めば一応環境は完成です。
適当にコマンドを放り込むとこんな感じですね。
$ /opt/ripple/bin/rippled server_info
ripple-lib
次に、ripple-libについてです。 公式にripple社が提供しているjavascript向けのライブラリっぽいですね。
APIに関するドキュメントはこちら。
java向けも一応あるにはあるんですが、work in priogress(現在開発中)になっているので、今回はjavascriptでやってみます。
そんなわけで、ここからはこちらを参考にさせていただきました。ありがとうございます。
まずはnodejsのインストールです。
$ curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
$ sudo yum -y install nodejs
次にripple-libのインストールです。
$ mkdir ripple-lib-test
$ cd ripple-lib-test
$ npm install ripple-lib
こんなもんでおしまいです。
実際に動かしてみます。
こんなコードを突っ込んで実行します。特定のアカウントの残高を取得するスクリプトらしいです。
実行するとこんな感じです。
$ node account.js
27.999988
中身はよくわかりませんが、とりあえず動いているみたいです。
では、本題のトランザクションの抜き出しをやってみます。 多分getTransactionメソッドを使うのだと思うので、コードはこんな感じにします。
結果はこんな感じです。
一応公開されているツールでも確認してみます
これを全トランザクションに対して実行すれば問題なさそうです。
とりあえず今回はこのへんで。次回はDBに書き込んでみます。