![見出し画像](https://assets.st-note.com/production/uploads/images/78856417/rectangle_large_type_2_a5ff4cba28155500c6f3bd311a9f6b02.png?width=800)
【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画面解説
詳細は公式サイトを読むのがベストです。
起動直後はこんな感じですが
![](https://assets.st-note.com/img/1652105402019-LMwxgKc8Cr.png?width=800)
しばらくすると通信が始まります。
![](https://assets.st-note.com/img/1652105561194-xT24O63EM8.png?width=800)
「PEERS」をクリックすると、接続先のNode一覧が地図に表示されます。
![](https://assets.st-note.com/img/1652106214753-vWIYKPLANN.png?width=800)
「FILES」タブには、nodeで保有しているIPFSメタデータの一覧が表示されています。今回メインで操作するのはココです。
![](https://assets.st-note.com/img/1652106454066-rFd3ydBd4r.png?width=800)
「EXPLORE」「SETTINGS」については今回は操作致しません、詳細は公式ガイドをご確認下さい。
■IPFSメタデータの追加
「FILES」画面にて、①「Import」をクリックし②「From IPFS」を選択します。
「File」「Folder」にて画像をアップロードしても良いのですが、該当ファイルがIPFSにアップロードされているものと一致するかの確証が得られない為、IPFSからオリジナルデータをダウンロードして来るのが確実です。
![](https://assets.st-note.com/img/1652190944289-jZeD20vyqQ.png?width=800)
IPFS PATH(CID)の入力を求められます。入力サンプル文字列は、以下の画像を参考にしてください。CID入力方式が推奨となります。
![](https://assets.st-note.com/img/1652191715683-jdTTXzNQ8k.png?width=800)
「Qm」あるいは「baf」から始まるNFTメタデータのCIDを探し出し、入力します。
![](https://assets.st-note.com/img/1652192391114-yAiH9C3hqE.png?width=800)
「Import」をクリックすると、「FILES」一覧に該当IPFSメタデータが追加保存されます。
![](https://assets.st-note.com/img/1652192670569-nsqDJSCSev.png?width=800)
追加された項目をダブルクリックして、ブレイクダウンしてみましょう。
![](https://assets.st-note.com/img/1652192814227-zzALJmIEPC.png?width=800)
「NFT.png」ファイルが現れました、これがNFTアートとして紐づけられる画像ファイルの実態です。フォルダとPNGファイルには、それぞれ異なったCIDが割り振られている点にご注意ください。
次に「NFT.png」をクリックすると、画像ファイルの実態を表示します。左上に現在アクセスしているファイルのパスが表示されるので、併せてご確認ください。
![](https://assets.st-note.com/img/1652193117787-AJ1wsxDBbZ.png?width=800)
ここまでが、IPFSメタデータの追加方法です。大まかな流れは掴めましたか?それでは実践に入ります。
■追加するIPFSメタデータのCID探し方
はじめにメタデータ登録時に利用するCIDの確認方法について記載します。
・OpenSea(※フリーズが前提)の場合
該当のNFTをOpenSeaで表示し「Details」内「Metadata」項目の右側にある「Frozen」をクリックします。
![](https://assets.st-note.com/img/1652194440279-2ECZKHBVzr.png?width=800)
以下の2箇所の文字列をメモしてください。CIDが異なっているので、2回に分けて登録してください。片方は「json」ファイル。もう片方は「PNG」あるいは「jpeg」ファイルになります。
![](https://assets.st-note.com/img/1652194948459-fFWUuF7abr.png?width=800)
・Foundationの場合
該当のNFTをFoundationで表示し「View metadata」をクリックします。
![](https://assets.st-note.com/img/1652195254689-FmQ3TXMYpa.png?width=800)
以下の2箇所の文字列をメモしてください。CIDが異なっているので、2回に分けて登録してください。片方は「json」ファイル。もう片方は「PNG」あるいは「jpeg」ファイルになります。
![](https://assets.st-note.com/img/1652196109470-9N0PyvG7JA.png?width=800)
■「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のふたつのメタデータを保存しました。
![](https://assets.st-note.com/img/1652280794659-tYkAWB5M0F.png?width=800)
はい、どれがどれとペアなのか、非常にわかりにくいですね!
![](https://assets.st-note.com/img/1652280908990-JWfmuueqkh.png?width=800)
上記のように、リネームしてしまえば、万事解決です!
ぜひ、このオプション、活用していきましょう。
■PIN設定
ようやく本題です、長かった!
NFTアート本体となるPNGファイルを選択して、チェックボックスにチェックを入れます。
![](https://assets.st-note.com/img/1652922700104-hAg6umuokd.png?width=800)
ファイルに対するアクションが出てきます。「Set Pinning」をクリックしてください。
![](https://assets.st-note.com/img/1652922912526-UJRQ3qCPPf.png?width=800)
ポップアップ画面が表示されます。
![](https://assets.st-note.com/img/1652923028821-jtwJpfxf4x.png?width=800)
「Local node」にチェックを入れて「Apply」をクリックします。
![](https://assets.st-note.com/img/1652924015693-GkgPg7drPP.png?width=800)
PINが設定できました。
![](https://assets.st-note.com/img/1652924462019-e4PNEXJalH.png?width=800)
ちなみに、フォルダもファイルの一つとして扱われるので
![](https://assets.st-note.com/img/1652924631855-apVUnkKkx0.png?width=800)
画像ファイルを保管している親フォルダもPINしておきましょう。
![](https://assets.st-note.com/img/1652924695215-C1EJlOsHXM.png?width=800)
■注意事項
(1)通信パケットを大量に消費します。
コンテンツのキャッシュサーバとして稼働させることになるので、バックグラウンドで頻繁に通信を行います。スマートフォンのテザリング等を利用していた場合、残通信パケット量が枯渇する可能性があるので、必ずWiFi /有線環境で構築してください。
(2)ローカル環境にIPFS node(ipfs-desktop含む)を構築した場合、ブラウザは、まずローカルのnodeに繋ぎに行きます。
通常はこんな感じで「ipfs.io」経由でメタデータを取得するのですが
![](https://assets.st-note.com/img/1652926136361-xE3yTpBPB0.png?width=800)
ローカルでipfs-desktopを起動している場合は、こうなります。
![](https://assets.st-note.com/img/1652926124467-3tAF1Q5aSq.png?width=800)
IPFSはコンテンツID(CID)が同一であれば、どこからメタデータを取得して来ても良いルールなので、ファイルダウンロード元のURLが変更になりえます。これは通常のインターネット(ローケーション指向型=画像ファイルを置いてある場所(URL)は絶対に変更しない)に慣れていると違和感がありますが、コンテンツ指向型とはそういうものです。
実際に自分の目で見ると実感が湧きますね!
本日はここまで。
デワデワ!
次のお話
この記事が気に入ったらサポートをしてみませんか?