# IPFSでデータを永続化するには **Published by:** [masia](https://paragraph.com/@masia02-2/) **Published on:** 2023-02-16 **URL:** https://paragraph.com/@masia02-2/ipfs ## Content IPFSにファイルをインポートしてもピンしないと消えてしまう。ジェネレーティブNFTのため10000枚のそれなりの解像度の画像をまとめて10GB近い容量をIPFSにアップした。利用したピニングサービスはPinataが無料だったので使っていたが…Pinata無料枠1GBまでで有料化。 https://www.pinata.cloud/ すでに一部NFTで無料mintで配っており、利益を生み出しておらず、PICNICプランの毎月20ドルの支払いはきつい。けど消したくなかったので延命方法を調べてみた。Infura無料枠5GBまでだったので見送り。 https://www.infura.io/Web3 Storageこれも無料枠5GBまでだったので見送り。 https://web3.storage/Storj問い合わせすればIPFS Pinningさせてもらえるようだったので、申請したがやり取りがうまくいかず諦めた。 https://www.storj.io/ipfsFilebase無料枠5GBまで スタータープランがたしか 5.99ドル/月 だったので一旦こちらに移して様子をみていた。 https://filebase.com/ IPFSピン同期はこちらを利用すると楽でした。いろんなピンニングサービスのAPIを設定すればそれぞれどうしで同期できるようです。 https://filebase.github.io/ipfs-pin-sync/ https://docs.filebase.com/ipfs/ipfs-pin-sync しかし、Filebaseのスタータープランがしれっと20ドル/月に値上げしたようでその請求メールがきたため、再度調べ直した。▼この記事をみつけて希望が持てました!https://spotlight.soy/detail?article_id=100gslmyy永続化するためにそもそもNFTの画像とかpinしてもらっている画像の元データは大切にバックアップしてとっておく。IPFSネットワーク上でファイルが消失したらバックアップしてあるファイルを他のノードにpinするファイル自体はネットワークにキャッシュされるので本当に四六時中動かしておく必要はないはずです。たしかに全く同じデータをIPFSにインポートすれば同じコンテンツID(CID)になる。定期的にBraveを使ってる間つないでおけるならなんとかなるかと試してみた。IPFS Desktop以前試して常に動かしておくのはきついなとそれから使っていなかったが、見直すとシンプルで良くできたアプリだなと。 CIDを入力すればIPFSからインポートもできる。 https://docs.ipfs.tech/install/ipfs-desktop/ Braveブラウザにこの機能拡張を入れて、My Nodeボタンを押して表示されるページも同じです。頻繁にBrave使っている人なら確かに手軽にできて良いかも。 https://chrome.google.com/webstore/detail/ipfs-companion/nibjojkomfdiaoajekhjakgkdhaomnch ChromebookのLinux環境に入れたBraveでも問題なく利用できました。 でもIPFSにインポートはその分のハードディスク容量を食う。起動時は重く感じるし、通信量も多くなるので外ではきついかな。 Raspberry Pi 3が眠っていたのでこれでIPFSノードにピンできれば常に動かしておいても比較的静かにローコストで有効利用できるのではと思い試した。 Raspberry Pi にはBraveをインストールできないので少し難しいが、 下記を参考にしてできた! https://spotlight.soy/detail?article_id=vu0r0rk2j&utm_source=pocket_saves しかしRaspberry Pi 3では重いようで、4が良さそう。NFT storageそもそもこれをまず最初から使うべきだった。 今のところ無料で無制限にピンできるサービス。 https://nft.storage/ ちなみにCIDは2バージョンあり、アップロードするとバージョン1で表示される。 $VERSION_ZERO_CID Qm〜 $VERSION_ONE_CID ba〜https://nftstorage.link/ipfs/$VERSION_ZERO_CID にアクセスすると、 https://$VERSION_ONE_CID.ipfs.nftstorage.link にリダイレクトされるので、同じ CID かどうかを HTTP ゲートウェイで確認することができます。https://github.com/nftstorage/nft.storage/issues/2114 上記CIDのバージョン違いに最初つまずいたが、それでも同じデータをアップロードすれば同じCIDになるはずが、 クラウドストレージにバックアップしてたんですが、勝手に圧縮されてたりしたのかな?もしくは容量が大きいのでうまくアップできないのか、IPFSからダウンロードしたファイルも試したはずだが、なぜか何度やっても同じCIDにならなかった。 IPFSからCIDを読み込む機能があれば間違いないのだが無いので見送っていたのだが、 IPFS DesktopもしくはBraveの機能拡張に入れたIPFS CompanionのMy NodeでSet Pinninngする時、ローカルの他に設定で他のピニングサービスをAPIで追加できる。そこにNFT.storageのAPIを追加してみたら繋がった!Set PinningNFT.storageサイトのFilesに追加された。アーカイブ済みに赤ピンが付いているが、ストレージプロバイダは、Queuing、Sizeは0B。アップじゃなく読み込んだからか?このアップロードのコンテンツは、ファイルコインに冗長的に保管するために集約されています。Filecoinの取引は、アップロードから48時間以内に有効になります。キューイング中も、データはIPFSネットワーク上で利用可能です。NFT.storageは、その名の通りNFTの素材データはOKだが、HTMLなどのサイトデータはエラーになるようです。そこでFleekIPFSにサイトをアップするなら、Fleekが良いです。 https://fleek.co/ 以前書いた記事がありましたので参考にどうぞ。 https://mirror.xyz/masia02.eth/VuFnlmMn1WP-XVRlSRc7xmJjthAzq2d4Y3prKyyZ6O0 Unityもいけますね。 https://mirror.xyz/masia02.eth/yXOMNIUMYOYdCPO_FWAOZduieexISCLKhwvwbrz1YDcEstuaryそんなこんなでこのピニングサービスを見つけた。 今のところ無料で32GiB使える。申請が応募フォームだったが、取り急ぎ使いたい旨を入力し送信したらすぐにメールが来て使えるようになった! IPFSからCIDでインポート可能。 https://estuary.tech/ とりあえずこれが動いているうちは安心かな。Lighthouse一度料金を払えばデータを永久保存してくれるArweaveのようなサービスらしいのでデータを入れてみたが容量が大きいせいかアップローディングバーが止まってるような… https://www.lighthouse.storage/まとめAWSなどのサーバーでIPFSノードを立てて運用できれば良いでしょうが、ゴリゴリのエンジニアでは無い私は先日仲間に「会社のAWSが乗っ取られて多額の請求がきたらしい」って話を聞いて、サーバー立てずにローコストでなんとかなりそうなので、今度気が向いたらチャレンジしてみたいなと思った。 非エンジニアでもIPFS Desktopをインストールもしくは、Braveの機能拡張にIPFS Companionを入れれば簡単にIPFSを使うことができる。 まずは、NFT storageにアップしましょう。 そしてその他のピンサービスにも無料枠に収まるなら入れておくと良いでしょう。 IPFSネットワーク自体は亡くならなくとも、以前あったはずのピンサービスが終了したり有料化でピンが外される場合もあるので複数ピンすると安心です。 購入したお気に入りのNFTのデータがIPFSにアップされていたら、自らピンしたり 良いデータならみんなでピンしあって永続されるP2Pの仕組みだなと再認識しました。おまけストレージのまとめサイトがありました。 https://storage.market/ powered by Protocol LabsだからIPFS,Filecoin押しと思うが、dfinityのストレージが載ってないな… もしもっと良いサービスがあるとか質問がある方はこちらで https://discord.gg/Cfywb3aNWg ## Publication Information - [masia](https://paragraph.com/@masia02-2/): Publication homepage - [All Posts](https://paragraph.com/@masia02-2/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@masia02-2): Subscribe to updates - [Twitter](https://twitter.com/masia02): Follow on Twitter