KOTET'S PERSONAL BLOG

#ipfs 惑星間ファイルシステムIPFS体験記1:セットアップ

Created: , Last modified:
#ipfs #tech #log #ipfs体験記

InterPlanetary File System“というあまりにも魅力的な名前から、 以前よりIPFSを試してみたかった。 やってみたいなーとずっと言っているだけなのもアレなので、少しづつ触っていこうと思う。 今後「IPFS体験記」として投稿するのは、その記録である。 試したことをただ時系列順に書くだけなので、参考にするには読みづらいかもしれない。

とりあえずこのサイトをIPFS上でホスティング、更新を自動化するまでを当面の目標にする。 今回はインストールからWebUIを開くまでである。

インストール

ipfsをインストール、更新するためにipfs-updateというツールが用意されているようなのでそれを使う。

IPFS Distributionsからバイナリをダウンロードしてきて、 適当なところに置く。

$ sudo cp ipfs-update /usr/bin/
$ ipfs-update -h
NAME:
   ipfs-update - Update ipfs.

USAGE:
   ipfs-update [global options] command [command options] [arguments...]

VERSION:
   1.5.1

COMMANDS:
     versions  Print out all available versions.
     version   Print out currently installed version.
     install   Install a version of ipfs.
     stash     stashes copy of currently installed ipfs binary
     revert    Revert to previously installed version of ipfs.
     fetch     Fetch a given version of ipfs. Default: latest.
     help, h   Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --verbose         Print verbose output.
   --distpath value  specify the distributions build to use
   --help, -h        show help
   --version, -v     print the version

ipfs-update versionsでインストール可能なバージョンを一覧できる。

$ ipfs-update versions
v0.3.2
v0.3.4
v0.3.5
v0.3.6
v0.3.7
v0.3.8
v0.3.9
v0.3.10
v0.3.11
v0.4.0
v0.4.1
v0.4.2
v0.4.3
v0.4.4
v0.4.5
v0.4.6
v0.4.7
v0.4.8
v0.4.9
v0.4.10
v0.4.11

できるだけ最新のバージョンをインストールする。 ipfs-update install latestでも最新版が得られるようだが、 v0.4.7-rc1のような安定版でないものをインストールしてくることがあるため、 明示的にバージョンを指定することが推奨されている。

$ ipfs-update install v0.4.11
fetching go-ipfs version v0.4.11
binary downloaded, verifying...
success! tests all passed.
install failed, reverting changes...
could not find good install location
$ mkdir ~/bin
$ echo 'export PATH=$PATH:/home/kotet/bin' >> ~/.profile
$ source .profile
$ ipfs-update install v0.4.11
fetching go-ipfs version v0.4.11
binary downloaded, verifying...
success! tests all passed.
installing new binary to /home/kotet/bin/ipfs
checking if repo migration is needed...

Installation complete!
$ ipfs version
ipfs version 0.4.11

~/binがあるとそこにインストールしてくれるようだ。

ipfs init

“global local object repository"なるものを作ってくれるらしい。 globalなのかlocalなのかはっきりしてほしい。

$ ipfs init
initializing IPFS node at /home/kotet/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmcEYwrw73GpQrxDBN9Zn4y2K9S6f1epQNGrttXa3ZRPeg
to get started, enter:

	ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

readmeを読む

先ほど言われたとおりにしてみる。

$ ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!

-
| Warning:                                              |
|   This is alpha software. Use at your own discretion! |
|   Much is missing or lacking polish. There are bugs.  |
|   Not yet secure. Read the security notes for more.   |
-

Check out some of the other files in this directory:

  ./about
  ./help
  ./quick-start     <-- usage examples
  ./readme          <-- this file
  ./security-notes

ここに貼り付けたものは表示が崩れてしまっているかもしれないが、自分の環境ではちゃんといい感じになっている。

logo

デーモンの起動

ログイン時にipfs daemonしてくれるようにする。

~/.config/systemd/user/ipfs.service

[Unit]
Description=IPFS daemon
After=network.target

[Service]
ExecStart=/home/kotet/bin/ipfs daemon
Restart=on-failure

[Install]
WantedBy=default.target
$ systemctl --user enable --now ipfs
Created symlink from /home/kotet/.config/systemd/user/default.target.wants/ipfs.service to /home/kotet/.config/systemd/user/ipfs.service.

http://localhost:5001/webuiをブラウザで開く。

webui

無事に"Fancy Web Console"を開くことができた。 “Connections"を見ると、接続中のPEERの数が100から500くらいの間で増えたり減ったりしている。 しかしコンピュータのファンの音が少し大きくなり、ちょっとリソースを使い過ぎな気もする。 今日はここまでにする。 次回は設定を確認してみようと思う。

読んだもの