咨询热线

HASHKFK

BETHASH新闻资讯
您当前的位置: 首页 > BETHASH新闻资讯 > BETHASH新闻
BETHASH玩法 BETHASH新闻

BETHASHIPFS白皮书中文精校版

时间:2024-11-18 15:44:39
更多
  

  BETHASH官方网站(访问: hash.cyou 领取999USDT)

BETHASHIPFS白皮书中文精校版

  IPFS星际文件系统InterPlanetary File System是一个点对点的分布式文件系统,旨在用同一套相同文件系统连接所有的计算设备。IPFS在某些方面与Web相似,但IPFS可被看作是一个单一的BitTorrent群体,在一个Git存储仓库内交换对象。换句话说,IPFS使用内容寻址的超链接技术,提供了的高吞吐量的以内容寻址的块存储模型。这形成了一个广义的Merkle DAG,一个可以构建版本化文件系统、区块链、甚至是永久性网

  IPFS-内容寻址、版本化、点对点文件系统(草稿3)翻译:梁然链创学院刘欢链创加速器赖国强猩球区块摘要IPFS星际⽂件系统(InterPlanetaryFileSystem)是⼀个点对点的分布式⽂件系统,旨在⽤同⼀套相同⽂件系统连接所有的计算设备。IPFS在某些⽅⾯与Web相似,但IPFS可被看作是⼀个单⼀的BitTorrent群体,在⼀个Git存储仓库内交换对象。换句话说,IPFS使⽤内容寻址的超链接技术,提供了⾼吞吐量的以内容寻址的块存储模型。这形成了⼀个⼴义的MerkleDAG,⼀个可以构建版本化⽂件系统、区块链、甚⾄是永久性⽹站的数据结构。IPFS结合了分布式哈希表、激励式区块交换和⾃我认证命名空间。IPFS没有单点故障,节点也不需要相互信任。1.介绍以往曾有过许多在构建全球分布式⽂件系统⽅⾯的尝试。有些系统取得了显着的成功,有些系统则完全失败。在学术尝试中,AFS[6]得到了⼴泛的成功,并且今天仍在使⽤。⽽其它尝试[7,?]却没有取得成功。在学术界之外,最成功的系统⼀直是主要针对⼤型媒体(⾳频和视频)的点对点⽂件共享应⽤程序。最值得注意的是,Napster,KaZaA和BitTorrent[2]部署了⼤型的⽂件分发系统,⽀持超过1亿的上线⽤户。即使在今天,BitTorrent仍然有⼤量的部署,每天有数千万个活跃节点[16]。这些应⽤程序的⽤户和分布式⽂件的数量要⽐学术界的同⾏多很多。但是,这些应⽤程序并不是基于基础层来设计的。虽然有成功的重新调整(例如,Linux发⾏版使⽤BitTorrent发送磁盘映像,⽽Blizzard,Inc.使⽤它发布视频游戏内容。),但没有出现能够提供全球性、低延迟和去中⼼化分发的通⽤⽂件系统。也许这是因为⼤多数情况下“⾜够好”的系统已经存在:HTTP。到⽬前为⽌,HTTP是最成功的“分布式⽂件系统”。HTTP与浏览器⼀起使⽤,具有巨⼤的技术和社会影响。已成为通过互联⽹传输⽂件的事实标准。然⽽,它并没有利⽤好过去15年发明的数⼗种优越的⽂件分发技术。从⼀个⾓度来看,考虑到后向兼容性限制的数量和投⼊到当前模型各强⼤实体的数量,继续发展Web基础架构⼏乎不可能实现。但是从另⼀个⾓度看,⾃HTTP出现,已有许多新协议出现并得到⼴泛使⽤。⽬前缺乏的是设计的升级:增强当前的HTTPweb,并引⼊新功能且不会降低⽤户体验。业界已使⽤HTTP这么久了,因为移动⼩⽂件相对便宜,即使对于拥有⼤流量的⼩型组织也是如此。但是,我们正在进⼊⼀个新的数据分发时代,并⾯临新的挑战:(a)托管和分发PB级数据集;(b)计算跨组织的⼤数据;(c)⾼容量⾼清晰度按需或实时的媒体流;(d)⼤规模数据集的版本控制和链接;(e)防⽌重要⽂件的意外丢失等等。其中很多可以归结为1“⼤量数据,随处可以访问”。受关键特性和带宽关系的影响,不同数据的分发协议我们已经放弃HTTP。下⼀步是让它们成为Web本⾝的⼀部分。正交于⾼效的数据分发,版本控制系统已经设法开发了重要数据协作的⼯作流程。Git,分布式源代码版本控制系统,开发了许多有⽤的⽅法来建模和实现分布式数据操作。Git⼯具链提供了⼤型⽂件分发系统中严重缺乏的多功能版本控制功能。受Git启发的新解决⽅案正在兴起,如Camlistore[?],个⼈⽂件存储系统,以及Dat[?]数据协作⼯具链和数据集包管理器。Git已经影响了分布式⽂件系统设计[9],因为其以内容寻址的MerkleDAG数据模型实现了强⼤的⽂件分发策略。⽬前待研究的是这种数据结构如何影响针对⾼吞吐量⽂件系统的设计,以及它如何升级Web本⾝。本⽂介绍IPFS,这是⼀种新型的点对点版本控制⽂件系统,旨在协调以上这些问题。IPFS的研究综合了许多过去成功的系统的经验。通过仔细的以接⼜为重点的集成产⽣的系统,效果超过了其各组成部分的总和。IPFS的核⼼原则是将所有数据建模为同⼀个MerkleDAG的⼀部分。2.背景本节回顾IPFS所结合的成功的点对点系统的重要属性。2.1分布式哈希表(DistributedHashTable)分布式哈希表(DHT)被⼴泛⽤于协调和维护关于点对点系统的元数据。例如,BitTorrentMainlineDHT可以追踪Torrent群组中的对等节点分组。2.1.1KademliaDHTKademlia[10]是⼀种流⾏的DHT,它可提供:1.通过海量⽹络进⾏⾼效查询:平均查询⌈log2(n)⌉个节点。(例如20跳10,000,000个节点的⽹络)。2.低协调开销:优化了发送给其他节点的控制消息的数量。3.通过选择长寿命节点来抵抗各种攻击。4.在包括Gnutella和BitTorrent在内的点对点应⽤中⼴泛使⽤,形成超过2000万个节点的⽹络[16]。2.1.2CoralDSHT虽然⼀些点对点⽂件系统直接在DHT中存储数据块,这样“因为数据必须存储在并不需要这些数据的节点上,导致浪费存储和带宽”[5]。CoralDSHT以三种特别重要的⽅式扩展了Kademlia:1.Kademlia将值存储在ID为“最接近”(使⽤XOR-距离)的关键节点上。这不考虑应⽤程序数据的位置,⽆论它们是否需要,都忽略可能已经拥有数据的“远”节点,并强制在“最近的”节点存储它。这浪费了⼤量的存储空间和带宽。相反,Coral将地址存储到可以提供数据块的对等节点那。al通过将get_value(key)改为get_any_values(key)放宽了DHTAPI(DSHT中的“Sloopy”)。由于Coral⽤户只需要单个(⼯作中)对等节点,⽽不是完整的列表,这仍然有效。作为回报,Coral只能将值的⼦集分发到“最近”的节点,避免了热点(当key变得流⾏时,重载所有最近的节点)。3.此外,Coral根据区域和⼤⼩组织⼀个称为集群的独⽴DSHT层次结构。这使节点能够⾸先查询其区域中的对等节点,“查找附近的数据⽽不⽤查询远处的节点”[5],并极⼤减少查找的延迟。2.1.3S/KademliaDHTS/Kademlia[1]扩展了Kademlia以防⽌恶意攻击,有如下两个重要⽅法:1.S/Kademlia提供⽅案保护NodeId的⽣成,并防⽌Sybill攻击。它需要节点创建⼀个PKI密钥对,从中衍⽣出他们的⾝份,并将消息彼此签名。⼀种⽅案包括⼯作证明密码难题,使其⽣成的Sybills变得成本昂贵。2.S/Kademlia 节点在不相交的路径上查找值,即使⽹络中存在⼤量的不诚实节点,也能 确保诚实节点可以互相联接。S/Kademlia 的成功率达到了 0.85,即使敌对部分达到 了⼀半的节点。 2.2 块交换–BitTorrent BitTorrent [3] 是⼀个⾮常成功的点对点⽂件分享系统,它成功地协调了不相互信任的对等 群体⽹络,以便合作将⽂件分发给彼此。来⾃ BitTorrent 及其⽣态系统关于 IPFS 设计的 重要功能包括: 1. BitTorrent 的数据交换协议使⽤ tit-for-tat 奖励策略,奖励互相做出贡献的节点,惩 罚只汲取他⼈资源的节点。 2. BitTorrent 节点跟踪⽂件碎⽚的可⽤性,优先发送最稀有的碎⽚。这减少了种⼦节点 的负载,使⾮种⼦节点也能够彼此交易。 3. BitTorrent 的 tit-for-tat 标准容易受到某些剥削性带宽共享策略的影响。PropShare [8] 是⼀种不同的对等带宽分配策略,可以更好地剥削策略,并提⾼集群的性能。 2.3 版本控制系统 - Git 版本控制系统提供了对随时间变化的⽂件进⾏建模的功能,并且可以有效地分发不同版本 的⽂件。流⾏的版本控制系统 Git 提供了强⼤的 Merkle DAG (Merkle 有向⽆环图 - 与 Merkle 树相似但更通⽤的结构。重复数据删除,不需要平衡,⾮叶节点包含数据)对象模 型,以分布式友好的⽅式捕获对⽂件系统树的更改。 1. 不可变的对象表⽰⽂件(blob)、⽬录(tree)和更改(commit)。 2. 对象通过其内容的加密哈希进⾏内容寻址。 3. 嵌⼊其他对象的链接,形成 Merkle DAG。这提供了许多有⽤的完整性和⼯作流属性。 4. ⼤多数版本控制元数据(分⽀,标签等)仅仅是指针引⽤,因此创建和更新成本低廉。 3 5. 版本更改仅更新引⽤或添加对象。 6. 将版本更改分发给其他⽤户只需传输对象并更新远程引⽤即可。 2.4 自我认证的文件系统 - SFS SFS [12,11] 提出了两个引⼈注⽬的实现(a)分布式信任链和(b)平等共享全局命名空间。 SFS 引⼊了构建⾃我认证⽂件系统的技术:使⽤以下⽅案来处理远程⽂件系统: /sfs/

  其中 Location 是服务器⽹络地址,并且: HostID = hash(public_key Location) 因此,SFS ⽂件系统的名称会认证其服务器。⽤户可以通过服务器提供的公钥进⾏验证,协 商⼀个共享密钥并保护所有的传输。所有 SFS 实例共享⼀个全局命名空间,其中名称分配 是加密的,⽽不是由任何中⼼化主体控制。 3. IPFS 设计 IPFS 是⼀个分布式⽂件系统,它综合了以前点对点系统的成功思想,包括 DHT,BitTor- rent,Git 和 SFS。IPFS 的贡献在于简化,发展,并将经过验证的技术连接到⼀个统⼀的 系统中,⼤于其各部分的总和。IPFS 提供了⼀个⽤于编写和部署应⽤程序的新平台,以及 ⼀个⽤于分发和版本化⼤数据的新系统。IPFS 甚⾄可以改进⽹络本⾝。 IPFS 是点对点的;没有节点有特权。节点将 IPFS 对象存储在本地存储中。节点相互连 接并传输对象。这些对象表⽰⽂件和其他数据结构。IPFS 协议分为⼀系列负责不同功能的 ⼦协议: 1. 身份 - 管理节点⾝份⽣成和⾝份验证。在第 3.1 节中描述。 2. 网络 - 管理与其他对等节点的连接,使⽤各种底层⽹络协议。可配置的。在 3.2 节中 描述。 3. 路由 - 维护信息以定位特定的对等节点和对象。响应本地和远程查询。默认为 DH T, 但可替换。在 3.3 节中描述。 4. 交换 - ⼀种管理有效块分发的新型块交换协议(BitSwap)。模仿市场,弱激励数据复 制。交易策略可替换。在 3.4 节中描述。 5. 对象 - 带有链接的以内容寻址的不可变对象组成的 Merkle DAG。⽤于表⽰任意数据 结构,例如⽂件层次结构和通信系统。在 3.5 节中描述。 6. 文件 - 受 Git 启发的版本化⽂件系统层次结构。在 3.6 节中描述。 7. 命名 - ⼀个⾃我认证的可变名称系统。在 3.7 节中描述。 这些⼦系统不是独⽴的; 他们是集成在⼀起并利⽤混合的属性。然⽽,分开描述它们是有⽤ 的,从底层开始构建协议栈。 注释:下⽂中数据结构和函数使⽤ Go 语法表⽰。 4 3.1 身份 节点由NodeId 标识,这是使⽤S/Kademlia 的静态加密算法[1] 创建的公钥的加密哈希(在 本⽂档中,散列、校验专指数据的加密哈希校验)。节点存储其公私钥(⽤密码加密)。⽤户 可以在每次启动时⾃由地设置⼀个“新”节点⾝份,尽管这会失去应有的的⽹络优势。节点被 激励保持不变。 type NodeId Multihash type Multihash []byte // self-describing cryptographic hash digest type PublicKey []byte type PrivateKey []byte // self-describing keys type Node struct { NodeId NodeID PubKey PublicKey PriKey PrivateKey

地址:广东省广州市   电话:HASHKFK
传真:0896-98589990
ICP备案编号:
Copyright © 2012-2024 BETHASH竞技游戏工作室有限公司 版权所有