ILPのテストネットで送金を試す

はじめに

当記事は、ILPの公式ページからたどれる以下のチュートリアルに従い、テストネット上でILPを使って送金した時の手順です。

結論

  • Moneyd, ilp-spspをインストールして、テストネット上で送金した
  • 送金はPayment Channel上(つまりオフレジャー)で行われるため、残高確認の方法が分からない。

ILPとは

ILP(Interledger Protocol)は、異なる台帳間をつないで価値の交換を行うためのプロトコルです。

詳しくは、どらさんの下記の記事が分かりやすいです。

世界で一番分かりやすい Interledger Protocol

私の環境

Ubuntu 16.04で行いました。
作成されるファイルが分かりやすいように、「ilpuser」というユーザを作成してそのユーザで作業しています。

Moneydのインストール

InterLedgerネットワークに接続するには、Moneydというデーモンを介して接続します。

1.Node.jsのインストール

nvmを使って、Node.jsの最新版をインストールします。
(なぜかnpmでNode.jsをインストールした場合は、Moneydのインストール途中でエラーで止まってしまいました)

$ cd
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
$ export NVM_DIR="$HOME/.nvm"
$ [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
$ nvm --version
0.33.8
$ 
$ nvm install node
$ node -v
v9.11.1

2.Moneydのインストール

$ npm --version
5.6.0
$ npm install -g moneyd

表示されるメッセージの最後のほうに「+ moneyd@3.3.2」と表示されればMoneydのインストール完了です。

Moneydの設定

Moneydに「configure」オプションをつけて起動し、設定ファイルを生成します。
テストネットを使うので「–testnet」オプションもつけます。

$ moneyd configure --testnet

setting testnet rippled server...
setting config file location to /home/ilpuser/.moneyd.test.json
acquiring testnet account...
got testnet address "rNRCN6fk8xyMctdhpDjNwsM4RuUNKBXj7D"
waiting for testnet API to fund address...
selecting a parent from connector list...
writing config file...
written to /home/ilpuser/.moneyd.test.json

ホームディレクトリの直下に、「.moneyd.test.json」というファイルが生成され、アドレスやシークレットキーなどが入ります。

Moneydの起動

「start」オプションをつけて起動します。
下記、起動時にmoneydのロゴがアスキーアートで出ますが、Qiitaでは表示がくずれるので省略しています。

$ moneyd start --testnet

starting moneyd
2018-04-11T07:03:32.517Z connector:route-broadcaster info generated random routing secret.
2018-04-11T07:03:32.558Z connector:accounts info add account. accountId=parent
2018-04-11T07:03:32.565Z connector:accounts warn DEPRECATED: plugin accessed deprecated _log property. accountId=parent
2018-04-11T07:03:32.566Z connector:accounts info add account. accountId=local
2018-04-11T07:03:32.570Z connector:accounts warn DEPRECATED: plugin accessed deprecated _log property. accountId=local
2018-04-11T07:03:32.571Z connector:accounts warn DEPRECATED: plugin accessed deprecated _store property. accountId=local
2018-04-11T07:03:32.571Z connector:accounts warn DEPRECATED: plugin accessed deprecated _store property. accountId=local

2018-04-11T07:03:46.943Z connector:accounts info setting ilp address. oldAddress=unknown newAddress=test.amundsen.bmp.btp18q1xrp.xEv665x83ew6HKvr-3upnqwtJkhq51ayOHPk9IlXC3Y
2018-04-11T07:03:46.960Z connector:admin-api info listen called
2018-04-11T07:03:46.961Z connector:app info connector ready (republic attitude). address=test.amundsen.bmp.btp18q1xrp.xEv665x83ew6HKvr-3upnqwtJkhq51ayOHPk9IlXC3Y

SPSPのインストール

送金を行うには、SPSP(Simple Payment Setup Protocol)を使います。
こちらもnpmでインストールします。

$ npm install -g ilp-spsp

送金前の残高確認(やり方不明)

送金前の残高を確認します。後述するように、送金後も変化がありませんでした。

$ moneyd info --testnet
getting account...
balance:  9989.999988 XRP
account:  rsbjTxc6f7kgVN8VNMQGDFFhj5qJStMQwP
index  destination                         amount (drops)  balance (drops)  closing
0      rE75PyLPYbCGJ4SUiDLvtaCsuRXMd9x5ba  10000000        30000                

SPSPで送金

上記のilp-spspコマンドで、テストアドレスに送金します。

$ ilp-spsp send --amount 10 --receiver '$spsp.ilp-test.com'
paying 10 to "$spsp.ilp-test.com"...
sent!

送金後の残高確認・・・やり方が分からない!

$ moneyd info --testnet
getting account...
balance:  9989.999988 XRP
account:  rsbjTxc6f7kgVN8VNMQGDFFhj5qJStMQwP
index  destination                         amount (drops)  balance (drops)  closing
0      rE75PyLPYbCGJ4SUiDLvtaCsuRXMd9x5ba  10000000        30000                

moneydで残高確認しましたが、balanceも、destination balanceも変化がありません。
moneydを何度か再起動したり、別な金額で送金したり、SPSPサーバをたててそちらに送金したりしたところ、1時間後ぐらいにdestinationのbalanceが変わりました。

gitterで質問したところ、送金はPayment Channel上で行われるので、channel上に資金を追加するまで残高は変化しない。とのことでした。

他に何か分かったら追記します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です