这篇文章主要介绍了IPFS搭建私有网络与使用 ,文中通过代码以及文档配合进行讲解,很详细,它对在座的每个人的研究和工作具有很经典的参考价值。 如果需要,让我们与区块链资料网一起学习。

https://www.interchains.cc/18473.html

IPFS搭建私有网络与使用是很好的区块链资料,他说明了区块链当中的经典原理,可以给我们提供资料,IPFS搭建私有网络与使用学习起来其实是很简单的,

不多的几个较为抽象的概念也很容易理解,之所以很多人感觉IPFS搭建私有网络与使用比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来困难

IPFS搭建私有网络与使用

  • IPFS
  • 私有网络

IPFS作为去中心存储,私有网络在联盟链的场景下应用广泛。

在联盟链的场景下,IPFS作为去中心化存储的首选方案,本文将介绍如何使用go-ipfs搭建一个私有网络并进行简单使用。

一、我的环境

由于资源限制,我这里使用docker来搭建一个两个节点的IPFS私有网络。如果有条件可以直接在多台机器或者多个虚拟机上安装。

二、开始搭建

1、生成swarm.key

swarm.key是一个共享密钥,只有拥有相同密钥的节点才能互相通信,组成一个私钥网络。 swarm.key可以使用https://github.com/Kubuxu/go-ipfs-swarm-key-gen工具生成,工具的安装命令是:

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、启动节点

2.2.1 运行节点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

2.2.2 清除所有缺省启动节点bootstrap

docker exec ipfs_node_1 ipfs bootstrap rm all docker exec ipfs_node_2 ipfs bootstrap rm all

2.2.3 查看节点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地址。

2.2.4 添加节点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的基础命令。

3.1 添加文件 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

    3.2 查看文件 cat

    $ docker exec ipfs_node_2 ipfs cat QmRitSEMhFJtNhLYtwGRJvhDrTTT4gQLjuLepZjo9C8a2X  /key/swarm/psk/1.0.0/ /base16/ 5b9941085678c502b44cc98e2614dd648cb801115dcb6acee8e83d9bf8cf454c

    可以看到我们可以在node2中查看到node1上传的文件内容。

    3.3 下载文件 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

3.4 查看文件列表 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

部分转自网络,侵权联系删除www.interchains.cchttps://www.interchains.cc/18473.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 !
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » IPFS搭建私有网络与使用

提供最优质的资源集合

立即查看 了解详情