ブロックチェーンに接続するための構成
Summary
ブロックチェーンの直接の利用者(ユーザー)が誰なのかを確認しましょう。 ここでは利用者というのはトランザクションを生成し、ブロックチェーンネットワークに送信する人やアプリとします。
Web ページの場合
「インターネットを見る」というと、ユーザーはコンピュータでブラウザを起動し、URL を入力して Web ページを閲覧することになります。
ブラウザは Web ページを見るためのアプリです。サーバーから HTML や JavaScript、CSS、画像などをダウンロードしアプリ画面上に表示します。 Web ページを提供している管理者(サービス提供者)が管理するサーバーから各データをダウンロードします。
クライアントアプリ + ノード
ユーザは PC やスマートフォンに専用アプリをインストールしてブロックチェーンネットワークに参加します。
Web ページの閲覧とは異なるのは、ブラウザではなくブロックチェーン専用アプリを使うということです。 ブラウザはサービス提供者の Web サーバーに接続しますが、ブロックチェーン専用アプリが接続する先はブロックチェーンネットワークに参加しているノードのどれかであり、どのノードに接続するか、何箇所に接続するかは専用アプリが判断します。 また、自分自身(専用アプリ)もブロックチェーンネットワークのノードとなり、他の専用アプリから接続されることがあります。
クライアントアプリ
自分自身はブロックチェーンネットワークに参加せずブロックチェーンを利用できます。 接続先となるブロックチェーンネットワークのノードはアプリからの接続が許可されているノードのみとなり自分で探すかアプリ開発者が提供するノードを利用します。 ノード同士が接続(P2P接続)する方法ではなく、ノードプログラムが提供する API を利用します。
クライアントアプリはインストールを必要とするもの以外にも、JavaScript でブラウザ上で動くアプリとして作成することもできます。
Web ページ 経由
Web ページ経由でブロックチェーンのデータを利用します。
Web サービスの裏でブロックチェーンを利用しているためユーザーはブロックチェーンの存在を意識することはありません。 「ブロックチェーンを利用したサービスを構築する」という場合は、この構成になることがほとんどです。
食品トレーサビリティをブロックチェーンで・・・という場合、一般消費者が専用クライアントアプリをインストールするという UX は考えられません。 食品のパッケージに QR コードを貼り付けて、それをスマホで読み取り Web ページを見てもらうという程度のことでも脱落者はいます。
積極的にブロックチェーンに参加しているユーザーでも、誰かが提供している Web サービスを利用している場合がほとんどです。
まとめ
ブロックチェーンを利用したサービスを作る場合、ブロックチェーン直接のユーザーは一般消費者ではなくサービス提供者が管理する Web サーバーということになります。
ブロックチェーンアプリだけでサービスが構築できるということはありません。スマートコントラクトを作ってデプロイしても、それを利用するための画面が必要になります。 ブロックチェーンのデータについても、ノードアプリから直接ダウンロードするのではなくオフチェーンアプリを利用して効率よくします。