読者です 読者をやめる 読者になる 読者になる

仮想通貨サービス BitCapitalZ の日記

仮想通貨関連のブログです Ripple, Ethereum 仮想通貨2.0に注目しています

Ripple-RESTとripple-libが統合されRippleAPIになったことについての技術的な考察

Ripple

https://ripple.com/dev-blog/introducing-rippleapi/ こちらの件です。おそらくエンジニアの方はそもそも疑問に思うことがあると思います。
Ripple-REST はインタフェースで Ripple-lib はライブラリで違う概念のものが統合されるってどういうこと?
その2つが統合されて RippleAPI というインタフェースになったと思ったらそれは新しい ripple-lib という形で提供されているってどういうこと?

https://wiki.ripple.com/API_Overview その疑問はこのページに書かれている内容を元に以下に解説します。

まず一番プリミティブな ripple の API は rippled が提供しています。rippled は rippled WebSocket API もしくは rippled JSON-RPC API というインタフェースを用意していてそれらを通して rippled にいろんなリクエストを送れます。ただしあまりにもプリミティブ過ぎて非常に面倒です。
そこで rippled が用意する API を便利に使えるようにした javascript のライブラリが ripple-lib です。ただこれもすごく便利というわけではないですがこれで出来ないことは無いです。
一方で ripple-lib よりもっと便利にリクエストを送るしくみとして Ripple-REST が用意されていました。これはライブラリではなくて、rippled とクライアントの間に Ripple-REST をサポートするサーバーを建ててそのサーバーを介して rippled へリクエストを送ることができます。Ripple-REST をサポートするサーバーはとてもシンプルな REST API を用意しておりとても簡単便利に rippled へリクエストを送れます。ただ、クライアントは直接 rippled とやりとりするわけでなかったりでWebSocketを用いた双方向なやり取りができなかったりプリミティブなリクエストが送れなかったりと機能に制約があります。

上記の内容より、ripple-lib と Ripple-REST は片やライブラリ方がインタフェースと違う概念の物ですが、どちらも rippled へのリクエストを抽象化したものであります。
今回の発表では Ripple-REST の方のサポートを打ち切り Ripple-REST を廃止する方向となりました。
その一方で ripple-lib をより充実させてこれまで通りrippledに対してあらゆる事が出来つつ Ripple-REST 並に簡単便利に使えるようにしてくれたというわけです。

同じ様な物を2つも用意しておくのは無駄なので技術的な視点では特に大きな意味を持つわけではなさそうですが、
これはビジネス的には大きな意味を持つと考えております。ビジネス的な視点での考察は次回致します。

いや〜、、 Ripple-REST がなくなって javascript のライブラリだけとなると個人開発者からすと色々
制限がでてきて面倒すおそらく gatehub とかそういったところが便利な REST な api 用意してくれちゃって
よりエコシステムが発展するみたいな流れに。。。こういった話を次回します。

RippleTrade 以外でXRPやIOUを取引をする方法

