見出し画像

【NFT】IPFS Desktopを使って、NFTメタデータをPINしてみた

はじめましてのヒトは、はじめまして。
いつもの皆様、こんにちわ。
大葉さんです。

前回の記事

前回の記事を公開した際、✌️🐷✌️さん( https://twitter.com/PigThePersona )より、「IPFSのメタデータをPINする為のデスクトップ、アプリケーションありますよ」と、ご指摘頂きました。ありがとうございました。

さっそく、試さねば!!

なぜこの記事を書いたのか?

ipfs-desktopを利用して、自分が購入したNFTアートのメタデータをPINしたかった為です。

公式サイトである、こちらからダウンロードしましょう。

本アプリケーションはIPFSのメタデータをキャッシュする為のnodeを構築するものなので、ご自宅のサーバ等で起動することを強くお勧めします。

メタデータのバックアップ目的でノートPCに入れることもできますが、バックグラウンドで頻繁に通信を行うので、モバイル回線を利用している時間帯は、アプリケーションを落としましょう。パケット通信量が増大してしまいます。

以上が伝えたいことです。

以降では、メタデータの保存方法、PINのやり方について説明いたします。

■ipfs-desktopとはなにか?

オフィシャルサイトである ipfs.ioからリンクされている、IPFSを実装するツールのうちのひとつです。

公式サイト

正式リリースされたものは公式サイトからリンクされていますが、実際のソースは、githubにて管理されています。

Windows、Mac、Linuxに対応したGUIアプリなので、経験の浅い人でも簡単に使えます。例えばワタクシとかね!

■ipfs-desktop画面解説

詳細は公式サイトを読むのがベストです。

起動直後はこんな感じですが

しばらくすると通信が始まります。

「PEERS」をクリックすると、接続先のNode一覧が地図に表示されます。

「FILES」タブには、nodeで保有しているIPFSメタデータの一覧が表示されています。今回メインで操作するのはココです。

「EXPLORE」「SETTINGS」については今回は操作致しません、詳細は公式ガイドをご確認下さい。

■IPFSメタデータの追加

「FILES」画面にて、①「Import」をクリックし②「From IPFS」を選択します。

「File」「Folder」にて画像をアップロードしても良いのですが、該当ファイルがIPFSにアップロードされているものと一致するかの確証が得られない為、IPFSからオリジナルデータをダウンロードして来るのが確実です。

IPFS PATH(CID)の入力を求められます。入力サンプル文字列は、以下の画像を参考にしてください。CID入力方式が推奨となります。

「Qm」あるいは「baf」から始まるNFTメタデータのCIDを探し出し、入力します。

「Import」をクリックすると、「FILES」一覧に該当IPFSメタデータが追加保存されます。

追加された項目をダブルクリックして、ブレイクダウンしてみましょう。

「NFT.png」ファイルが現れました、これがNFTアートとして紐づけられる画像ファイルの実態です。フォルダとPNGファイルには、それぞれ異なったCIDが割り振られている点にご注意ください。

次に「NFT.png」をクリックすると、画像ファイルの実態を表示します。左上に現在アクセスしているファイルのパスが表示されるので、併せてご確認ください。

ここまでが、IPFSメタデータの追加方法です。大まかな流れは掴めましたか?それでは実践に入ります。

■追加するIPFSメタデータのCID探し方

はじめにメタデータ登録時に利用するCIDの確認方法について記載します。

OpenSea(※フリーズが前提)の場合

該当のNFTをOpenSeaで表示し「Details」内「Metadata」項目の右側にある「Frozen」をクリックします。

以下の2箇所の文字列をメモしてください。CIDが異なっているので、2回に分けて登録してください。片方は「json」ファイル。もう片方は「PNG」あるいは「jpeg」ファイルになります。

・Foundationの場合

該当のNFTをFoundationで表示し「View metadata」をクリックします。

以下の2箇所の文字列をメモしてください。CIDが異なっているので、2回に分けて登録してください。片方は「json」ファイル。もう片方は「PNG」あるいは「jpeg」ファイルになります。

■「Qm」から始まるCIDと「baf」から始まるCIDの違い

さて、OpenSea、Foundationで、メタデータの命名規則が異なった点にお気づきでしょうか?

Foundation:「Qmから始まる大文字小文字混在の文字列」
OpenSea:「vafから始まる全て小文字の文字列」

この差異は、CID Version 0 (v0)を利用しているか、CID Version 1 (v1)を利用しているかの差です。どちらも有効です。

公式資料

CID Version 0 (v0):
「Qmから始まる大文字小文字混在の文字列」汎用性が高いが、今後は終息に向かう予定の規格。

CID Version 1 (v1):
「大文字、あるいは小文字で統一された文字列」慣習として、今は小文字「vaf」から始まる。サブドメインに対応した新規格のため、今後はこれが主流になるが、現時点では対応していないサイトも多い。

結論は「どちら側も登録しましょう」です。下位互換性も大切なのです。

■メタデータ「JSON」「PNG」「jpeg」の違い

次の疑問です。IPFSメタデータのフォルダ内には「JSON」「PNG」「jpeg」が含まれますが、これらは全て必要なのでしょうか?

結論としては「JSONに加えて、PNGあるいはjpeg必要」です。NFTと画像ファイルを紐付ける際、現在は間に「JSON」ファイルを挟む方式が一般的となっている為です。

JSONファイルには以下のような情報が付与されています

■JSONファイルサンプル

{"image_url": "ipfs://bafybeia省略yu/image", "name": "Kimi wo matashitayo 省略 aruku", "description": "Inspired by a beautiful haiku poem written by the 省略 in Kyoto City in 2013."}

↑↑↑
黒塗り部分は、NFTとPNG /JPEGを直接紐づけた際は付与できない情報。

みなさんがお馴染みのNFTアートには、作品名やDescriptionが付与するのが一般的です。ということは、バックアップすべきメタデータは「画像そのものであるPNG/jpeg」と「文字情報を司るJSON」の2つのファイルになります。片方でも欠けてしまうと、データの再現性がなくなってしまいますので、両方保管しましょう!

■リネームのススメ

そんなわけで、JSON/PNGのふたつのメタデータを保存しました。

はい、どれがどれとペアなのか、非常にわかりにくいですね!

上記のように、リネームしてしまえば、万事解決です!
ぜひ、このオプション、活用していきましょう。

■PIN設定

ようやく本題です、長かった!

NFTアート本体となるPNGファイルを選択して、チェックボックスにチェックを入れます。

ファイルに対するアクションが出てきます。「Set Pinning」をクリックしてください。

ポップアップ画面が表示されます。

「Local node」にチェックを入れて「Apply」をクリックします。

PINが設定できました。

ちなみに、フォルダもファイルの一つとして扱われるので

画像ファイルを保管している親フォルダもPINしておきましょう。

■注意事項

(1)通信パケットを大量に消費します。

コンテンツのキャッシュサーバとして稼働させることになるので、バックグラウンドで頻繁に通信を行います。スマートフォンのテザリング等を利用していた場合、残通信パケット量が枯渇する可能性があるので、必ずWiFi /有線環境で構築してください。

(2)ローカル環境にIPFS node(ipfs-desktop含む)を構築した場合、ブラウザは、まずローカルのnodeに繋ぎに行きます。

通常はこんな感じで「ipfs.io」経由でメタデータを取得するのですが

ローカルでipfs-desktopを起動している場合は、こうなります。

IPFSはコンテンツID(CID)が同一であれば、どこからメタデータを取得して来ても良いルールなので、ファイルダウンロード元のURLが変更になりえます。これは通常のインターネット(ローケーション指向型=画像ファイルを置いてある場所(URL)は絶対に変更しない)に慣れていると違和感がありますが、コンテンツ指向型とはそういうものです。

実際に自分の目で見ると実感が湧きますね!


本日はここまで。
デワデワ!


次のお話


この記事が気に入ったらサポートをしてみませんか?