当今,随着信息技术、互联网的日益发达,人类的交流与协作方式已发生了颠覆性的变革。无论是数字,还是文字、图片、音乐、视频,都能从网上获得,点点手指就能掌握这一切。信息技术、互联网极大便捷了我们的生产、生活。
一方面,我们在享受互联网红利。另一方面,经历数十年的发展,曾经我们引以为傲的互联网技术也暴露出诸多弊端。当我们打开网页时,经常遇到卡顿、数据被篡改,甚至文件被删除情况,更不用说数据泄露的问题。此外还有成本高昂,服务不稳定等。在越发重视数据价值的今天,这个问题显得格外严重。
是否有一种技术,既能低成本、高效率的存储我们的数据,又安全稳定、永不丢失,当然隐私保护更是必不可少。
答案是肯定的,这就是IPFS(星际文件系统)技术。与传统中心化存储技术相比,基于去中心化的IPFS技术具有低成本、高效率、安全性、隐私性、永久性等多个优势。
当下,区块链作为一种颠覆性的融合创新技术,在各行各业都具有巨大的应用潜力。但是迫于高昂的存储成本、TPS限制,全数据上链显然不具现实性和价格优势。大的文件哈希上链,原文件用IPFS存储,IPFS技术可以说是区块链的完美互补。
2021年1月,BSN IPFS服务专网商用发布,其是BSN基于 IPFS分布式文件服务搭建的专网,面向应用开发提供IPFS常用的原生服务接口的服务网关。其具有高效、合规、价格优势明显等诸多优势。
那么,IPFS具体是什么?IPFS的功能如何?它的架构及特性怎样?Filecoin是怎么一回事?如何接入BSN中IPFS专网服务?
1.什么是IPFS
了解IPFS,要先了解HTTP。HTTP(超文本传输协议HyperText Transfer Protocol,Http)用于在Internet上发送和接收消息。它是以超文本传输为目的而设计、基于TCP/IP实现的应用层协议。
此协议传送的数据形式可以是普通正文、超文本、音频、视频等等。用户使用http://或https://链接指向网页、图像、电子表格、数据集或者推文时,用户按其位置识别内容,这是位置寻址。该链接是指向web上特定位置的标识符,其对应于web上某处的特定服务器或服务器组,控制该位置的人控制内容。
对应于位置寻址,IPFS(InterPlanetary File System,星际文件系统)是一个基于内容寻址、分布式、新型超媒体传输协议。其原理用基于内容的地址替代基于域名的地址,也就是用户寻找的不是某个地址而是储存在某个地方的内容,它旨在使网络更快、更安全、更开放。
2.IPFS的功能
为什么需要IPFS?
众所周知, 互联网是建立在HTTP协议上的。但随着互联网的进步,HTTP逐渐显示出其不足。
HTTP非常中心化,用户依赖少数服务供应商,效率低成本高;W e b文件经常被删除;中心化服务商极易受到攻击,为了服务器的正常运转,需要采用各类昂贵的安防方案,防范成本越来越高。这三点已成为HTTP无法克服的问题。
对比HTTP,IPFS天然就是分布式、点对点架构,不再依赖主干网和中心化服务器。IPFS将文件分割成很多小块,存储于诸多节点。当下载时,很多节点可以同时提供下载服务,速度更快。
第二,IPFS优化了存储空间,数据可持续保存。IPFS采用为数据内容建立哈希去重的方式存储数据。在IPFS里,相同的数据会在IPFS网络中过滤,这降低了储存空间的成本。IPFS提供了互联网数据可持续存储的方式,并且提供了数据历史版本追溯的功能。
第三,基于去中心化的IPFS更安全,天生抵御DDOS(分布式拒绝服务攻击)。
区块链和IPFS的关系?
区块链的本身功能之一是在没有中心化的前提下参与方达共识,参与方共同维护一套账本。它的本身效率并不高。如果IPFS和区块链协同工作,可以弥补区块链的两大缺陷。
第一个缺陷是区块链存储效率低、成本高。和HTTP类似,IPFS是基于TCP/IP的应用层协议。遇到大文件上链,可使用I P F S存储文件数据本身,并将唯一永久可用的I P F S 地址放置到区块链中。
第二个缺陷是传统上区块链跨链需要各个链之间协同配合,难以协调。I P F S通过I P L D定义不同的分布式数据结构,可协助各个链之间传递信息和文件。
3.IPFS架构及特性
IPFS架构
IPFS包含七层架构,每层具有不同的功能。
IPFS特性—分布式哈希表(DHT)
哈希表是一种数据结构,它把KEY 和 VALUE用某种方式对应起来。使用hash()函数把一个KEY值映射到一个index上,即hash(KEY) = index。这样就可以把一个KEY值同某个index对应起来。然后把与这个KEY值对应的VALUE存储到index所标记的存储空间中。这样,每次想要查找KEY所对应的VALUE值时,只需要做一次 hash()运算就可以找到了。
举个例子:图书馆中的书会被某人借走,这样“书名”和“人名”之间就形成了KEY与VALUE的关系。
IPFS特性—块交换协议(BitTorrent)
仅仅实现数据的分布式存储还远远不够,数据还需要在节点之间有效的交换,从而使得整个系统能够高效运转。IPFS协议受BitTorrent的启发,通过对等节点间交换数据块来分发数据。
如何激励节点分享数据?IPFS在BitTorrent的基础上进行了创新,增加了包括信用、策略、帐单在内的体系,这一体系之上的新的数据交换协议被称做BitSwap。
在BitSwap协议下,发送数据给其他节点可以增加节点信用值,而从其他节点接受数据则会降低节点信用值。也就是说,如果一个节点持续分享数据,其他节点给它发送数据的概率就会越来越大;而如果一个节点只接收数据而不分享数据,其他节点给它发送数据的概率就会越来越低,直到低到被其他节点忽略。
IPFS特性—自验证文件系统SFS
自验证文件系统(Self-Certifying File System,SFS)是为了设计一整套互联网共用的文件系统,全球的SFS系统都在同一个命名空间下。在SFS中,分享文件会变得十分简单,只需要提供文件名就行了。要实现一个全球共享的文件系统,最大的一个障碍莫过于如何让服务端为客户端提供认证。一个最简单的思路,所有服务器都生成一对公钥和私钥,然后让每个客户端用公开的公钥来验证服务器的安全,但是如何让所有客户端都能获得服务器的公钥呢?SFS使用一种新的解决思路,将公钥信息嵌入到文件名中,这种命名为“自验证文件名”。这样就没必要在文件系统内部实现密钥管理了。秘钥管理的功能就加入到用户对文件命名的规则中。用户可以根据自己需要选择加密方式。
IPFS的方案如下:
NodeID = hash(node.PubKey)
给每个用户分配一个可变的命名空间,在此路径下: /ipns/
一个用户可以在此路径下发布一个用自己私钥签名的对象,比如:
/ipns/XLF2ipQ4jD3UdeX5xp1KBgeHRhemUtaA8Vm/
其他用户获取对象时,他们可检测签名是否与公钥和NodeID匹配,验证用户发布对象的真实性,达到了可变状态的获取。
IPFS特性-MerkleDAG
Merkle DAG的特点:1、内容寻址 2、防篡改 3、去重。
4.Filecoin:基于IPFS技术的公有链(IPFS公网)项目
IPFS和Filecoin都是由协议实验室打造的项目,IPFS与Filecoin之间的关系有点类似于区块链与比特币的关系。Filecoin的诞生是为了通过经济激励的机制来促进IPFS的发展。Filecoin采用了公有链通证体系发行了Token,Token简称FIL,发行总量20亿。
虚拟货币只是基于区块链技术的一种应用,并不能代表区块链。正像采用区块链技术不需购买比特币,我们使用IPFS技术也不需购买FIL,更不用说合规问题。
5.BSN中IPFS专网概述及对接说明
2021年1月,BSN IPFS服务专网商用发布,其是BSN基于 IPFS分布式文件服务搭建的专网,面向应用开发提供IPFS常用的原生服务接口的服务网关。与IPFS公网相比,其具有高效、合规、价格优势明显等诸多优势。
两种开通方式
有两种方式可以开通IPFS服务:在发布服务时开通;在【IPFS服务】界面单独开通。服务开通后,系统会自动生成上传key和下载key。
方式一:在BSN门户(bsnbase.com)发布服务时开通。
方式二:在【IPFS服务】界面单独开通。
打开BSN官网主页(bsnbase.com),登录并点击【IPFS服务】。
选择【创建IPFS服务】进入服务创建页面。
选择容量,点击【下一步】,选择按月付费或按年付费
· 勾选【我已阅读并同意《BSN服务发布协议》】,点击【确定】后,系统生成账单,并提示用户支付服务费用,用户确定以后,系统从用户的账户中进行扣款,扣款成功后服务实时开通。若服务扣款失败,服务对应的账单将保留72小时,过期失效。若仍想使用服务,需重新开通服务并支付;
· 如果用户账户内没有余额或余额不足,需要先进行充值。然后到【我的账单】进行支付;
· 服务的费用主要是容量费用,流量使用费根据服务的实际使用量按周扣款,服务开通时无须支付,按年支付时具有一定的折扣优惠;
· 服务开通后,系统会返回上传Key、下载Key及网关地址信息。上传key和下载key可根据用户需要进行更新。
注意:如果用户只需要下载文件,则可不开通IPFS服务,只点击【创建下载key】生成下载key即可。
关于BSN IPFS专网服务的任何问题,您可以点击主页的帮助手册。
从帮助手册第八章的“IPFS专网服务” 中得到详尽的指导。
----------
关于BSN IPFS 服务专网,BSN已举办过一场专门培训,您可以随时点击链接观看学习。
【线上】IPFS浅谈及基于BSN的IPFS专网操作演示
地址:
http://kb.bsnbase.com/webdoc/view/Pub2c908ad371c6396b0176979c260e2ae0.html