一文读懂IPFS——区块链3.0的航空母舰

2023-11-20 21:10

本文主要是介绍一文读懂IPFS——区块链3.0的航空母舰,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第二届深圳区块链技术与应用大会暨展览会,深圳区块链存储与IPFS技术应用大会暨展览会于2019年4月9日在深圳会展中心6号馆举行。那么这个IPFS是什么?和区块链有什么关系?有什么用?又怎么用呢?接下来小编会为您详细解析。

目录

 

什么是IPFS
    简单地说
    枯燥地说
    有啥用
原理是什么
    八层协议栈
    IFPS的理想
操作
    编译
    安装启动
    基本操作
    对接RESTful
实例
    部署个人博客
    做电商网站
    FileCoin
    疑问与解决方案
有价值的参考资料

什么是IPFS

简单地说

IPFS = Bittorrent + git + SFS + BITSWAP

枯燥地说

      IPFS(The InterPlanetary File System,星际文件系统), 是一个面向全球的、点对点的分布式版本文件系统,目标是为了补充(甚至是取代)目前统治互联网的超文本传输协议(HTTP),将所有具有相同文件系统的计算设备连接在一起。
      原理用基于内容的地址替代基于域名的地址,也就是用户寻找的不是某个地址而是储存在某个地方的内容,不需要验证发送者的身份,而只需要验证内容的哈希,通过这样可以让网页的速度更快、更安全、更健壮、更持久。

有啥用

1.私人网盘(可以随时随地像访问本地存储一样,访问家里电脑里存的文件)
2.迷你CDN(类似百度金矿,让普通人可以把自家的带宽像商品一样出售给别人)
3.文件共享(知道BitTorrent么,IPFS不但可以共享文件还能共享目录)
4.版本管理(此功能和Web结合起来,以后很难再见到404了)
5.虚拟机的根目录(想想你把一个操作系统装到IPFS上)
6.分布式文件系统(把家里磁盘的使用权像产品一样出售给别人)
7.数据安全(这是去中心化的天赋,想要入侵数据库就要攻击所有人)
8.取代HTTP(基于内容寻址,网络利用率高)
。。。

原理是什么

八层协议栈

网络:传输层(WebRTC)、可靠性(uTP或SCTP)、可连接性(ICE)、完整性、可验证性

路由:DSHT,用于确定同伴或内容的地址,简单说可以让你知道到那个节点去找那个文件;

块交换:Bittorrent+Bitswap, 节点必须以块的形式彼此提供直接的值

对象:Merkle DAG, 路径、本地对象、对象锁定、发布对象、对象加密级别

文件:Blok、List、Tree、Commit、文件系统路径、将文件分隔成LISTS和BLOBS

命名:IPNS、DAG命名可变、人类友好名称,IPFS一问世就有很多人疯狂地去IPFS上注册域名,这就归功于此。

IFPS的理想

IPFS的思想是几十年成功的分布式系统的探索和开源的产物。IPFS综合了很多迄今为止很成功的系统中优秀的思想。除了BitSwap新协议之外,IPFS最大的特色就是系统的耦合以及设计的综合性。

  • IPFS是去中心化网络基础设施的一个野心设想,很多不同类型的应用都可以建立在IPFS上。
  • 最低限度,它可以用来作为一个全局的,挂载性,版本控制文件系统和命名空间,或者作为下一代的文件共享系统。
  • 而最好的情况是,IPFS可以让Web升级一个层次,当发布一个有价值的信息时,任何感兴趣的人都可以进行发布而不会强迫性的必须只允许发布机构进行发布,用户可以信任信息的内容,信不信任信息的发送者都是无关紧要的,还有一个特点就是,一些重要但很老的文件也不会丢失。
  • IPFS期待着带我们进入到一个Permanent Web的世界。

操作

编译

以Ubuntu为例

$ go get -u -d github.com/ipfs/go-ipfs
$ cd $GOPATH/src/github.com/ipfs/go-ipfs
$ make install

安装启动

$ ipfs init
$ ipfs daemon &

基本操作

# 添加文件
$ ipfs add a.txt
# QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS是add之后生成的
$ ipfs cat QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS
aaaaaaaaaaaaaa
# 创建文件夹并复制文件
$ ipfs files mkdir libai
$ ipfs files cp /ipfs/QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS /libai/file.txt
# 浏览刚复制过去的文件
$ ipfs files ls /libai
# 将IPFS中的文件取到本地
$ ipfs get /ipfs/QmQ4gV6RzpxURqBKypm981uDDKmPy3Q2hzcJAKFy4ug6PS -o ./

用https的方式浏览我们刚才上传的文件

对接RESTful

API的官方文档:https://ipfs.io/docs/api/
对接API的js开源代码:https://github.com/ipfs/js-ipfs
具体操作步骤如下:

  • 编辑ipfs的config文件:将127.0.0.1换成0.0.0.0
  • 添加跨域共享
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
  • 访问IPFS的管理页面:http://[NodeIP]:5001/webui
  • 添加文件(路径前一定要加”@”符号)
