普通人怎样在家运转以太坊2.0的节点
普通人如何在家运行以太坊2.0的节点
原文标题:《IPFS 搭建私有收集与运用》
撰文:六天
在同盟链的场景下,IPFS 作为去中间化存储的首选计划,本文将引见怎样运用 go-ipfs 搭建一个私有收集并举行简朴运用。
我的环境因为资本限定,我这里运用 docker 来搭建一个两个节点的 IPFS 私有收集。假如有条件能够直接在多台机械或许多个假造机上装置。
入手下手搭建 1、生成 swarm.keyswarm.key 是一个同享密钥,只要具有雷同密钥的节点才相互通讯,构成一个私钥收集。swarm.key 能够运用 东西 生成,东西的装置敕令是:
go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
装置完成后,生成 swarm.key,敕令是:
ipfs-swarm-key-gen /Users/sixdays/tmp/ipfs/swarm.key
个中
/Users/sixdays/tmp/ipfs/ 目次是我 ipfs 目次。 /Users/sixdays/tmp/ipfs/node1 是我 ipfs 节点 1 目次。 /Users/sixdays/tmp/ipfs/node2 是我 ipfs 节点 2 目次。 2、启动节点运转节点 1 和节点 2
// 运转节点 1 docker run -d --name ipfs_node_1 -e IPFS_SWARM_KEY_FILE=/Users/sixdays/tmp/ipfs/swarm.key -v /Users/sixdays/tmp/ipfs/node1/staging:/export -v /Users/sixdays/tmp/ipfs/node1/data:/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/go-ipfs:latest // 运转节点 2 docker run -d --name ipfs_node_2 -e IPFS_SWARM_KEY_FILE=/Users/sixdays/tmp/ipfs/swarm.key -v /Users/sixdays/tmp/ipfs/node2/staging:/export -v /Users/sixdays/tmp/ipfs/node2/data:/data/ipfs -p 4002:4001 -p 4002:4001/udp -p 127.0.0.1:8081:8080 -p 127.0.0.1:5002:5001 ipfs/go-ipfs:latest
消灭一切缺省启动节点 bootstrap
docker exec ipfs_node_1 ipfs bootstrap rm all docker exec ipfs_node_2 ipfs bootstrap rm all
检察节点 id
docker exec ipfs_node_1 ipfs id docker exec ipfs_node_2 ipfs id
这里,我节点 1 的 Id 是 :
12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
节点 1 的 address 是:
/ip4/172.17.0.3/tcp/4001/p2p/12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
节点 2 的 Id 是
12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
节点 2 的 address 是
/ip4/172.17.0.4/tcp/4001/p2p/12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
节点的 address 我用的是 docker 给分派的 ip 地点。
增加节点 id
在节点 1 中增加节点 2 地点
docker exec ipfs_node_1 ipfs bootstrap add /ip4/172.17.0.4/tcp/4001/p2p/12D3KooWRcx6gpbsbvb6YiNsDpJgnmNHFCgCiUmVF42o4zn2W5Pj
在节点 2 中增加节点 1 地点
docker exec ipfs_node_1 ipfs bootstrap add /ip4/172.17.0.3/tcp/4001/p2p/12D3KooWEVo8FqH8YUT1noXvca5hgSRWBRcDQomEcFY2zXwA7dbw
至此,我们 2 个节点的 IPFS 私有收集已搭建完成。
运用敕令
docker exec ipfs_node_1 ipfs -h
能够看到 IPFS 的基本敕令。
增加文件 add$ docker exec ipfs_node_1 ipfs add /data/ipfs/swarm.key added QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X swarm.key
个中 :
/data/ipfs/swarm.key 为 ipfs_node_1 容器的目次。
QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X 为文件 hash
检察文件 cat$ docker exec ipfs_node_2 ipfs cat QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X /key/swarm/psk/1.0.0/ /base16/ 5b9941085678c502b44cc98e2614dd648cb801115dcb6acee8e83d9bf8cf454c
能够看到我们能够在 node2 中检察到 node1 上传的文件内容。
下载文件 get$ docker exec ipfs_node_2 ipfs get QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X -o /data/ipfs/test.key Saving file(s) to /data/ipfs/test.key 95 B / 95 B 100.00% 0s
个中 -o 示意输出目次,docker 容器中的 /data/ipfs 对应我们主机目次为 /Users/sixdays/tmp/ipfs/node2/data
检察文件列表 ls$ docker exec ipfs_node_2 ipfs pin ls QmQ5vhrL7uv6tuoN9KeVBwd4PwfQkXdVVmDLUZuTNxqgvm indirect QmU5k7ter3RdjZXu3sHghsga1UQtrztnQxmTL22nPnsu3g indirect QmYCvbfNbCwFR45HiNP45rwJgvatpiW38D961L5qAhUM5Y indirect QmejvEPop4D7YUadeGqYWmZxHhLc4JBUCzJJHWMzdcMe2y indirect QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB indirect QmQGiYLVAdSHJQKYFRTJZMG4BXBHqKperaZtyKGmCRLmsF indirect QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc recursive QmQy6xmJhrcC5QLboAcGFcAE1tC8CrwDVkrHdEYJkLscrQ indirect QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn recursive
个中 recursive 示意文件夹,indirect 示意文件
参考
go-ipfs:https://github.com/ipfs/go-ipfs
ipfs-swarm-key-gen:https://github.com/Kubuxu/go-ipfs-swarm-key-gen
ipfs 文档:https://www.jianshu.com/p/e38d5f733c81
加入新手交流群:每天早盘分析、币种行情分析,添加助理微信
一对一专业指导:chengqing930520