月亮链 月亮链
Ctrl+D收藏月亮链
首页 > FIL > 正文

ODE:技术 | IPFS网络是如何组建的?_SNO

作者:

时间:1900/1/1 0:00:00

回顾

IPFS-InterPlanetaryFileSystem星际文件系统,是一个点对点的分布式文件存储系统,IPFS的愿景是构建一个全世界的分布式网络,用来替代传统中心化的服务器模式,所有的IPFS节点组成一个分布式网络,每个节点都可以存储文件,用户可以从IPFS构建的网络中以DHT(DistributedHashTable,分布式哈希表)?的方式获取文件,从而实现了新一代的完全去中心化的网络,旨在取代现有的万维网。IPFS功能很丰富,如DHT组网,文件存储,Bitswap文件交换等功能。

文件存储和文件交换的技术详解可以通过之前的推文内容进行了解,今天我们来了解这个文件系统的“地基”——网络模块。

IPFS网络初识

IPFS是一个开源项目,要达到它声称的构建一个全世界的分布式网络的目标,那么他必然要先解决不同国家、不同地区节点的连接问题。

首先,看一下IPFS网络部分配置,如下图所示,红框内部的Swarm是IPFS监听的网络地址,其中支持ipv4和ipv6协议,且默认支持QUIC协议。

五部门:利用区块链等现代信息技术 推进银行函证数字化转型工作:1月30日消息,财政部发布《关于开展银行函证试点工作的通知》,财政部、人民银行、国资委、银保监会、证监会联合在部分上市公司、会计师事务所和银行业金融机构开展银行函证试点工作。《通知》指出,试点会计师事务所、试点银行应分别整合内部函证申请和回函业务,集中开展银行函证工作,保障函证质量,防范舞弊风险。利用区块链等现代信息技术,推进函证数字化转型工作,加快银行函证数字平台建设,提升函证工作效率效果。(财联社)[2022/1/30 9:22:21]

*QUIC协议是由google最先提出的,目前已经提交给互联网工程任务小组,成为了正式的网络规范,相对于TCP来说QUIC网络传输协议的传输速度更快。

动态 | 富士通开发基于区块链的新技术 旨在实现更安全的在线交易:据Financefeeds 7月4日消息,富士通实验室利用区块链开发了一项基于DID的技术,该技术可以分析在线交易中存在的伪造风险和对方个人凭证的可信度。[2019/7/4]

IPFS节点启动之后日志如下图所示,可以看到IPFS节点监听了以下网络地址,其中包括本地的、局域网、广域网的地址,最后还有/p2p-circuit地址。

问题来了,为什么需要监听这么多地址?

那是因为IPFS是一个开源项目,为了让全世界各地的节点连接起来则必须要解决各种网络情况下节点连接的问题。

监听本地地址,这样本地启动多个IPFS节点,它们之间可以以该地址进行连接,监听局域网地址,这样内网内启动多个IPFS节点,它们之间可以以该局域网地址相互连接,监听广域网地址,这样公网中启动多个IPFS节点,它们之间可以以该广域网地址进行连接。

现场|孔华威:中国确实掌握了芯片技术 国内区块链技术是有支撑的:金色财经现场报道,6月23日,由北京开国元勋文化促进会携手爱思实验室Aisi Labs主办的“链接?共识2018爱思区块链技术高峰论坛”正式开幕。中科院计算技术研究所上海分所所长孔华威发言时表示:”中国确实掌握了芯片技术,在这个领域里,因为它主要聚焦在以比特币公链为核心的领域里,目前还没有大张旗鼓宣传这方面的芯片技术,是因为有杭州和深圳两家比较厉害的芯片公司,占全世界芯片产业的70%,所以国内区块链技术是有支撑的。“[2018/6/23]

通过上述方式就解决了大部分网络情况下的IPFS节点的网络连接问题:

2个节点都在同一主机:通过127.0.0.1地址连接

2个节点在同一个内网内:通过局域网地址连接

2个节点都有公网地址:通过公网地址连接

1个节点在内网,1个节点在公网:内网的节点通过在公网节点的公网地址连接

这里有一个问题,如果2个节点处于两个不同内网环境,由于存在NAT设备,NAT设备可能是对称型,对称型的NAT设备是没有办法穿透的,所以IPFS提供了relay的方式解决不同内网环境下节点的连接问题,上面提到的监听/p2p-circuit地址则是为了解决该问题,对于2个处于不同内网环境不能直接连接的节点,通过配置relay节点中转从而建立连接。

腾讯区块链总经理蔡弋戈:希望通过区块链技术 赋能小微企业:财联社2月4日讯,腾讯区块链总经理蔡弋戈在2月3日的“2017-2018中国区块链风云榜盛典”中提到,腾讯目前的定位是希望通过区块链技术,赋能小微企业,降低社会融资成本,提升资金配置效率、提升流动性。通过腾讯区块链技术和运营资源,来链接核心企业资产端和金融机构资金端,实现对小微企业流动性的支撑。[2018/2/4]

至此,IPFS解决了不同网络环境下的节点之间建立连接的问题,下面我们来看一下IPFS是如何构建大规模的分布式节点网络,将处于全世界的不同地区的各个节点连接起来的。

IPFS网络构建

IPFS网络构建的过程可以看作是两个阶段:

▲?Bootstrap阶段

IPFS节点在启动之前需要配置它的Bootstrap节点,配置文件中相关配置如下图所示,Bootstrap配置中配置了IPFS节点启动时需要连接的所有种子节点列表,这些节点地址列表信息是默认的,如果需要搭建IPFS私有网络可以修改成自己的种子节点列表。默认提供的种子节点都是具有公网地址的节点,IPFS节点启动的时候首先连接该种子节点,后续通过该种子节点去发现IPFS网络中更多的节点,从而进行连接,也就是DHT组网阶段。

