現在、私は、ひっそりこっそりIPFSとEthereumを使用したシステムを作っております。
開発していると、当然、開発中のお恥ずかしいデータをpublicなP2Pネットワークに撒き散らしたくないという熱い思いが湧いてきます。
なので、私は、EthereumについてはPrivate Blockchain、IPFSについては限定したノードのみで構成されるP2Pネットワークを作る、という形にしています。
今日は山の日、でもボク暇な日、たまにはQiitaに投稿してみるか・・・ということで、
上記のIPFSネットワーク構成する手順について、気合3割弱程度で書いてみます。
1.ノードIDをゲット
ノードとなる各マシンのIDを下記コマンドでゲットします。
ipfs id
すると、JSON形式でノードの情報が表示されます。こんな感じ。
{
"ID": "〜",
"PublicKey": "〜",
"Addresses": [
"/ip4/127.0.0.1/tcp/4001/ipfs/〜",
"/ip4/192.168.XXX.XXX/tcp/4001/ipfs/〜",
"/ip4/10.XXX.XXX.XXX/tcp/18030/ipfs/〜"
],
"AgentVersion": "go-libp2p/0.1.0",
"ProtocolVersion": "ipfs/0.1.0"
}
この中の、"Addresses" 要素のネットワーク形成にイケてる方(LAN内で閉じるなら多分2番目)のアドレスを控えます。ここは敢えて紙に。鉛筆で。
2.ノードIDをセット
下記にIPFSの設定ファイルが配置されています。
(ユーザディレクトリ)/.ipfs/config
unix系なら ~/.ipfs/config
開くと、これまたJSON形式の情報がイッパイ表示されます。
その中にある"Bootstrap"要素のリストを、控えたノードリストで置き換えます。
{
"Bootstrap": [
"〜",
"〜"
],
}
そして全力で保存。
3.ノードIDをチェック
各マシンのIPFSデーモンを再起動します。
繋がっているかどうかを下記コマンドでチェック。
ipfs swarm peers
うまく繋がっていれば、こんな感じで怒涛の勢いでノードリストが表示されます。
/ip4/192.168.XXX.XXX/tcp/4001/ipfs/〜
/ip4/192.168.XXX.XXX/tcp/4001/ipfs/〜
/ip4/192.168.XXX.XXX/tcp/4001/ipfs/〜
以上。