手摸手部署IPFS(星际文件系统)

简介: 手摸手部署IPFS(星际文件系统)

前言


部署完UniSwap之后, 也要看一看备受推崇的IPFS, UniSwap的前端项目uniswap-interface就是基于此部署的


简介


官网地址, 星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs在开源社区的帮助下发展。其最初由Juan Benet设计。目标是为了补充(甚至是取代)目前统治互联网的超文本传输协议(HTTP)


启动


需要两个挂载目录 /data/ipfs/export > 导入目录 /data/ipfs/data > ipfs的存储文件

docker run -d --name ipfs_host -v /data/ipfs/export:/export -v /data/ipfs/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

查看log


docker logs -f ipfs_host


出现下面则成功启动


WebUI: http://0.0.0.0:5001/webui
Gateway (readonly) server listening on /ip4/0.0.0.0/tcp/8080

连接对等节点

docker exec ipfs_host ipfs swarm peersq

查看后台控制

http://127.0.0.1:5001/webui


添加单个文件


因为使用docker启动的, docker exec 也是在docker里面执行, 所以需要把文件放到挂载目录中


docker exec ipfs_host ipfs add -r /export/timg.jpg


返回


added QmZRVSAqarZYQRiJYuiaaqqMc44xQ5Wuys3cJdnsKqiUaF timg.jpg
12.16 KiB / 12.16 KiB  100.00%


查看文件


命令行查看


docker exec ipfs_host ipfs cat /ipfs/QmZRVSAqarZYQRiJYuiaaqqMc44xQ5Wuys3cJdnsKqiUaF


本地路由查看


http://127.0.0.1:8080/ipfs/QmZRVSAqarZYQRiJYuiaaqqMc44xQ5Wuys3cJdnsKqiUaF


公共网关查看


https://ipfs.io/ipfs/QmZRVSAqarZYQRiJYuiaaqqMc44xQ5Wuys3cJdnsKqiUaF


部署前端项目

打包

yarn build

将 build 文件夹复制到export 目录中


添加build

docker exec ipfs_host ipfs add -r /export/build

获取目录的hash值

...
added QmeogBWiV3FzWLxDWt7uQ49drLdNH2dp6z3EJLFYHDogDh build/static
added QmdAZpjdkX5wi3cUCxuNs8o7FvPXiRopRmvxPmu5fH2ioW build
 26.47 MiB / 26.47 MiB  100.00%


就可以直接访问了


http://127.0.0.1:8080/ipfs/QmdAZpjdkX5wi3cUCxuNs8o7FvPXiRopRmvxPmu5fH2ioW


项目更新(IPNS)


前端项目部署完成后后续更新再提交的话就会更换哈希, 为了保证路由不变我们可以用ipns来解决


发布到节点


docker exec ipfs_host ipfs name publish QmdAZpjdkX5wi3cUCxuNs8o7FvPXiRopRmvxPmu5fH2ioW


Published to k51qzi5uqu5dkh57vee7yzaoc8m5gxi0t88w79ugf0vaeln1tzcfrf3jjgyqs1: /ipfs/QmdAZpjdkX5wi3cUCxuNs8o7FvPXiRopRmvxPmu5fH2ioW

“k51qzi5uqu5dkh57vee7yzaoc8m5gxi0t88w79ugf0vaeln1tzcfrf3jjgyqs1” 就是这个节点的唯一值了, 可以直接用ipns访问


http://127.0.0.1:8080/ipns/k51qzi5uqu5dkh57vee7yzaoc8m5gxi0t88w79ugf0vaeln1tzcfrf3jjgyqs1


更新


docker exec ipfs_host ipfs add -r /export/build


 26.47 MiB / 26.47 MiB  100.00%added QmPgtRz3BeCMYLq8rSKCLC1uq2DVKwd3dmc6JGjj7Dbr9t build


docker exec ipfs_host ipfs name publish QmPgtRz3BeCMYLq8rSKCLC1uq2DVKwd3dmc6JGjj7Dbr9t


这样通过之前的路由就能继续访问了


http://127.0.0.1:8080/ipns/k51qzi5uqu5dkh57vee7yzaoc8m5gxi0t88w79ugf0vaeln1tzcfrf3jjgyqs1