curl -F file=@myfile “http://localhost:5001/api/v0/add?recursive=false&quiet=<value>&quieter=<value>&silent=<value>&progress=<value>&trickle=<value>&only-hash=<value>&wrap-with-directory=<value>&hidden=<value>&chunker=<value>&pin=true&raw-leaves=<value>&nocopy=<value>&fscache=<value>&cid-version=0&hash=sha2-256“    

实例

看完操作步骤,相信您对IPFS的功能有了一些了解,我们进一步开下脑洞,看看能用IPFS干什么。

部署个人博客

ipfs add -r ipfs_blog/
ipfs name publish QmebnxXBK7BgxRy2VsCE6z89epc9teZDh6ih8MCQUjDCZW
ipfs name resolve Qmczs7Qzf9r5Efgi25gofF7VD1rrFuoz49eEgWwh2xdf4X

做电商网站


如图利用IPFS存储资源文件,利用比特币提供支付,自己写个后台提供接口,简直美滋滋(是不是少了很多审核流程),国外的Openbazaar就是这样的一个去中心化的电商,既没有交易费用,也不用担心审查。

FileCoin

Filecion是在IPFS基础上建立的项目,已经经过ICO,代币为“FIL”,用户通过向矿工支付FIL获取存储资源,从而激励有闲置资源的公众参与其中。FileCoin用复制证明(PoRep)和时空证明(Post)两种方式来证明矿工的价值,相比于依赖于工作量证明法(Pow)的比特币,FileCoin挖矿不会耗费那么多的电力和CPU。

疑问与解决方案

  1. 长长的一串哈希值不容易被记住。
    答:IPFS可以配置人类友好型域名,ipns就是解决这个问题的。
  2. 不想和世界联网,只想自己组个私网。
    答:IPFS支持搭建私网,生成一个swarm.key放到IPFS数据目录即可。

有价值的参考资料

Filecoin白皮书: https://filecoin.io/filecoin.pdf
Filecoin白皮书中文: http://chainx.org/paper/index/index/id/13.html
IPFS中文官网: http://ipfser.org/
IPFS白皮书: https://raw.githubusercontent.com/ipfs/ipfs/master/papers/ipfs-cap2pfs/ipfs-p2p-file-system.pdf
IPFS白皮书中文: https://gguoss.github.io/2017/05/28/ipfs/
IPFS源码: https://github.com/ipfs/go-ipfs
IPFS安装: https://ipfs.io/docs/install/
IPFS-js-api: https://github.com/ipfs/js-ipfs


关注"麻辣软硬件",获取更多优质的软硬件知识

 


 

这篇关于一文读懂IPFS——区块链3.0的航空母舰的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/397440

相关文章

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

Linux 云计算底层技术之一文读懂 Qemu 架构

Qemu 架构概览 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成

Cmake之3.0版本重要特性及用法实例(十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧

读懂《机器学习实战》代码—K-近邻算法

一,K近邻算法概念 K近邻算法即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。KNN 算法是一种 lazy-learning 算法,分类器不需要使用训练集进行训练,训练时间复杂度为0。KNN 分类的计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为 n,

数据库遇上知识图谱、区块链、深度学习

参考资料: https://zhuanlan.zhihu.com/p/33381916 https://www.zuozuovera.com/archives/1062/ 东南大学D&Intel Lab相关ppt 数据库的核心概念——表示、存取、查询 有了数据库是干什么,大概实现的逻辑,特点,才能引申出对当今这些新技术的对比、适应和发展。 目的:研究数据表示、存取数据模型:表示数据的模型,通

Post-Training有多重要?一文带你了解全部细节

1. 简介 随着LLM学界和工业界日新月异的发展,不仅预训练所用的算力和数据正在疯狂内卷,后训练(post-training)的对齐和微调方法也在不断更新。InstructGPT、WebGPT等较早发布的模型使用标准RLHF方法,其中的数据管理风格和规模似乎已经过时。近来,Meta、谷歌和英伟达等AI巨头纷纷发布开源模型,附带发布详尽的论文或报告,包括Llama 3.1、Nemotron 340

【C-实践】文件服务器(3.0)

文件服务器1.0文件服务器2.0文件服务器4.0 概述 使用了 tcp + epoll + 线程池 + 生产者消费者模型,实现文件服务器 有两个进程,主进程负责接收退出信号用来退出整个程序;子进程负责管理线程池、客户端连接以及线程池的退出 子进程中的主线程生产任务,其他子线程消费任务 功能 主要功能:客户端连接服务器,然后自动下载文件 注意 实际传输速度

一文说清什么是AI原生(AI Native)应用以及特点

引言:智能新纪元 如今,走在街头,哪儿不被智能科技包围?智能音箱、自动驾驶汽车、聊天机器人......这些都在用不同的方式提升我们的生活体验。然而,究竟什么才能称得上“AI原生应用”呢? 什么是AI原生?   AI原生不仅仅是简单地引入人工智能功能。真正的AI原生应用犹如一个智慧的“大脑”,它的每一个决策都依赖于深度学习与数据分析。以Siri为例,它通过学习用户的习惯和需求,提供个性化的