少し前にマイクロソフトのBaaSに採用されると必ずその仮想通貨の価格が上がる!という現象が起こっていました。BaaSというのは、クラウドサーバー(Microsoft Azure)上でブロックチェーン(仮想通貨)を簡単に扱えるプラットフォームである、というような曖昧なイメージは持っていたのですが、いまいちどういうものか理解できていなかったので実際に触ってみました。
Microsoft Azureとは?
Microsoft Azureとはマイクロソフト社が提供しているクラウドサービス(IaaS/PaaS)のことです。実際の仕組みは違いますが、機能のイメージとしてはWebサイトを作るためのレンタルサーバーとほぼ同じものです。クラウドサーバーはIaaSやPaaSという名称で細分化されることもあります。
少し古く旧称のWidows Azureになっていますが、IaaSとPaaSの違いは以下のサイトなどが参考になります。
IaaSはVPS、PaaSはレンタルサーバーにより近いものと言えます。VPSやレンタルサーバーとクラウドサーバーの大きな違いは、簡単・自由にサーバーのリソース(メモリ、HDD容量など)を変更できることです。PaaSは、レンタルサーバーよりもかなり自由にサーバーの設定を変更できるうえに、VPSのように基礎的なシステムの保守管理を行う必要がないので、便利なサービスとなっています。BaaS(Blockchain as a Service)はPaaSの一種だと思われます。
競合他社にはAmazon AWSやGoogle Cloudなどがあり、Amazon AWSのシェアが最も高くなっています。
Blockchain as a Service(BaaS)を試してみる
Microsoft Azureには1ヶ月間200ドル分のみの無料試用期間があり、200ドルの範囲内で自由に試用することができます。BaaSも無料の範囲で使えるということを聞いたので実際に試してみることにしました。
BaaSを探すことからはじめる
まず困ったのは、Azureのサイト上には一見して「BaaSコーナー」みたいなものがない、ということです。公式ブログに「BaaSに○○コイン追加しました」みたいな情報があるだけです。逆に、これが実際に触ってみないとわからないと思った理由でもあります。
※追記:探したらありました。探し方が悪かっただけのようです。
Blockchain as a Service (BaaS) | Microsoft Azure
とりあえずログインして起動されて表示されるメニューを一通り見てみることにしました。
このメニューの中に「Blockchain」の文字があることを期待したのですが、残念ながら見つけることはできませんでした。
実際に仮想サーバーの設定をしてからBlockchainの設定をするのか?と思って、Linuxサーバーの設定途中に表示されるメニューやサーバー起動後のメニューなどもいろいろ探してみましたが、それでも見つけることができませんでした。(探し方ややり方が悪いだけかもしれません。)
そこで、Googleで検索して他サイトの情報を調べてると、どうやら違う場所にBaaSに関するリソースはあるようです。
それが以下のページです。
これはクイックスタートテンプレートというもので、テンプレートを使って簡単にサーバーを構築することができます。このテンプレートを「block」で検索するとBlockchain関連のテンプレートがいろいろ表示されるようになりました。これは、マイクロソフト側が作っているわけではなく、仮想通貨側のコミュニティが作ったものをマイクロソフトのサイトに載せているだけのようです。
ちなみにクイックスタートテンプレートからだけではなく、Githubのページにもブロックチェーン関連のテンプレートがまとめられており、以下のページから実行することもできるようです。
ちょうどみたらGameCredit(GMC)という仮想通貨が追加されたばかりでした。公式ブログにはまだ出てないので、公式発表後また価格が上がるかもしれませんね。
とりあえず、まずはビットコイン関連のものをということでBitcoreのテンプレートを利用してみることにしました。上のクイックスタートテンプレートからBitcoreを選択して「Azureへのデプロイ」を選択します。
Bitcoreとは?
Bitcoreとは、ビットコインのフルノードを含むビットコイン関連のライブラリであり、Javascriptを使ってビットコインのブロックチェーン情報を呼び出すことができるものです。Insightと呼ばれるブロックチェーン情報を閲覧できるブロックエクスプローラーやその他のウォレット機能なども含まれています。
BitcoreをAzureで動かしてみる
「Azureへのデプロイ」をクリックすると、以下の画面が表示されます。
設定するのは、「DNS名」、「管理者名」、「管理パスワード」、「データディスクのサイズ」の4つのみです。この4つを設定して左下に表示されている「作成」をクリックするとサーバーが起動されました。
どうやらこのBitcoreのテンプレートには、基盤となるLinuxの設定からInsightなどのBitcoreのサービスのインストールまで一括して含まれているようで、サーバーの起動後すぐにInsightを使えるようになりました。(ブロックチェーンの同期がまだ終わっていないので、実際に以下のInsightが使えるのは数日後だと思います。)
http://bitcore.japaneast.cloudapp.azure.com:3001/insight/
ちなみに、Bitcoreに含まれているノードはやや古いようでまだBitcoin Core 0.11.2でした(現在は0.12.1)。
テンプレートから「Azureへのデプロイ」をクリックしてから4つの項目を設定するだけで、ビットコインのフルノードやブロックエクスプローラーが起動したことになります。
実際に一からBitcoreを構築しようとするとnode.jsなどいろいろと他に手動でインストールする必要があるので、このテンプレートは非常に便利だといえます。手動でインストールする手順などは以下のサイトに詳しくかかれていました。
ビットコイン技術に触れてみよう Vol.2 〜Bitcore Nodeサーバーを立ててみる〜
これを1分で済ませてしまうのがBaaSです。
まとめ
今回はBitcoreを利用しましたが、他のものは大体「○○コインのフルノード」のテンプレートとなっています。まとめると、BaaSとはフルノードのワンクリックインストール機能である、という感じを受けました。便利は便利ですが、BaaSと大層な名前をつけるほどのものかと言われれば疑問を感じてしまいました。例えば既にAmazon AWSで仮想通貨関連サービスを構築している人がわざわざAzureに移るほどのものではないと思います。
今回は、とりあえずBaaSの具体的な情報が見当たらないので少しだけ触ってみた印象を載せてみました。また、今後はAzureの管理画面にブロックチェーン関連のUIを作るとか、もう少し踏み込んだアップデートに期待したいです。