RippleTrade 新規アカウント登録停止について解説と考察 - 仮想通貨サービス BitCapitalZ の日記にてRippleTrade(https://rippletrade.com/#/trade)で新規登録ができなくなった件について説明しましたが、では今後RippleTradeを使わずにどうやってXRPやIOUの取引をすればよいのかより詳しく説明します


1. Mr.Ripple で取引をする
Mr.Rippleで新規会員登録することで取引できます。新規会員登録の際に新しく秘密鍵(wallet)が作成されますが、
既存の秘密鍵をMr.Rippleに送ることで新しく秘密鍵(wallet)を作成せずに、送った秘密鍵(wallet)でMr.Ripple上で取引できます。

2. ripple-client-desktop をインストールして取引する
これはRippleTradeのデスクトップ版です。https://ripple.com/build/rest-tool/秘密鍵(wallet)を作成し、その秘密鍵を ripple-client-desktop にセットするだけです。

3. サーバー上に ripple-client(https://github.com/ripple/rippl)を建てて取引する
ripple-client(https://github.com/ripple/rippl)を自前のサーバーにインストールして、RippleTrade(https://rippletrade.com/#/trade)を自前のサーバー上に再現します。


上から順に下へ向かうほど難易度が高くなって行きます。

RippleTrade 新規アカウント登録停止について解説と考察

2015年10月30日から以下のアナウンスがありました。

ripple.com

今後Ripple社としてはエンタープライズ向けに注力するため今後 RippleTrade の新規アカウント登録を停止するようです。

たしかにRippleはインフラを提供するだけでエンドユーザーへのサービス提供はゲートウェイがやるのが自然なのでこの流れは非常に妥当だと思います。

技術的な話

この件についてより詳しく理解するためにまずは RippleTrade の技術的な仕組みを"ザックリ"説明します。


f:id:yuma300:20151031212229p:plain

上図の ripple-client が https://rippletrade.com/ で動いているソフトウェアです。
これはオープンソースなので誰でも自由に https://rippletrade.com/ と同じものをどこかのサーバー上に建てて世の中に公開することができます。もちろんそうした場合、その新しいサーバー上では新規アカウント登録可能です。

https://rippletrade.com/ の方では ripple-client の設定を変えるなりして新規アカウント登録できないようにしているのでしょう。

ここで ripple-blobvault についても触れておきたいと思います。
Ripple で wallet を持つということが本質的にどういうことかというと秘密鍵を持つということです。
RippleTradeのアカウントを持つというのは本質ではありません。ただ RippleTradeでアカウントを作ると必然的に秘密鍵も作られるためほぼ同義になります。
なので Ripple の wallet を持つには別に RippleTrade で新規アカウント登録できなくても持てます。
一番簡単な wallet の作成方法は

https://ripple.com/build/rest-tool/

ここから wallet の作成つまり秘密鍵の生成ができます。

上の図にあるように秘密鍵を用いてrippledにユーザーの送金や両替の処理を要求できるというわけです。
このwallet(秘密鍵)ですが RippleTrade で作成すると ripple-blobvault に格納されます。この ripple-blobvault に格納された秘密鍵はRippleTrade(ripple-client)で作ったアカウントのIDとパスワードを ripple-blobvault に渡すと取得することができます。
ripple-vault は https://blobvault.ripple.com で動いていて誰でもここへアクセスすることができます。
自前で ripple-client を用いて RippleTrade 相当のサーバーを建てても https://blobvault.ripple.com を使うことができます。

この blob-vault もオープンソースなので自由に自前のサーバーに建てることが可能です。

以上で技術的な説明は終わります。以下ではこれによりできなくなることと、これまでと変わらずに出きることと記述します。

出来なくなること

RippleTradeで新規アカウント登録

変わらずに出きること

既存アカウントでRippleTradeでの送金・両替・取引
Poloniex(ユーザーのRippleの秘密鍵預からないタイプの取引所)での取引
Mr.Ripple(ユーザーのRippleの秘密鍵預かるタイプの取引所)での取引
ripple-client-desktop での送金・両替・取引

新規さんは RippleTradeでXRP買ったり送金できなくなりますが、Mr.Rippleを使ったり代替手段は一応あります

Rippleの意図の考察

エンタープライズ向けに新規アカウント登録を停止する意図は以下だと思われます。

  • エンドユーザー向けのサポート対応のコストをかけたくない
  • kyc/aml にコストかけたくない
  • GWなり取引所なりにエンドユーザーを向かわせることでそれらの収益機会を増やしRippleのエコシステムを盛り上げたい

感想

RippleTradeの新規アカウント登録は妥当な流れだと思います。ただ今はRippleは投資対象として注目されている側面がとても大きいのでちょっと時期尚早なのではないかと思っています。新規でXRPへ投資しようと考えたときにMr.Rippleは使いたくないがXRP欲しい場合色々と面倒です。
なのでせめて Earthport なり銀行なりが Ripple を利用したサービスをスタートするまでは続けてほしかったなあと思いました。
まあRippleとしてはそういう個人は知ったこっちゃないというスタンスなのでしょう。

ただ、こういう流れにしたということは Ripple社は今後 Earthport なり銀行なりが間違いなく Ripple を使ったサービスを展開するという確信があるのだろうなとちょっと安心しましたw

Augur について個人的なメモ

Augur

www.augur.net

doublehash.me

doublehash.me

coinandpeace.hatenablog.com

blocktech.hateblo.jp

Hubot に Bitcoin の価格が指定価格になったら通知してくれる機能をつけました

仮想通貨について議論したり、仮想通貨系ブログの更新情報を知ることができる Slack チームを運営してまして、
そこでは hubot をカスタマイズした coinbot という Bot が動いております。

今回その coinbot に Bitcoin の価格が指定価格になったら通知してくれる機能を実装しました。
例えば、下記の画像のように coincheck で Bitcoin の価格が 33000円 以上になったら slack 上で通知してくれたりします。

f:id:yuma300:20150809000205p:plain

coinbot add bitcoin price notify higher coincheck XXXXX

coinbot add bitcoin price notify lower coincheck XXXXX

coinbot add bitcoin price notify higher zaif XXXXX

coinbot add bitcoin price notify lower zaif XXXXX

XXXXX は bitcoin の日本円価格


上記のように通知を受け取りたいbitcoinの価格と取引所を指定します。#bitcoin チャンネルに通知してくれます


この coinbot のソースコード
https://github.com/yuma300/coinbot
にて公開しております。

もしBotと仮想通貨を組み合わせてこういうことがしたい!!みたいな要望がありましたらご連絡下さい! githubリポジトリに issue
を立てて頂いてもよいです。よろしくお願いします。

仮想通貨の Slack チームには

http://slackinfo.com/teams/1

こちらから参加可能です。いろんな情報を楽に取得したりとても便利ですよ。こちらも併せてよろしくお願いします。