如何使用IPFS来存储文件?

[复制链接]
9266 |0
发表于 2021-4-19 12:00:00 | 显示全部楼层 |阅读模式

IPFS是用于存储和访问文件网站应用程序和数据的分布式系统。

IPFS采用的是基于内容的寻址,而非基于位置。而内容标识符是该地址处内容的加密哈希,哈希对于其来源内容是唯一的。我们举个例子,/ipfs/QmNPXSoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mNPXSWo6uco/wiki/Aardvark.html, /ipfs/称为内容标识符,这就是IPFS如何从多个位置获取内容的方式。

但是,对于ipfs.io来说,却不是负责存储数据的?

ipfs.io是IPFS网络中第三节点上托管数据的网关。它不是负责数据存储的主机。ipfs.io网关使Internet用户可以访问和查看IPFS网络上由第三方托管的数据。

ipfs.io网关是协议实验室运行的社区资源,可帮助开发人员在IPFS上进行构建。

wk588_com_xued0mpxqlw.jpg

wk588_com_xued0mpxqlw.jpg

IPFS网关的作用是什么?

网关的作用是,将两个使用不同传输协议的网络连接在一起,而IPFS网关充当传统Web浏览器和IPFS网络之间的桥梁。通过网关,用户可以浏览存储在IPFS网络中的文件和网站,就像存储在传统的web服务器中一样。常用的IPFS网关有gateway.ipfs.io,gateway.pinata.cloud等。

那么,我们如何使用IPFS网关?

IPFS网关的工作是接受对CID(内容的哈希地址)的请求,并返回与给定CID对应的内容。了解更多加 ipfssy,每次通过网关访问一段内容时,需要提供一个URL链接。包含两部分内容:

1)网关的主机名,也就是你想要应答你CID请求的人。

2)位于主机名之后的请求路径。

例如:https://gateway.pinata.cloud/ipfs/QmWRPvfkVM

其中,gateway.pinata.cloud为网关的主机名。/ipfs/告诉网关你想要提供存储在IPFS上的一段内容的地址,QmWRPvfkVM就是地址本身。

那我们到底该如何使用IPFS来存储文件呢?

如果我们的文件大于256 KB,那么它将被拆分并存储在多个IPFS对象中,然后创建一个空对象,链接文件的所有其他对象。

最开始,文件上传时,需要将文件添加到IPFS的仓库中,上传后生成默克尔DAG的结构,生成的结构有两种Layout:balanced和trickle的。而在balanced结构中,首先生成root作为根节点,然后将文件分割,默认按照256KB大小读取一个chunk,生成叶子节点,依次生成node1,node2。root节点会有Link指向挂在root节点的叶子节点node1和node2。root节点下面能够Link的叶子节点数量是有限的,IPFS中默认设置的是174个。超过174个后则会新创建一个new root节点,并Link到old root,新的chunk作为node3被new root直接Link。

当继续有新的chunk添加时,则会生成node34作为node3和node4的父节点,node34含有两个Link分别链接到node3和node4。

具体存储流程比较复杂。了解更多加 ipfssy,而今天,我们介绍一个比较简单的使用方法。

1、GitHub上找到 IPFS Desktop,并进入IPFS Desktop下载页面,查找以.exe最新版本的IPFS Desktop结尾的链接,并运行.exe文件以开始安装。

2、安装并运行软件。打开软件,在菜单栏中找到“文件”,点击并选择“导入”,开始上传文件。

IPFS Desktop是一个简易桌面软件, 能够在便捷的桌面应用程序中提供IPFS的所有功能:一个完整的IPFS节点,加上方便的OS菜单栏、任务栏快捷方式和所有功能于一身的文件管理器,对地图和内容资源管理器。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门版块
快速回复 返回顶部 返回列表