多项目部署IPNS


生成新的hashKey


docker exec ipfs_host ipfs key gen --type=rsa --size=2048 newkey


k2k4r8jiqwxlyw7rpw9poxrmmvl21xbgz3hqwfh4jneiiw72dhjteizk

发布到新节点


docker exec ipfs_host ipfs name publish --key=newkey 项目哈希


这样就可以通过不同的hashKey来部署和访问不同的项目了


http://127.0.0.1:8080/ipns/k2k4r8jiqwxlyw7rpw9poxrmmvl21xbgz3hqwfh4jneiiw72dhjteizk


注意


公共网关(https://ipfs.io) 是需要墙的;

上传完成后, 需要在别的网关访问后源节点才可以离线;

任何节点没有义务储存你的文件, 别的节点实际上是缓存你的文件, 如果长时间没人访问, 则会清除缓存(除非该节点执行pin操作), 热的文件永存,冷的文件自动淘汰;

本地添加的文件默认会执行pin操作, 也就是永久保存;

同步公共网关的过程会比较慢, 开始测试最好先用小图片或文件;


参考文献


https://learnblockchain.cn/2018/12/25/use-ipfs
https://v2ex.com/t/598401


目录
相关文章
|
6月前
|
存储 程序员 Shell
云存储,就像是我们的“魔法口袋”
【6月更文挑战第5天】云存储助力远程工作,打破地理限制,提供统一存储平台,实现高效协作。通过共享文件夹,团队成员可随时随地访问最新文件,避免版本混乱。以Google Drive为例,上传、管理文件,邀请成员协作,提升效率。此外,版本控制、权限管理等功能确保安全,使远程协作更加灵活。拥抱云存储,提升远程工作效率!
34 1
|
7月前
|
编解码 数据可视化 Linux
搬运5款小众软件,知道的人少,但棒!
今天推荐5款十分小众的软件,知道的人不多,但是每个都是非常非常好用的,有兴趣的小伙伴可以自行搜索下载。
75 0
|
Windows
谈一谈|下载软件的门道你懂吗?
谈一谈|下载软件的门道你懂吗?
139 0
|
Web App开发 Linux 数据安全/隐私保护
亮个相吧小宝贝儿,五款压箱底的软件
今天要给大家推荐5款压箱底的宝贝软件了,百度搜索一下就能找到下载链接了。
152 0
亮个相吧小宝贝儿,五款压箱底的软件
|
云计算 UED
云计算通俗讲义(第三版)
这个自制脑图是学习云计算通俗讲义(第三版)这本书整理的,主要介绍了软件,也叫程序, 举例什么是软件,软件必须包含输入语句、输出语句、计算语句、没有包含输入/输出语句的软件没有任何用途,因为它就像一个黑盒子,既不能输入任何东西,也不能从它那里得到任何东西。 实时输入/输出是指CPU执行输入/输出步骤时,立即完成输入/输出动作。大部分计算机软件,如办公软件,都要求实时输入/输出。 实时输入/输出软件又划分为强交互性软件和弱交互性软件。强交互性软件是指在运行时需要实时地进行大量输入/输出操作,且输入之后马上能看到输出结果。弱交互性软件是指软件运行时实时地进行少量的输入操作,然后就源源不断地输出了。
572 0
云计算通俗讲义(第三版)
|
数据采集 算法 数据安全/隐私保护
分享5款好用但一直不火的宝藏软件
很多软件用起来很好用,但是由于这样那样的原因,一直没什么知名度,但是不代表它们不好用,我的任务就是把这些宝藏分享给大家。
122 0
分享5款好用但一直不火的宝藏软件
|
安全 IDE Java
杂谈 | 讲讲用Linux系统作为主力的感受
杂谈 | 讲讲用Linux系统作为主力的感受
674 0
杂谈 | 讲讲用Linux系统作为主力的感受
DayDayUp:《机器崛起前传》第二十二章【蹒跚而来】读后感(文章源自网络)—听课笔记
DayDayUp:《机器崛起前传》第二十二章【蹒跚而来】读后感(文章源自网络)—听课笔记

热门文章

最新文章