はじめに
当記事は、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上に資金を追加するまで残高は変化しない。とのことでした。
他に何か分かったら追記します。