国泰君安:区块链经济的核心不在技术 而在于商业逻辑的重构:国泰君安表示,区块链经济的核心不在技术,而在于商业逻辑的重构。因此,这不仅仅是一场技术革命,更是一场认知革命。目前国内也有很多公司开始探索和布局区块链,2018年将是区块链进入步入实际应用的阶段,会有很多精彩纷呈的项目落地,共享经济进入新时代。

国泰君安建议,有别于其他创新,区块链作为底层协议,需要一个学习期,上市公司短期也难从中获得盈利改善。但如果风险偏好提升,A股中涉及区块链的公司也有望受到资本热捧。受益标的:飞天诚信、四方精创、恒生电子、易见股份、壹桥股份、赢时胜等。[2018/1/10]

▲?DHT组网阶段

IPFS节点连接种子节点成功以后则去通过DHT去发现其他节点,关于DHT的详解可以看这篇文章《Libp2p中DHT和Bitswap详解》。

发现其他节点之后则尝试进行连接,连接成功的节点会加入到该节点的节点列表,以便后续可以直接与该节点通信,考虑到全世界的IPFS节点规模很大,不可能每个节点和其他节点保持长连接,所以对每个节点的连接数量做了限制,一般节点连接数量都在1千以下,对于没有连接的节点需要通信的话,可以通过DHT找到该节点地址,然后连接该节点进行通信,这样就构成了大规模的分布式节点网络。

我们可以通过一个示例展示上述过程。下图是一个常见的网络拓扑架构,有三个网络分别连接了Internet,IPFSnode1部署在具有公网ip的服务器上,外部可以直接访问该节点,IPFSnode2和IPFSnode3都部署在对称型NAT设备后面,外部不能访问该节点。

在上面的网络架构下,处于公网的IPFSnode1作为种子节点,种子节点最先启动,然后IPFSnode2,node3,node4,node5的种子节点配置成IPFSnode1,分别启动后首先连接IPFSnode1,连接成功后通过DHT发现其他节点最后分别连接,对于IPFSnode1,它连接的节点地址列表如下图所示,由于IPFSnode2,node3,node4,node5均处于NAT设备后面,所以IPFSnode1节点列表中这些节点的端口都是NAT设备映射后的端口。

对于IPFSnode3来说,它的节点地址列表中,IPFSnode1的地址是公网地址,由于IPFSnode3和IPFSnode2都处于NAT设备后面,不能直接连接,所以IPFSnode2的地址是relay地址,IPFSnode1节点作为relay节点,IPFSnode3给IPFSnode2发消息时通过IPFSnode1转发,relay地址格式为:

Relay节点的地址/p2p-circuit/p2p/目标节点id

而IPFSnode3的节点地址列表中,IPFSnode4和IPFSnode5的地址均为局域网地址,这样就完成了公网节点、处于NAT设备后的局域网节点的组网过程。

总结

以上就是IPFS网络的组建过程,为了方便描述只是以几个IPFS节点为例。

实际上IPFS的这种网络组建方式也能很好地支持超大规模节点的组网,当节点规模很大的时候,设置数十个节点作为种子节点,通过DHT组网就能完成数万甚至更多节点的组网,此时每个节点的长连接数量保持在数百个,后续节点间通信时,如果还没有建立连接,可以通过DHT根据节点id查询该节点的地址信息,然后通过该地址连接该节点最后完成通信过程。

IPFS网络的这种组建方式也非常值得分布式系统学习和借鉴。

作者简介

姚文豪来自数据网格实验室BitXMesh团队数据平台架构师

标签:ODENODEFSNSNONode All-StarNodeseedsFSN价格SNOOP

FIL热门资讯
加密货币:摩根大通调查:22%机构投资者认为他们的公司未来会交易加密货币_区块链证据保全怎么操作流程

摩根大通进行的一项调查发现,在目前没有交易过加密货币的公司中,有五分之一机构投资者认为他们的公司未来可能会交易加密货币.

1900/1/1 0:00:00
UNI:UNI再现两笔大额转账 一笔超2亿美元_ETH

据WhaleAlert数据,今日UNI午间再次出现两笔大额转账,时间均在11:56:17,其中一笔数量为250万,价值约6954万美元,另一笔则达790万枚,价值约2.2亿美元.

1900/1/1 0:00:00
BOS:Boson Protocol公布由社区管理的dCommerce DAO计划_TBOS价格

BosonProtocol在推特上宣布成立去中心化商业生态系统dCommerceDAO,“遵循由OceanProtocol创始人TrentMcConaghy提出的Web3可持续性模型的原则.

1900/1/1 0:00:00
比特币:为什么依然还有部分经济学家认为比特币毫无价值?_cosmos币官网

资产的内在价值决定了它在市场上的长期存在,毕竟“辛辣”的味道是辣椒的内在价值,它是有形的,可以感觉或被估计.

1900/1/1 0:00:00
CFX:Conflux发布锁仓及销毁公告:4170万枚CFX已销毁_CON

基于2020年12月14日网络升级投票,关于生态基金用途(ConfluxNetworkEcosystemFundUsage)以及剩余未发放FC发放完毕的预计周期(TheremainingFCto.

1900/1/1 0:00:00
NFT:NFT+盲盒的正确打开方式:锦上添花而非救命稻草_CRYP

撰文:0x13,律动BlockBeats你知道现在最火的NFT发售方式是什么吗?从最开始的定价出售、英式拍卖、荷兰拍卖.

1900/1/1 0:00:00