本文是设置IPFS专用网络的简单教程。根据本文,您可以建立一个简单的IPFS网络演示,并且可以在不同的节点上获得相同的文件。
其实我没必要写这个教程。GitHub上的例子写的很清楚,但是谷歌搜索相关资料,中文页面都是矿业相关的(只是大米),实际应用 (_ ) .的文章很少
环境:总共有两个节点,即主节点和子节点。
所有系统都是Ubuntu server 16.04。
下载IPFS程序:
wget?https://1 . I-book . in/ipfs/qmcb 55 knpu 1 e 8 uvqftfa 9 qtfwpthnfsmc 1n 7hg 6 C5 qyyyx 9?-哦?go-ipfs _ v 0 . 4 . 22 _ Linux-amd64 . tar . gzcopyUnzip:
tar?xvfz?go-ipfs _ v 0 . 4 . 22 _ Linux-amd64 . tar . gzcopy安装:
cd?go-ipfs/sudo?/install.shCopy您需要指定IPFS的存储位置。如果不需要,跳过直接初始化。
导出?IPFS _路径='尚力财经小编2022绝对路径'副本初始化:
ipfs?Copy如果输出以下代码,则初始化成功:
生成?2048位?RSA?密钥对.donepeer?身份:qmtvsjeh 3 xarhmuj 6 uamqwnnvbyxh 4 vjttaehkjvixjhto?得到?开始了,输入:ipfs?猫?/ipfs/QMS 4 ustl 54 uo 8 fzr 9455 qaxzwumiuhyvmcx 9 ba 8 nuh 4 uwv/read mecopy需要在所有节点上重复此步骤。
安装golang-go:
sudo?apt-get?安装?Golang-goCopy编译器:
go?得到?github.com/Kubuxu/go-ipfs-swarm-key-gencd? $ GOPATHcd?go/src/github . com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen/go?Copy生成密钥:
。/ipfs-swarm-key-gen?~/.ipfs/swarm.keyCopy这一步只在主节点上操作。
将生成的swarm.key文件转移到所有子节点~/。需要加入专用网络的ipfs文件夹。
删除默认IPFS节点:
ipfs?自举?rm?复制视图节点ID:
IPFS?复制系统会输出如下,记住ID部分:
{?ID 'qmtvtnfh 3 xarhmuj 6 uamqwnnvbzy E1 vjttaecjgbvixxjh 'PublicKey 'caaspgiwggeima 0 gcsqgsib 3 dqebaquaa 4 尚力财经小编2022 ibdwawggekaoibaqdep n7j/DSijRAT/qd 8 rtvjf 8 ncgenv 0 jtqyewdbc 9 dev MTM 8 Wu oh 2 vk 0s 3 qsvpfxnahkvgcp 5 kjwvbm 0 kzewcbuvzcrxfdtgecsj 0 cdptawqeh 40 wiuokhwyhizamez l0 q 0s 9k 8 rt 0 ivk 3 ilpapc w9 hku 1/7ms 5 ntdpvmrxohm 1 lzz?地址'null,AgentVersion 'go-ipfs/0.4.22/'“ProtocolVersion”:ipfs/0 . 1 . 0 ' }复制在主节点服务器上添加子节点:
ipfs?自举?补充?/ip4/your-node-IP/TCP/4001/ipfs/qmtvtnfh 3 xarhmuj 6 uamqwnnvbzye 1 vjtaecjgbvixjhcopy在子节点服务器上添加主节点:
ipfs?自举?补充?/ip4/your-node-IP/TCP/4001/IPFS/qmynydp5pe 64 dgtyrdci 3 xhtmqenzvbqtatinnw 6 FQ 3 accopy添加完所有节点后,使用命令IPFS daemon启动ipfs,以下输出显示启动成功,配置文件没有问题:[ daemon.go-ipfs?版本:0 . 4 . 22-回购?版本:7系统?版本:amd64/linuxGolang?版本:go1.12.7Swarm?是吗?限量?去哪?私人?网络?的?同行?用什么?那个?虫群?keySwarm?钥匙?指纹:6 AC 2 FEA 09 ce 0 c 68 a 2630 B1 f 51 f 614 dfbswarm?听力?开?/ip4/Your-Node-IP/TCP/4001s 尚力财经小编2022 warm?听力?开?/ip4/127.0.0.1/tcp/4001Swarm?听力?开?/ip4/172.17.0.1/tcp/4001Swarm?听力?开?/p2p-circuitSwarm?宣布?/ip4/Your-Node-IP/TCP/4001s warm?宣布?/ip4/127.0.0.1/tcp/4001Swarm?宣布?/ip4/172.17.0.1/tcp/4001API?服务器?听力?开?/ip4/127.0.0.1/tcp/5001WebUI:http://127 . 0 . 0 . 1:5001/webuiGateway?(只读)?服务器?听力?开?/ip4/127.0.0.1/tcp/8080Daemon?是吗?复制
网络已启动。现在测试网络的连通性。使用IPFS stats bitswap命令查看现在有多少节点连接到ipfs:bit swap?地位?提供?缓冲:0?/?256?街区?收到:0?街区?发送:1?数据?收到:0?数据?发送:23?dup?街区?收到:0?dup?数据?收到:0?通缉名单?[0?钥匙吗?合伙人?[1]Copy
其中partners是连接的节点数。因为我们现在只有两个节点,partners是1。'测试文本传输在主节点中创建一个新的文本文件:添加到ipfs网络:ipfs?补充?Test.txtCopy
输出以下字符表示文件已经上传:添加?qmpxemme 51 CX 6 dndequist 78 XP 1 zdvhfh 4 utpuyfzwnawk?test.txt15?b?/?15?b?[=========================================]100.00%猫?pxmemhme 51 CX 6 dndequist 78 XP 1 ZD VHF 4 utpuyfzwnwawkcopy
在子节点重复上述操作,输出为hello saltyleo,表示私网已连接。后记网关部分我就不写了。反正GitHub上有例子,只要iptables,nginx,域名都设置好了。至于IPFS的访问速度,我猜是GFW清理了这种P2P流量,导致国内节点可用性低,所以文件传输速度慢。这是中国的特点,没有办法解决。当加入IPFS时,小于1KB的文件只是以光速传播,大于1KB的文件会更慢。这是因为小于1KB的会直接在DHT网络广播,广播到的时候文字已经到了。大于1KB的需要先接收广播找节点找文件传输,所以会慢一些。这个协议还有很多缺点,比如节点复制。没有简单的命令,但是需要繁琐的配置才能实现。还有,我成为公网节点,流量会用得很快,平均一天十几GB。还好我的节点是宽带收费的,不然流量费烧不完。而且这个文件的播种速度太感人太慢了!