
ブロックチェーンの課題を解決するのではと期待がされているIPFS。
IPFSの概要や仕組みを理解している方は、実際にIPFSを使ってみたいという方が多いのでは。
そこでこの記事では、
- IPFSの使い方を知りたい方
- 実際にIPFSへのファイル共有をしてみたいという方
を対象に、IPFSの環境構築からファイルの登録方法、IPFSネットワークへのファイル共有方法までIPFSの基本的な使い方について画像を用いてわかりやすくご紹介します。
なおこの記事で筆者が活用したPCは、MacBook ProとMccBook Airの13-inchで、バージョンはCatalinaです。
IPFSの仕組みを知りたい人は「IPFS(InterPlanetary File System)とは?仕組みや技術をわかりやすく解説」の記事をご覧ください。
もくじ
IPFS(InterPlanetary File System)の使い方の流れ
IPFSの環境構築からコンテンツの共有方法までの流れは下記の通りです。
- IPFSのインストール(環境構築)
→ go-ipfsのインストール
→ IPFSリポジトリの初期化 - IPFSにファイルを登録
→addコマンドを活用し、コンテンツを登録 - コンテンツをIPFSネットワークに共有
→ daemonコマンドを実行
それでは、それぞれの操作方法を画像と一緒に紹介していきます。
IPFSの使い方①IPFSのインストール方法
まずはIPFSの環境構築の流れについて説明します。
環境構築には、
- go-ipfsのインストール
- IPFSの初期化
が必要です。
IPFSの使い方①-1:go-ipfsのインストール
①go-ipfsをインストールするために、IPFS distributionsのページに遷移し、Download go-ipfsをクリックしてください。
※こちらのボタンからダウンロードできなかった場合、上下にスクロールすると別のダウンロードボタンがありますので、ご自身のOSに対応したボタンを選択するようにしてください。
②ファイルがダウンロードされるのでクリックして開いてください。
③ファイルは、「ダウンロードディレクトリ」に保存されているのでデスクトップディレクトリに移しておきましょう。
④ターミナルを開いてください。
※ターミナルとは
ターミナルとは、Macにインストールされているコマンドラインのことです。
コマンドラインとは、プログラムを記述したファイルを読み込み、プログラムとして実行するためのツールのことです。
command + spaceでスポットライト検索を開き、ターミナルと入力しenterキーを押せばターミナルは開くことが可能です。
⑤ターミナルを開いたら、
下記の文字列(コマンド)を順番に入力してください
cd Desktop (デスクトップディレクトリに移動)
cd go-ipfs(デスクトップディレクトリ内のgo-ipfsのフォルダに移動)
pwd(現在開いているディレクトを確認 )
→実行後 Desktop/go-ipfsを表示されれば問題ないです
./install.sh(go-ipfsをインストールするためのスクリプト)
⑥インストールが完了しているか確認するため、「ipfs help」をターミナル上で入力してください。
ipfs helpを入力し、
USAGE
ipfs – Global p2p merkle-dag filesystem.
と表示されれば、インストールは成功です。
なお、「USAGE ipfs – Global p2p merkle-dag filesystem.」の下にメッセージが表示されますが、そちらは無視しても今回は問題ございません。
go-ipfsのインストールが完了したので、次にIPFSリポジトリの初期化をしていきましょう。
IPFSの使い方①-2:IPFSリポジトリの初期化
IPFSリポジトリの初期化は非常に簡単です。
ターミナルで「ipfs init」を入力してください。
ipfs initを実行することで、ホームディレクトリにフォルダが生成されます。
IPFSの使い方②コンテンツの参照方法
ipfs上で管理されているファイルを参照する際は、catコマンドを活用します。
勘の良い方はお気づきかもしれませんが、先ほどipfs initコマンドを実行した際に、
という文字列が表示されていましたね
こちらをターミナルにコピペして実行してみてください。
IPFSがみなさんを歓迎してくれていますね。
上記のような表示が出てくれば、コンテンツの参照は成功です。
IPFSの使い方③IPFSリポジトリへのファイル登録方法
①IPFSリポジトリにファイルを登録するにはまず、下記のコマンドを順番に実行してください。
echo “hello ipfs” > first-message.txt
cat first-message.txt
参考画像のように、cat first-message.txtを実行して、hello ipfsと表示されたら成功です。
②次に、addコマンドを実行してファイルを登録しましょう。
下記のコマンドを実行してください。
2つめのステップで実行した、ipfs addkコマンドはIPFSのリポジトリに、ファイルを登録するコマンドです。
実行後に表示された…
…とは、「hello ipfs」をハッシュ化した値です。
③最後に、登録されたアドレスをcatコマンドで参照してみましょう。
ipfs cat QmSoASxb8aNVGk3pNWpZvXEZTQKxjGeu9bvpYHuo5bP1VJを実行し、「hello ipfs」が表示されれば成功です。
IPFSの使い方④IPFSネットワークにファイルを共有
IPFSネットワークにファイルを共有するには、daemonコマンドを実行すれば完了です。
daemonコマンドを実行することで、IPFSネットワークにPeerとして参加することが可能で、自動的にファイルをネットワークに共有してくれます。
【必読】ファイル共有時の注意点
daemonコマンドを実行し、IPFSネットワークに接続することで、リポジトリに登録した情報がネットワーク上に公開されます。そのため、公開したくない情報はネットワークに参加する前に、リポジトリを再度初期化するようにしましょう。
リポジトリの初期化コマンド
cd ~ /.ipfs(IPFSリポジトリに移動)
rm -rf .ipfs(IPFSリポジトリのデータを削除)
ipfs init(リポジトリの初期化)
①ipfs daemonコマンドを実行
daemonコマンドを実行することで、go-ipfsがネットワークに参加しているノード自動的に探し、接続してくれます。
②ipfs swarm peersコマンドを実行し、ノードとの接続状況を確認しましょう。
ターミナル上で command + Tを実行し、下記のコマンドを順番に実行してください。
cd Desktop (デスクトップディレクトリに移動)
cd go-ipfs(go-ipfsディレクトリに移動)
ipfs swarm peers(ノードとの接続状況を確認するコマンド)
/ip4から始まる、各パラグラフが自分と接続しているノードの情報です
ちゃんとノードと接続されているのが確認できますね。
それでは最後に、先ほど作成した「hello ipfs」のファイルはちゃんと共有されているのか確認していきましょう。
③「ipfs dht findprovs ハッシュ値」を実行
ipfs dht findprovs QmSoASxb8aNVGk3pNWpZvXEZTQKxjGeu9bvpYHuo5bP1VJ(hello ipfsのハッシュ値)を実行してみましょう。
実行した後に、「QM~」という文字列が表示されれば共有は成功です。
重要ファイルがIPFSネットワークに公開されないように注意しよう
この記事では、非エンジニアの方でも理解できるように、IPFSの環境構築からファイルの共有方法までご紹介してきましたが、まとめると下記の通りです。
□ IPFSの環境構築方法
- IPFS distributionsのページでgo-ipfswpダウンロード
- ターミナルで./install.shを実行
□ IPFSのファイルの参照方法
- ipfs cat ハッシュ値を実行
□ IPFSリポジトリへのファイル登録方法
- echoコマンドを活用し、登録するファイルを作成
- ipfs add ファイル名でリポジトリに登録
□ IPFSネットワークへのファイル共有方法
- ipfs daemonコマンドでネットワークにPeerとして参加
- ipfs swarm peersコマンドで他のPeerとの接続状況を確認
- ipfs dht findprovs ハッシュ値でファイルの共有状況を確認
ファイルの共有は比較的容易に行うことが可能ですが、重要ファイルをネットワークに公開しないように注意しましょう。
自分の恥ずかしい写真や個人情報が載っているファイルを共有してしまったら、ネットワークから削除するのはほとんど不可能に近いです。
不安な方はIPFSネットワークに参加する前に、IPFSリポジトリの初期化コマンドを実行するのがオススメです。
□IPFSの使い方の参考情報
ちなみにIPFSについては、別の連載でも解説していますので、参考にしてみてください。
またこの記事は、下記サイトを参考にしながら執筆しています。
- IPFS公式HP:https://ipfs.io/
- IPFS Document:https://docs.ipfs.io/
- IPFS入門:https://ipfs-book.decentralized-web.jp/what_is_ipfs/
- コンセンサスベイス:https://block-chain.jp/ipfs/how-to-use-ipfs/