参考博客:
https://blog.csdn.net/SweeNeil/article/details/82762553
理论部分
IPFS(星际文件系统),是一个分布式文件系统协议。IPFS协议定义了文件在分布式系统中如何存储、索引、传输。IPFS的目标是通过一个文件系统将网络中的所有的设备连接在起来。
IPFS基础原理
简介
1.基于内容寻址,而非基于域名寻址。文件具有唯一存在的唯一性,一个文件加入到IPFS的网络,基于计算对内容赋予一个唯一加密的哈希值。
2.提供文件的历史版本控制器(如git),并且让多个节点使用保存不同版本的文件;
3.IPFS的网络运行着一条区块链,即用来存储互联网文件的哈希值表,每次有网络访问,即要在链上查询该内容(文件)的地址;
4.通过使用代币(FileCoin)的激励作用,让各节点有动力去存储数据。FileCoin是一个由加密货币驱动的存储网络。矿工通过为网络提供开放的硬盘空间获得FileCoin,而用户则用FileCoin来支付在去中心化网络中存储加密文件的费用。
工作机制
IPFS为每一个文件分配一个独一无二的hash值,这个方式使得IPFS可以支持基于文件内容寻址。IPFS在整个网络范围内去掉重复的文件,并且为每一个文件建立版本管理。当查询文件的时候,IPFS网络根据文件的hash值进行查找。为了让用户更好的记文件存放的hash,IPFS利用IPNS将hash值映射一个比较容易记忆的IPNS名字,每个节点除了存储自己需要的数据,还需要存储一张hash表,用来记录文件存储的位置,进行文件的查询下载。
实验部分——IPFS环境搭建
实验环境:Windows10 + VirtualBox + Ubuntu16.04.6
sudo apt-get update
sudo apt-get install golang-go -y