IPFS を使用して NFT を保存およびホストする方法 (チュートリアル)

IPFS を使用して NFT を保存およびホストする方法 (チュートリアル)

長期間保存でき、改ざんも防止できるのがNFTの核となる価値の一つです。残念ながら、現在消費者向けの NFT の多くは、設計上の根本的な欠陥により、これらの特性を備えていません。一部の NFT が「ブロックチェーン上に永久に存在する」と主張することはよくありますが、実際にはコストとブロックチェーンのストレージ容量の制限により、関連する NFT の所有権記録とメタデータのみが保存されます。

多くの場合、これらのリンクは脆弱であり (https://www.vice.com/en/article/pkdj79/peoples-expensive-nfts-keep-vanishing-this-is-why)、HTTP プロトコルを使用して、ユーザーを資産自体ではなく特定の場所に誘導します。つまり、リンク先のコンテンツは将来無効になったり変更されたりして、元の資産が失われる(所有権の記録だけが残り、価値がなくなる)可能性があります。

IPFS はこの問題を解決でき、IPFS を使用する NFT は利点を享受できます。ただし、既存の標準に準拠することによってのみ、データをより適切に保存し、永続的にアクセスできるようになります。 NFT の人気が急速に高まっている今こそ、IPFS で NFT データを保存およびリンクするためのベスト プラクティスを確認する良い機会です。この記事では、コンテンツ アドレス指定とデータ整合性という最近の 2 つのホットなトピックについて説明します。 IPFS ドキュメント サイトには、詳細を学習するのに役立つ新しいセクション「IPFS で NFT データを保存するためのベスト プラクティス」(https://docs.ipfs.io/how-to/best-practices-for-nft-data/) があります。

コンテンツアドレス指定

IPFS コンテンツ識別子 (CID) は、コンテンツがどこにどのように保存されているかに関係なく、コンテンツを正確に識別できる非常に強力で柔軟性の高い機能です。これらの利点を最大限に活用するには、開発者は IPFS データをリンクするときに次の推奨事項と規則に従う必要があります。

リンクの概要

これは CID の包括的な説明ではありません (これについては既に優れた資料があります (https://docs.ipfs.io/how-to/address-ipfs-on-web/#dweb-addressing-in-brief))。しかし、この記事の目的は、読者に以下の点を理解してもらうことです。

CID

CID は自己記述型であり、あらゆるコンテンツの一意の識別子です。

例: bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

CID は、アプリケーション コードや IPFS を明示的に使用するその他のコンテキストで使用する必要があります。

特に書き込まれて変更されることのないメタデータやブロックチェーン レコードでは、ディスク上に保存するために CID を IPFS URI に変換することをお勧めします。 CID に ipfs:// URI 形式を追加すると、コンテキスト情報が追加され、ユーザーや自動ツールがリンクされたコンテンツを見つけやすくなります。

IPFS URI

Uniform Resource Identifier (URI) (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier) は、プロトコル内の特定のコンテンツを指定するために使用されます。プロトコルは、URI の形式 (URI のプレフィックスとして :// とともに追加されます) によって決まります。 IPFS の URI 形式は ipfs です。場合によっては、URI の末尾にパスが追加されることがあります。

例:

ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

IPFS URI は、ファイルまたはディレクトリへの標準の IPFS リンクです。スマート コントラクトから IPFS データにリンクする場合、IPFS URI は、データが IPFS システムを通じて取得される必要があることを示します。

IPFS URI は、NFT の構造化メタデータ内の IPFS 上の画像やその他のメディア リソースにリンクする場合にも使用する必要があります。

HTTP ゲートウェイ URL

HTTP ゲートウェイ (https://docs.ipfs.io/how-to/address-ipfs-on-web/#http-gateways) は、IPFS URI をネイティブに解決できない古いブラウザとの互換性を保つのに役立ちます。このリンクはアプリケーションのインターフェースでのみ使用し、ブロックチェーンや NFT のメタデータには保存しないでください。

例: https://dweb.link/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

HTTP ゲートウェイはコンテンツ配信を集中管理し、中間者攻撃の媒介となる可能性があり、単一障害点となる可能性があることに注意してください。ゲートウェイ オペレーターがオフラインになったり接続が失われたりすると、リンクが失敗します。 IPFS サポートが組み込まれたブラウザ (IPFS Companion ブラウザ拡張機能、または Brave などのネイティブ サポート) では、このようなリンクから CID を自動的に抽出し、ユーザーの設定に基づいて IPFS からデータを読み込むことができるため、これらの問題を回避できます。

さまざまなシナリオでの対処

さまざまなシナリオにおいて、開発者は特定の状況に応じて適切なリンク設定を使用する必要があります。

オンチェーン

NFT スマート コントラクト上の NFT に対応するリソースとメタデータには、IPFS URI を使用する必要があります。

例: ipfs://bafybeibnsoufr2renqzsh347nrx54wcubt5lgkeivez63xvivplfwhtpym/metadata.json

NFT を生成する前に IPFS URI を生成し、URI 全体をオンチェーンに保存することをお勧めします。これは、URI を渡すスマート コントラクト インターフェースの最もシンプルなアプローチです。また、ipfs:// の URI 形式により、アプリケーションはこのデータが IPFS 上にあることを認識します。

メタデータ

NFT のメタデータでは、テキスト内の IPFS リソースにリンクするための最も明確で長期的な信頼性の高い方法である IPFS URI を使用する必要があります。

NFT メディア アセットにリンクする IPFS URI の例を次に示します: ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4。

開発者は、互換性を確保するためにパブリック HTTP ゲートウェイ (https://docs.ipfs.io/how-to/address-ipfs-on-web/#http-gateways) を使用できます。

コンテンツにリンクする他の方法 (IPFS 以外の HTTP ゲートウェイからの URL など) も避ける必要があります。通常の HTTP リンクは、リンクのコンテンツが簡単に変更される可能性があるため、せいぜい一時的なコンテンツのミラーとしてしか機能しません。ブロックチェーンでは、データは永続的に保存され、改ざんできないため、チェーン上で HTTP を使用すると脆弱になり、障害が発生するリスクがあります。

対照的に、IPFS URI は永続的であり、データへの正規リンクとして安全に使用できます。 IPFS URI を「真実のソース」リンクとして使用することで、アプリケーションは新しいゲートウェイ リンクを生成するだけで、複数の異なるストレージ ソリューションを使用したり、将来的に別のゲートウェイに切り替えたりすることが容易になります。これは、特定のゲートウェイ リンクをブロックチェーンの永続的な記録に「ハードコーディング」するよりも柔軟性があります。

応用

ユーザー向けアプリケーションでは、開発者は次の 2 つの方法で IPFS コンテンツにリンクする必要があります。

1. IPFS URI

2. HTTPゲートウェイURL

より多くのブラウザが IPFS URI をネイティブにサポートするまで。これらのリンクは両方とも、生の CID または IPFS URI から簡単に生成されることに注意してください。

以下は、パブリック dweb.link を指す HTTP ゲートウェイ URL です。

https://dweb.link/ipfs/bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

CID を URL パスに入れる代わりに、サブドメインとして使用することもできます。

https://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta.ipfs.dweb.link/nft.mp4

どちらの例も、標準の IPFS URI ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4 に対応しています。

データの整合性

NFT 資産に関する重要な点は、資産自体と関連するすべてのデータの整合性です。 IPFS は CID を使用して NFT データの整合性を保護し、リンクが作成されてから改ざんされていないことを確認します。

開発者は、IPFS の組み込みデータ検証機能の有効性を最大限に高めるために、次の提案に従う必要があります。

アセットメタデータのリンク

メタデータは NFT の価値の不可欠な部分です。したがって、資産の価値を維持するためには、資産を IPFS に保存するときにメタデータも保存し、両方にアクセスできるようにする必要があります。

この目標を達成するための推奨される方法は次のとおりです。

1. 2つの新しいディレクトリを作成します(1つはアセット用、もう1つはメタデータ用)

2. カタログにアセットを追加する

3. IPFSにアセットディレクトリを追加し、そのCIDを記録する

4. 対応するディレクトリにメタデータを作成し、手順3のCIDを使用してIPFS URIを作成します。URIには、ディレクトリのCIDとアセットファイル名を含める必要があります。

5. メタデータ ディレクトリを IPFS に追加し、その CID を記録します。

6. ステップ5のCIDを使用してメタデータのIPFS URIを作成し、URIをオンチェーンに保存し、所有権レコードを追加します。

このプロセスにより、開発者はリンクにファイル名を含めることができるため(ユーザーがリンクを操作しやすくなります)、メタデータとアセットを独立して使用できるようになります。

  • メタデータは次の場所からアクセスできます: ipfs://{メタデータディレクトリのCID}/metadatafilename

  • アセットは次のアドレスからアクセスできます: ipfs://{アセットディレクトリのCID}/アセットファイル名

以下は、画像ファイルにリンクする IPFS URI を含む JSON メタデータの例です。

この画像には、IPFS URI ipfs://bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpeg` を使用してアクセスできます。ユーザー インターフェイスでは、アプリケーションは、ユーザーが HTTP を使用してイメージを取得できるようにゲートウェイ URL (https://dweb.link/ipfs/bafybeidfjqmasnpu6z7gvn7l6wthdcyzxh5uystkky3xvutddbapchbopi/no-time-to-explain.jpeg など) を作成できます。

メタデータが作成され、IPFS 上に JSON ファイルとして保存されると、その CID を使用して ipfs://bafybeibnsoufr2renqzsh347nrx54wcubt5lgkeivez63xvivplfwhtpym/metadata.json などの URI を作成できます。この URI はスマート コントラクトに保存できます。

プロセス全体の実際の例は、IPFS ドキュメント Web サイト「IPFS で NFT を発行する方法」(https://docs.ipfs.io/how-to/mint-nfts-with-ipfs/#a-short-introduction-to-nfts) で確認できます。ドキュメントでは、JavaScript を使用してプロセス全体を詳細に示します。

高可用性

IPFS のような分散型ネットワークを使用してコンテンツを提供する主な理由の 1 つは、リンク腐敗 (https://en.wikipedia.org/wiki/Link_rot) を防ぐことです。これは、ネットワーク内の他のノードがデータミラーリング サービスを共同で運用することによって実現されます。しかし、データの可用性に対する要件が高い開発者は、他のノードの利他主義に依存すべきではありません。リンクされたコンテンツが利用可能であることを保証するには、開発者はコンテンツの CID を独自のストレージ ノードにピン留め (https://docs.ipfs.io/concepts/persistence/) し、協力してくれるノードを使用してコンテンツを保存および配布する必要があります。必要に応じて、開発者はピンニング サービス (https://docs.ipfs.io/how-to/work-with-pinning-services/) を使用して、代わりに操作することもできます。


<<:  4.24新インフラブロックチェーンサミット特別セッションが成功裏に終了しました

>>:  バイデン氏の増税がなぜ通貨価格の急落を引き起こしたのか?中国は暗号通貨で投機する際に税金を支払う必要がありますか?

推薦する

ファイルコインウィークリーレポート89:金星採掘関連コードが独自に開発されている

この記事は元々IPFS Force Zoneによって書かれましたプロジェクト紹介 [プロジェクト紹介...

2016年第1回世界ブロックチェーン会議: 中国政府指導者がブロックチェーンを賞賛、ビットコインが輝く

中国政府はブロックチェーン技術の可能性を新たな観点から捉えている。これは、今週長沙で2日間にわたって...

中国政府がビットコインを抑圧する可能性が最も低い政府である理由

ビットコインの潜在的なリスクの中で、政策リスクは常に最も頻繁に言及されるリスクの 1 つです。ビット...

CEO ヴォーヒーズ氏、ビットコインの成長を背景にビットコインの価格を予測

Golden Finance News -ビットコインの現在の成長傾向を踏まえ、取引所の CEO (...

インドでのビットコインの導入は勢いを増しているが、中国を抜いてナンバーワンになるだろうか?

ビットコインの新たな展開は、ビットコインの次の焦点になりつつある人口の多い国、インドに注目が集まって...

ブロックチェーンで世界最大のスーパーコンピュータを構築する方法

クレイジー解説:現在、多くの分野や業界では、大量のデータ集約型およびコンピューティング集約型のアプリ...

取引所はEOSメインネットのアクティベーションを一時停止。約100万EOSが盗まれた

IMEOSによると、EOSメインネットの立ち上げ時に、大量のEOS秘密鍵がハッカーによって盗まれたと...

初リリース | SushiSwapは8億8000万ドルの市場暴落に直面している。スムーズに通過できるでしょうか?

要点4月末からSUSHIトークンが大量にリリースされる予定SushiSwapコミュニティはトークンの...

外国メディア:ウクライナの政治家や官僚が暗号通貨に多額の投資をしている

9月19日のニュースによると、ウクライナの政治家や政府関係者が提出した個人資産申告書によると、多くの...

フォースリサーチ |収益性を達成するには、どのくらいの FIL を担保にする必要がありますか?

この記事は元々 IPFS Force Zone の Tony によって書かれました。筆者は以前、ある...

ビットコインがブロックされない理由

著者 |顧孟廷、転載の際は出典を明記してください多くの国がビットコインなどの暗号通貨に対して厳しい規...

手数料のリアルタイム返金、トランザクションマイニングプラットフォーム Catex はどのようにして革新と破壊を実現するのか (登録受付中)

トランザクションマイニングモデルは、暗号通貨業界ではよく知られていると考えられています。 Fcoin...

需要の促進は暗号資産の評価にどのような影響を与えますか? BTC、ETH、TRON を再考する

今年初め、暗号通貨KOLのポリニャは、ETHのさまざまな需要促進要因をリストアップし、各要因の重要性...

意見:DeFiは単一のイーサリアムフレームワークに限定されるべきではない

急成長を遂げている分散型金融(DeFi)の世界はここ数週間で新たな高みに達し、DeFiエコシステムに...

DAOがハッキング:コードの脆弱性により6000万ドル相当のイーサが盗まれる

クレイジー解説: DAO の脆弱性問題に新たな進展がありました。ハッカー攻撃により大規模な売りが起こ...