8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IPFSのゲートウェイについて理解する

Last updated at Posted at 2022-02-02

IPFSとは

IPFSとは分散型のファイルストレージです。

一般的なファイルストレージでは、URLではデータの保存場所を指定しているのに対して、IPFSではContent Addressingというデータのハッシュ値でデータを指定する仕組みが使われています。この仕組みによって、取得できるデータは改ざんされていないデータということが検証可能になっています。

この記事は主に、IPFSのゲートウェイについて理解することを目的としています。IPFSの公式ドキュメントをもとに記載しているので、こちらのドキュメントも併せてご覧いただければと思います。

IPFSのゲートウェイとは何か

ゲートウェイの役割を理解するために、まずはIPFSのデータをProtocol Labが提供するゲートウェイを使って取得してみましょう!

上記のURLにアクセスすると

hello worlds

というデータが返ってくると思います。

上記のURLはほとんどのブラウザでアクセスできると思います。

それでは次に、ゲートウェイを使用せずに、IPFSのプロトコルでデータを取得してみましょう!

ipfs://QmZ4tDuvesekSs4qM5ZBKpXiZGun7S2CYtEZRB3DYXkjGx

もしBraveOperaのようなIPFSのプロトコルに対応しているブラウザを利用している場合はデータを取得できると思いますが、Google ChromeやSafariなどのブラウザを使用している場合はデータを取得できないと思います。

ゲートウェイを利用することで、ロケーション形式のHTTP/HTTPSでデータを取得できるようになる、というメリットがありますが、ゲートウェイがMiddle Manとして仲介する構造になるので、単一障害点となりデータを取得できなくなるリスクや、不正のリスクがあると考えています。

NFTに設定するときはどちらがおすすめ?

出品したいマーケットプレイスや利用するサービスがipfsの形式に対応している場合は、ipfs形式(ipfs://)でNFTのToken URIや、画像や動画等のデータを指定した方がいいと考えています。

OpenSeaはこちらのドキュメントに記載されてるようにIPFS形式のデータに対応しています。

また、ゲートウェイも使わざるを得ない場合も、Procol Labが提供しているhttps://ipfs.io/ipfs/[CID] には、IPFSの公式ドキュメントにも下記のような記載があり、サービスで利用することを想定したゲートウェイではないようです。

Can websites rely on the ipfs.io gateway for hosting?
No. Websites should not rely on the ipfs.io gateway for hosting of any kind. The ipfs.io gateway is a community resource run by Protocol Labs to help developers build on IPFS. Users of the ipfs.io gateway must use resources sparingly. Protocol Labs will throttle or ban users who overuse or misuse community resources, including relying on the ipfs.io gateway for website hosting or violating the Community Code of Conduct.

ですので、ゲートウェイを使用せざるを得ない場合は、Pinataや、NFT Storageなどの、NFTのストレージのためにゲートウェイを提供しているサービスから自分が信頼できると思ったサービスを利用するか、自分で管理することも選択肢に入ってくると思います。

最後に

IPFSは全てのブラウザやアプリがIPFSをネイティブサポートする未来を目指しているので、IPFSを利用する場合は、その未来がくることを想定して、IPFS形式でデータを利用するのがいいのかなと個人的には考えています。

このあたりは人によって見解が違うと思うので、ご意見あればコメントいただければと思います。

それでは、お読みいただきありがとうございました!

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?