IPFS環境構築
IPFS環境構築
IPFSネットワークに接続するノードを構築します。
インストール
- Ubuntu
以下コマンドでインストールします。
# install dependencies
$ sudo apt-get update -y
$ sudo apt-get upgrade -y
# install ipfs
$ wget https://dist.ipfs.io/go-ipfs/v0.10.0/go-ipfs_v0.10.0_linux-amd64.tar.gz
$ tar -xvzf go-ipfs_v0.10.0_linux-amd64.tar.gz
$ cd go-ipfs
$ sudo bash install.sh
最後にinitプロセスを実行します。これはホームディレクトリで実行してください。
$ ipfs init
- mac
デスクトップアプリがあるのでそれでやると楽です。
起動
コマンド一つで起動できます。
$ ipfs daemon
systemdで自動起動設定
せっかくなので自動起動まで設定しましょう。
以下の手順で設定ファイルを作成します。
$ sudo cat <<EOF > /etc/systemd/system/ipfs.service
[Unit]
Description=IPFS daemon
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/
ExecStart=/usr/local/bin/ipfs daemon
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
ファイルの作成が済んだらsystemdをリロードしIPFSを有効化します。
$ sudo systemctl daemon-reload
$ sudo systemctl enable ipfs
$ sudo systemctl start ipfs
ポート
IPFSでは以下のポートを用途に応じて使用します。他ノードとの通信に用いるので4001番ポートは開放必須です。
ポート番号 | 用途 |
---|---|
4001 | 他ノードとの通信に利用 |
5001 | APIサーバーとして動作する際に利用 |
8080 | ゲートウェイとして動作する際に利用 |
おまけ:ちょっと使ってみる
GUIを表示
localhost:5001/webui
に接続するとGUIコンソールが表示されます。
ファイル操作
ファイルに関する操作
-
追加
<filepath>にあるファイルをIPFSに追加します。CIDが返ってきます。
$ ipfs add <filepath>
-
閲覧
見るだけならcatです。
<ipfs-path>
はCIDでOKです。$ ipfs cat <ipfs-path>
-
取得
ダウンロードするならgetです。
$ ipfs get <ipfs-path>
ピン操作
ピンに関する操作
-
追加
消えないように自ノードでピンします。
$ ipfs pin add <ipfs-path>
-
一覧
ピンしたファイルの一覧を取得します。
$ ipfs pin ls
-
除外
ピンを外します。
$ ipfs pin rm <ipfs-path>
自身の情報を表示
$ ipfs id
接続しているピアを取得
自身が接続しているピアの一覧を取得します。
$ ipfs swarm peers
認識しているピアを取得
自身が認識している (aware of) ピアの一覧を取得します。
接続≠認識
$ ipfs swarm addrs
任意のピアと接続
自身の属する群衆に任意ピアを接続します。
IPFSの再起動により接続が解除される可能性があります。
$ ipfs swarm connect <address>
<address> は /ip4/<IPアドレス>/tcp/4001/p2p/<ピアID> の形で表現されます。
peering subsystem
-
任意のピアを登録
peering subsystemを用いて接続します。
$ ipfs swarm peering add <address>
configで設定する場合は以下です。
... "Peering": { "Peers": [ { "ID": "<ピアID>", "Addrs": ["/ip4/<IPアドレス>/tcp/4001"] } ] }, ...
参考:
-
登録されたピアの一覧を取得
$ ipfs swarm peering ls
コンテンツ共有を確認
指定コンテンツがどのピアに共有されているかを確認します。
$ ipfs dht findprovs <CID>
例えばreadmeファイルなどを検索すると多くのピアがヒットするでしょう。
Discussion