ブロックチェーン

次世代インターネットBlockStackを触ってみた

  • このエントリーをはてなブックマークに追加
  • LINEで送る

BlockStackとは

現在のインターネットは1部の大手企業によって運営されているため、個人情報や今見ている情報が、勝手にリサーチされたり改ざんされる状況にあります。

ブロックチェーン技術を使えば、個人情報を「自ら守れる」世界が訪れると言われますが、どのような仕組みで行えるのか、BlockStackを使ってみたいと思います。

BlockStackとは、ブロックチェーン上の分散アプリ(DApp)にアクセスできるブラウザで、一つの固有IDですべてのアプリを利用可能にします。

固有IDはBNSというブロックチェーン上のネームサーバに保管されていますが、このBNSは別の見方をすれば、将来的に今のドメイン情報を管理しているDNSに近い役割になれます。

固有IDでの管理は、BlockStackユーザが直接データを持ち、プライバシーと安定性、そして自由度を持つことができます。

 

それでは、BlockStackを立ち上げてみます。

 

BlockStack Coreノードの立ち上げ

BlockStack Coreノードとは、ドメインとパブリックキー、ストレージのルート情報のインデックスを管理しています。

ハバスでは次世代のインターネットの重要役割を担うであろうBlockStackのノードを立ち上げています。

 

BlockStack Coreのインストール

英語ですがBlockStackのgithubページをご参照ください。

私達はpythonのpipを利用しインストールを行いました。
BlockStackはpython2.7で開発されたため、pip2.7を利用する必要があります。
CentOS7上ですとデフォルトでpython2.7がインストールされているので便利です。

# Install dependencies
$ yum install epel-release
$ yum install python-pip python-devel openssl-devel libffi-devel rng-tools gmp-devel zlib-devel

# Install blockstack
$ sudo pip install blockstack --upgrade

blockstack-coreを上手く起動するためには6264/tcpポートと6270/tcpポートを解放し、SELinuxをdisableにする必要があります。

# Disable SELinux
$ setenforce 0
$ sed -i --follow-symlinks 's/^SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux && cat /etc/sysconfig/selinux
# firewalldの設定
$ firewall-cmd --add-port=6264/tcp --zone=public --permanent
$ firewall-cmd --add-port=6270/tcp --zone=public --permanent
$ firewall-cmd --reload

BlockStack Coreノードの起動

ノードを起動する前にBlockStack Coreノードの関連設定を行う必要があります。

以下のコマンドを実行し、設定のためにそれぞれの入力プロンプトが表示されますが、全部デフォルトのままEnterキーで大丈夫です。

$ blockstack-core configure

設定ファイルは~/.blockstack-server/blockstack.iniとして保管されます。

後でviから編集可能です。
次はbitcoinとの連携などのためfast_syncを実行します。

$ blockstack-core --debug fast_sync

実際にblockstack-coreを起動します。

$ blockstack-core --debug start

blockstack-coreが利用する各種ファイルやログは~/.blockstack-server/に保管されます。

BlockStack Coreの使用

blockstack-coreサーバが起動したら、RESTful APIを利用して色んな情報を取得することができます。

まずはAPIが生きているか確認します。

$ curl http://localhost:6270/v1/ping
{"status": "alive", "version": "20.0.0.0"}

すでに登録されているmuneeb.idのドメイン情報を取得します。

$ curl http://localhost:6270/v1/names/muneeb.id
{"status": "registered", "zonefile": "$ORIGIN muneeb.id\n$TTL 3600\n_http._tcp URI 10 1 \"https://gaia.blockstack.org/hub/1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs/0/profile.json\"\n", "expire_block": 599266, "blockchain": "bitcoin", "last_txid": "7e16e8688ca0413a398bbaf16ad4b10d3c9439555fc140f58e5ab4e50793c476", "address": "1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs", "zonefile_hash": "37aecf837c6ae9bdc9dbd98a268f263dacd00361"}

blockstack-coreの停止するには以下のコマンドを使います。

$ blockstack-core stop

もし、APIを外部からアクセスできるようにするためには~/.blockstack-server/blockstack.iniを編集します。

[blockstack-api]ブロックのindexer_url = http://localhost:6264とapi_host = localhostのlocahostをサーバのIPやホスト名に変えてから再起動します。

これでblaockstack-coreのノードを立ち上げるのができました。

ちなみにハバスのblockstackノードのAPIを利用してハバスのドメイン「havasteck.id.blockstack」の情報確認する方法は以下になります。

http://160.16.53.173:6270/v1/names/havastech.id.blockstack

BlockStackブラウザ

BlockStackブラウザを利用すればblockstackを活用して作られた様々なDAppを簡単に利用でき便利です。

BlockStackブラウザは以下からインストール可能です。

https://blockstack.org/install/

インストールしてからブラウザを立ち上げると新しいIDを登録することになります。

このIDは.id.blockstackのサブドメインの形になります。

もし、havas.jpなど独自のドメインを作成したい場合は、まずデフォルトのIDを作成してから追加できますが、有償のためbitcoinで払うことになります。

将来的にはブロックチェーン上もしくは、従来のインターネット上でドメインの役割を果たせるように設計されていますが、現在はDAppからの簡単ログイン認証として使われています。

BlockStackでは、ID及び個人情報を、ユーザが直接管理します。

ユーザはクラウドにこの情報を保存するか、立ち上げたノードに保存するか決めることができます。

そして、誰がいつ自身の情報にアクセスできるか、自ら決めることができます。

まるで、個人のキャビネットのように、ユーザは各自の情報を保管し、カギをかけて安全に守ることが出来ます。

各自のサーバに保存されている情報に、第三者がアクセスしようとしたら、鍵を持っているオーナーに要請し、そのオーナーが承認することで、その情報を閲覧することができます。

これにより、ユーザは自分自身の情報を完全に所有し、コントロールすることができます。

BlockStackのデータストレージ

BlockStackはデータをどこに保存するべきか・・

DAppなどで使われるデータをブロックチェーン上に保管すると、今後、DAppsアプリの増加や膨大なデータを利用するアプリにより、各ノードのディスクスペースを圧迫し、ブロックチェーンネットワークの速度にも影響してしまいます。

このような問題を解決するためBlockStackは、ブロックチェーン上には各ユーザのストレージHubの、インデックスのみを保管します。

実データは、分散ネットワークストレージであるGaiaプラットフォームに、保管するようになっています。

Gaiaフラットフォームのノードは、ストレージHubの役割をし、データをローカルディスクに保存するか、AWSやS3などのクラウドストレージに保管するか、ユーザが決めることが出来ます。

BlockStackの未来

BlockStackは次世代のインターネットとして、ネームサーバにあたるBNSと、安全かつシンプルなワンクリックログインを筆頭に、多彩なサービスをリリースし、新しいネットワークの世界を見せてくれています。

 

 

関連画像

  • このエントリーをはてなブックマークに追加
  • LINEで送る