AWS(Amazon Linux2)にIPFSをインストールする

ダウンロード

wgetでソースをダウンロードして、展開しましょう

wget https://dist.ipfs.io/go-ipfs/v0.7.0/go-ipfs_v0.7.0_linux-amd64.tar.gz

tar -xvzf go-ipfs_v0.7.0_linux-amd64.tar.gz

以下のファイルが展開されます

go-ipfs/install.sh
go-ipfs/ipfs
go-ipfs/LICENSE
go-ipfs/LICENSE-APACHE
go-ipfs/LICENSE-MIT
go-ipfs/README.md

インストール

展開されたシェルを使ってインストールします

cd go-ipfs
sudo bash install.sh

Moved ./ipfs to /usr/local/bin

インストールされているか確認します

ipfs --version
>ipfs version 0.7.0

初期処理

環境変数を設定します。これを設定しないと、ipfsのデータが$HOME配下/.ipsfに作成されます

export IPFS_PATH=/data/ipfs

ipfs格納用ディレクトリを作成する

sudo mkdir -p /data/ipfs
sudo chown ec2-user:ec2-user /data/ipfs

下記を実行してローカルのIPFSリポジトリを初期化。
profile serverをつけるとプライベートネットワーク内で他のノードを探すような通信が発生しません。

ipfs init --profile server

ホームディレクトリ配下にリポジトリが生成されます

generating ED25519 keypair...done
peer identity: キー
initializing IPFS node at /home/user/.ipfs
to get started, enter:

        ipfs cat /ipfs/xxxxxxxxxxxxxxxxxxxx/readme

GateWay設定

ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080

起動

ipfsのコマンドを使って起動します

ipfs daemon

Ctrl+cで停止できます

systemctlで管理

バッググラウンドで起動させたいので、systemctlに組み込みます。

以下のファイルを好きな場所に作成してください。(例として/opt配下に作成)

> sudo vi /opt/ipfs.sh
#!/bin/bash
ipfs daemon

実行権限を付与

sudo chmod 0755 /opt/ipfs.sh

定義ファイルを作成します

sudo vi /etc/systemd/system/ipfs.service
[Unit]
Description=ipfs
After=network.service
[Service]
Type=simple
Restart=on-success
ExecStart=/opt/ipfs.sh
Environment="IPFS_PATH=/data/ipfs"
[Install]
WantedBy=multi-user.target

SystemCtlを使って起動してみます

sudo systemctl start ipfs

正しく起動されているかstatusコマンドを使い確認します。

sudo systemctl status ipfs
● ipfs.service - ipfs
   Loaded: loaded (/etc/systemd/system/ipfs.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-09-28 05:40:42 UTC; 4s ago
 Main PID: 2654 (ipfs.sh)
   CGroup: /system.slice/ipfs.service
           tq2654 /bin/bash /opt/ipfs.sh
           mq2657 ipfs daemon

その他コマンド

他ノードとの接続状況を確認

ipfs swarm peers

addしたファイルが共有されているか確認

ipfs dht findprovs addしたファイルのハッシュ値

コメント