COLUMN

コラム

IPFSでのFilecoinの利用について

2023.08.05

Browsers 3000は、Protocol Labsによる5週間のハッカソンで、Web3.0時代のブラウザの未来のために構築されている分散型ソリューションに焦点を当てています。以下は、Jimmy“Cake”Leeによる、TextileのライブラリやEstuaryを実装してFilecoinを標準的なWebブラウザで利用する方法についての議論をまとめたものです。講演の全文はこちらからご覧いただけます。

ウェブブラウザが徐々にweb3.0の使用にシフトしていく中で、分散型ファイルストレージの需要がますます明らかになってきています。しかし、ブラウザのプラグインは、IPFSのような分散型ストレージプロトコルへのアクセスと同様、今までより制限されてきています。標準的なWebブラウザでは、IPFSを利用できないこともあります。そのため、これらのストレージシステムを利用してアプリを開発しようとする開発者を支援する仲介が必要となります。

Estuaryはweb3.0をコーディングしている多くの開発者が求めているソリューションです。本質的には、最小限のFilecoinライブラリを持つIPFSノードです。IPFSでFilecoinを利用するのは、複雑なプロセスではありませんが、正しく行うには少し難しいかもしれません。

この例では、Textileをホストされた仲介として使用し、開発者が標準的なAPIを通じてIPFSにコンテンツをピニングできるようにしています。これらがどのように機能しているかを理解する前に、それぞれがどのような役割を果たしているかについて少し知る必要があります。

IPFSとFilecoin:ブロックチェーンでは相性抜群

Filecoinは、事実上どこからでもアクセス可能なデータを保存することができる分散型ネットワークです。ユーザ(ストレージ提供者)は、利用可能なストレージをネットワーク上のノードとして提供し、そのノードにデータが保存・取得されると、Filecoinを獲得することができます。

この反対側にあるのがIPFSです。IPFSはweb3.0のファイルシステムで、開発者がウェブ上でデータの保存と取得を行うためのものです。ブロックチェーン以外のもので例えるとしたら、巨大企業が管理していないクラウドが最も近いものと言えるでしょう。

昔のコーダーは、C言語などで変数にアクセスするためにポインターを使っていたことを覚えているかもしれません。IPFSでは、コンテンツID(CID)という似たような機能を使って、利用可能なノードからデータにアクセスします。

ローカル・ドライブ上のファイル・アドレスを利用する代わりに、IPFS上の CIDアドレスを”ドライブ “と考えている分かりやすいです。しかし、ブラウザは本来IPFSを認識していないので、CIDをファイルとして「認識」する方法が必要になります。そのために、Textileというツールがあります。

持続的なIPFSデータストアとしてのTextileをご紹介

ブラウザがIPFSファイルに対して持つ課題は、それらが持続的ではないということです。Textileは、開発者があらゆるウェブサイトやアプリケーションに追加できるシンプルなホスト型ソリューションを提供しています。Textileは、IPFSプロトコルがすべての主流ブラウザでネイティブに利用できるわけではないにもかかわらず、IPFSデータの整理、インデックス、ピニングする方法として「Buckets」を使用することでこれを実現しています。

Bucketの設定は、Textile Hubのアカウントにアクセスするために必要なキーを保存するためのローカルシークレットファイルを作成するという簡単なものです。Textile Hubのアカウントにサインアップしてアプリの開発を開始すると、パブリックキーとシークレットキーを受け取ります。このキーをフォーマットに合わせてテキストファイルに挿入する必要があります。

TEXTILE_HUB_KEY = XXXX

TEXTILE_HUB_SECRET = XXXX

IPFS_GATEWAY = https://ipfs.io

この部分は、技術的に最も難しいかもしれません。TextileのCLIツールは、システムがBucketにアクセスするためのパブリックキーとプライベートキーを提供する必要があります。開発者がこの部分を乗り越えれば、Bucketを使ったアプリの開発は簡単にできるはずです。このテンプレートを使用し、NextJSとTextile Bucketsを使って簡単にプロジェクトを始める例を見ることができます。

Textileの統合により、あらゆる言語やフレームワークを使った開発が可能になります。開発者の中には、プロダクトにReactやVueを使いたい人もいるかもしれませんが、Angularやその他のJS実装でも問題ありません。パブリックキーとシークレットキーを使うことで、データを安全にホストすることができます。また、パブリックキーとシークレットキーを使用して、libp2p ID を生成することもできます。

アプリケーションのユーザがlibp2pキーを設定すると、Textileで設定したBucketインフラを使って、IPFSにデータをピニングすることができます。サーバの負荷や接続の質によっては、ファイルがアクセス可能になるまでに少し時間がかかることがあります。

IPFSのネットワーク上で人気のあるデータほど、より早くアクセスできるようになります。ユーザの保存したデータが長期間保存されることを証明できるものでなければならない場合、Textile BucketsはFilecoin APIをサポートしており、Filecoinネットワークで既知のストレージプロバイダとストレージ契約を結ぶことができます。しかし、ストレージプロバイダを知らない場合はどうすればいいのでしょうか?Estuaryは、あなたのデータをFilecoinネットワークに保存するための、更にシンプルなソリューションを提供することができます。

二重構造のストレージシステム

Textileでbucketにデータが追加されると、そのデータはIPFSにピニングされ、アクセス可能になりますが、そのデータは当然Filecoinチェーンには残りません。Textileが提供するIPFSゲートウェイを通じてアクセスできるデータは、Filecoinブロックチェーンに追加される必要があるため、ストレージプロバイダとストレージ契約を結なければなりません。そのデータをFilecoinネットワークにピニングするためには、EstuaryTextileのBidbotのような仲介が必要になります。

Estuaryを使えば、データをアップロードして100以上のノードにアクセスできますが、自分のデータが本当にチェーン上にあるのかという疑問が残ります。そのために簡単な検証方法があり、ファイル、CID、現在データを提供しているプロバイダを読み取ることができます。

Estuaryへのファイルのアップロードは、EstuaryのAPIを自分のアプリケーションで使用、コマンドラインを使用、またはサインインしてブラウザでファイルをドロップするなど、様々な方法があるので簡単です。

また、Estuaryでは、特定のアカウントに関連するデータを一覧表示することができます。このリストには、ユーザがアクセスできるすべてのファイルとそのCID(Filecoinネットワーク上のどのストレージプロバイダが所有しているかを含む)が表示されます。Estuaryは、アプリで使用するためにReact JSと簡単にコピーペーストできる統合機能を提供しています。もちろん、開発者は独自のAPIキーを追加する必要がありますが、ほとんどの場合、Estuaryのガイドから直接を使用して行うことができます。

ウェブストレージの新たなパラダイム

IPFSとFilecoinは相補的なシステムであり、エコシステムではTextileやEstuaryのようなツールを開発して、両者の連携を図っています。プラグインの制限が増えている中、これらのツールは、現在のブラウザでweb3.0向けに開発するための最良のソリューションの一つです。時が経ち、IPFSがより利用しやすくなるにつれ、ブラウザはネイティブな統合をサポートし続けるでしょう(参照:OperaBrave)。これらの統合が進むにつれ、TextileとEstuaryは、システムを並行して利用するための簡単な回避策を提供することでしょう。

本ブログは、www.filecoin.io/blog からの翻訳となります。

ソース: https://filecoin.io/blog/posts/using-filecoin-with-ipfs/

まずは資料請求

お忙しい経営者の方や資産運用の担当者の方に
資料送付や最適なプランのご提案を無料で行っております。

    このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。