そこでXRPを長期間保管しておきたいのですが、XRPに対応しているハードウェアウォレットがありません。そのうちTrezorやLedger nanoとかが対応してくれると思いますが、いい機会なので自分でXRPを保管しておくウォレットを作ってみようと思います。
|方針
第1段階:Prepare(準備)
第2段階:Sign(シークレットキーによる署名)
第3段階:Submit(送信)
第4段階:Velify(検証)
このうち第1段階の Prepare(準備)と第2段階の Sign(シークレットキーによる署名)はインターネットに接続しないでオフラインで処理することが可能です。また、ウォレットの新規作成(アドレスとシークレットキーの生成)もオフラインで作成することが可能です。
そこで、より安全を求めるならシークレットキーはインターネットから切り離された環境で取り扱う方がよいので、ウォレットの作成および送金の際の第2段階まではインターネットに接続していないPCやスマートフォンなどで処理することにし、その処理結果をUSBメモリなどでインターネットに接続したPCやスマートフォンに移動してから第3段階以降を処理するという方法もあります。
しかしオフライン処理についての自分の理解が不十分なことと、スマートフォンでの動作に不具合があり、その解決策がわからないため、今回はまず普段使っているPCで使用するウォレットを作ってみます。オフライン処理の理解が進み、スマートフォンでの不具合が解消ができればインターネットに接続していない端末とインターネットに接続している端末の2台を使ったウォレットの作り方も書く予定です(書かないかも...
|ウォレットの仕様
- 新規にウォレットを作成
- 残高照会
- 送金
|ウォレットを作るための環境を構築
参考サイト
- RippleAPI Beginners Guide - 環境構築に必要な手順が説明されています
- RippleAPI - APIの詳細なリファレンスが見られます
環境構築の流れ
- Node.js をインストール
- Git for Windows をインストール
- 作業用フォルダを作る
- ripple-lib をインストールしてJavaScriptファイルをビルド
- ビルドしたJavaScriptファイルとテスト用の test.html を作って動作を確かめる
1.Node.js をインストールする
Node.js (https://nodejs.org/ja/) のサイトから推奨版か最新版をダウンロードしてインストールしてください。
2.Git for Windows をインストールする
Git for Windows (https://git-for-windows.github.io/) のサイトからファイルをダウンロードしてインストールしてください。
3.Git Bash を起動して作業用フォルダを作る
「スタート」→「Git」→「Git Bash」をクリックしてGit Bashを起動します。
ここではプロジェクト用のフォルダとして「wallet」という名前のフォルダを作って、そこで作業をしていきます。フォルダ名は好きな名前で構いません。
Git Bash で次のコマンドを実行します('$'は入力不要)
$ mkdir wallet $ cd wallet
4.ripple-lib をインストールしてJavaScriptファイルをビルド
Git Bash から次のコマンドを実行してください
$ git clone https://github.com/ripple/ripple-lib.git $ cd ripple-lib $ git checkout release $ npm install //この処理には時間がかかります。 //WARN(警告)が出ますが気にしないでいいようです $ npm run build
すると wallet\ripple-lib\buildフォルダの中に ripple-0.17.14.js (バージョン番号は異なるかもしれません)というJavaScriptファイルができているはずなので、そのファイルを walletフォルダ直下にコピーしてください。このJavaScriptファイルをHTMLファイルへ読み込むとブラウザ上でRippleAPIを使えるようになります。
5.ビルドしたJavaScriptファイルとテスト用のHTMLファイルを作って動作を確かめる
まず、サンプルコードをコピーして test.html というファイルをつくり、ripple-0.17.4.js と同じwalletフォルダ直下に置きます。
それから、test.html の上から4行目に次のコードを追加します。
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.js"></script>
また、上のコードを追加した後の5行目のコードのバージョン番号を次のように修正します。ここはビルドしたjsファイル名に合わせて変えてください。
<script src="ripple-0.17.4.js"></script>
コード全体としては以下のようになります。
[test.html]
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>XRP Wallet</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.js"></script> <script src="ripple-0.17.4.js"></script> <script> console.log(ripple); var api = new ripple.RippleAPI({server:'wss://s1.ripple.com/'}); api.connect().then(function() { return api.getServerInfo(); }).then(function(server_info) { document.body.innerHTML += "<p>Connected to rippled server!</p>" + " <table>" + " <tr><th>Version</th>" + " <td>" + server_info.buildVersion + "</td></tr>" + " <tr><th>Ledgers available</th>" + " <td>" + server_info.completeLedgers + "</td></tr>" + " <tr><th>hostID</th>" + " <td>" + server_info.hostID + "</td></tr>" + " <tr><th>Most Recent Validated Ledger Seq.</th>" + " <td>" + server_info.validatedLedger.ledgerVersion + "</td></tr>" + " <tr><th>Most Recent Validated Ledger Hash</th>" + " <td>" + server_info.validatedLedger.hash + "</td></tr>" + " <tr><th>Seconds since last ledger validated</th>" + " <td>" + server_info.validatedLedger.age + "</td></tr>" + " </table>"; }); </script> <style type="text/css"> td, th { border: 1px solid black; padding: 5px; } table { border-collapse: collapse; } </style> </head> <body></body> </html>
test.html をブラウザで開いてみると、下の画像のように表示されるはずです。
以上でウォレット作成のための環境構築は終わりです。
0 件のコメント:
コメントを投稿