月亮链 月亮链
Ctrl+D收藏月亮链

PIN:IPFS存储一致性难题?IPFS-Cluster帮你解决_CLU

作者:

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

引?言

星际文件系统是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的点对点超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。

在IPFS网络中,文件是拆分后存储在不同节点的,每个节点存储的内容并不相同,当我们使用IPFS私有网络来作为系统的文件系统时就存在存储一致性问题,如单个节点的故障导致存储的文件不可用。

IPFS-Cluster项目很好地解决了私有IPFS网络数据可用性问题,IPFS-Cluster通过给IPFS网络添加一层分布式共识协议,从而保证IPFS集群节点存储内容的一致性。IPFS-Cluster也是分布式的系统,附加在IPFS节点之上,通过维护全局一致Pinset并和IPFS交互来构建一致性存储。

图1?IPFS-Cluster示意图

IPFS-Cluster架构介绍

星际港湾:持续安全布局 推动IPFS领域发展:8月28日,分布式存储服务商星际港湾迎来两周年庆典,并开启为期7天的周年庆活动。星际港湾CEO Wendy表示“ 经过两年的发展,公司已经完成天使轮融资,硬件资产超1000W美金,我们始终将用户资产和硬件安全放在第一位。对任何企业来说,透明、安全都是不可逾越的企业红线,星际港湾秉承着运营透明、收益透明的服务理念,让用户可以放心参与分布式存储生态建设。”,此外星际港湾也将持续推动IPFS领域、区块链领域的发展。据悉,星际港湾目前已与电子科技大学实验室达成校企合作,双方也将在软硬件研发、区块链安全、IPFS生态建设等方面共同发力。[2021/8/28 22:42:59]

IPFS-Cluste是由各功能组件构成的,所以首先需要对组件化及各组件功能进行简单介绍;然后介绍使用IPFS-Cluster进行文件Pin操作的工作流程,与IPFSPin文件工作流程进行对比;Consensus组件是IPFS-Cluster能够完成分布式一致性存储的核心,最后会介绍基于“Raft”的强一致性分布式共识组件,和基于“Merkle-CRDT”的最终一致性共识组件。

“IPFS云管算力”第三期BGO认购专场于7月4日16:00开启:据官方消息,管交所BGOEX“IPFS云管算力”第三期BGO认购专场于7月4日16:00开启,至7月5日12:00结束,价格2000BGO/TB,总量2000T。“IPFS云管算力”由管交所BGOEX推出的一项支持用户按T和周期租赁IPFS云算力并享有挖矿权益的业务,该算力依托知名矿池而建。基于深厚的技术经验和成功的产品经验,在同等硬件条件下将获得更高的挖矿效率,专业化运维让产品和服务更安全且稳定。[2020/7/4]

图2?IPFS组件结构示意图

▲?组件化设计

IPFS-Cluster基于组件化设计,同节点的各组件之间通过内部RPC进行通信,此方案很容易把各组件部署到不同的机器,是一种极其容易扩展的架构设计。

IPFS-Cluster由以下8个组件组成:

Consensus共识组件:?负责在集群节点之间实现一致性,使所有节点的Pinset保持一致,并且管理节点的加入及退出。目前支持两种共识算法“Merkle-CRDT”和“Raft”。

PinTracker组件:PinTracker处于共识组件和IPFS中间层,PinTracker接收并维护Consensus组件发送的Pin操作,通过RPC组件将Pin操作发送到IPFS。

BKEX Global将于明日认购IPFS云算力:据BKEX Global公告,BKEX Global将于2020年6月9日20:00(UTC+8)开启首期认购IPFS云算力活动,认购总量为:26.5万美金,首期业务据悉依托云虎矿池而建。

IPFS星际文件系统是个旨在创建持久且分布式存储和共享文件的络传输协议,它是一种内容可寻址的对等超媒体分发协议。Filecoin是在IPFS其上的激励层,通过Token激励模式在IPFS上构建了一个去中心化存储市场。[2020/6/8]

PeerMonitor组件:?负责维护集群节点的状态,PeerMonitor周期性的检查节点存活状态。

State组件:存储Pin操作的数据库,便于对Pin操作进行增、删、查等操作。

RestApi组件:该组件提供了基于HTTP的ClusterPeer功能的访问服务器。

IPFSProxy组件:是一个代理endpoint,可以用来调用IPFS-Cluster连接的IPFS。某些请求比如Pin/Unpin等会被拦截并触发IPFS-Cluster集群操作,从而操作会在集群所有节点执行。未被拦截的请求都直接转发Cluster所连接的IPFSDeamon。

声音 | 江卓尔:要小心拿一些破NAS包装成 “IPFS矿机” 然后炒高价的割韭菜行为:江卓尔在微博称:“我认可分布式存储带来的信息自由,但我强调要投一个赛道,而不是押一个项目,虽然IPFS目前名气最大,但也有可能最后做不起来,IPFS目前离实用还有很长一段距离。另外,要小心拿一些破NAS包装成 “IPFS矿机” 然后炒高价的割韭菜行为。”[2019/5/21]

Allocator/Informer组件:Informer组件用于监控系统的硬盘使用情况、Pin操作的数量。Allocator组件用来选择文件Pin到的具体节点,系统可以根据硬盘使用情况来选择文件存储到的节点,把文件存储到特定的节点。

RPC组件:?系统使用内部RPC在同节点各组件间进行通信,外部RPC在不同节点各组件间进行通信,提高了系统的可扩展性。

▲?Pin处理流程

当使用IPFS-Cluster添加内容时和IPFSadd命令添加内容命令的选项基本相同。但是IPFSadd命令仅将内容添加到本地IPFS,IPFS-Cluster同时添加到多个集群节点连接的IPFS,具体添加到多少个节点依靠ReplicationFactors参数控制。

金色财经现场报道 IPFS、Filecoin中国区技术布道人董天一:比特币的未来是不可预测的:金色财经现场报道,在西部中小企业发展论坛上,开展了以《目前中国区块链行业现状》为主题的圆桌讨论,IPFS、Filecoin中国区技术布道人董天一指出:从经济学底层解释,所有的收益最终都要平衡为现实世界的收益平均值。超高收益只会存在一段时间。没有风控,哪来投资,那是。到现在,比特币的挖矿已经非常透明了,比特币现在1T24小时的算力只能生成23.6元。其实现在比特币的收益率已经跌到一些人的成本线以下了。我一直坚信一点,未来是不可预测的,我们没有办法知道比特币最后会怎样,甚至有可能归零。我建议的态度是,买一个比特币,守着,万一它涨了呢,仅此而已。[2018/4/28]

Pin和Unpin是集群操作的核心,涉及多个内部组件,但有两个主要阶段:

ClusterPin阶段:持久化Pin操作,并通过共识组件广播给其他集群节点。

首先接收到一个Pin请求,请求包括特定参数。

根据参数会选择Pin到哪个节点,ReplicationFactors决定多少副本,磁盘空间决定选择哪个节点来进行存储。

共识组件负责将Pin请求广播到集群其它节点。

IPFSPin阶段:被指定的IPFS负责将文件内容成功Pin到本地。当Cluster-Pinning阶段完成,每个节点会被通知有个新的Pin工作,如果节点在配置列表中,会调用IPFS来进行Pin操作。

PinTracker组件开始追踪CID。

如果分配到节点,IPFSPinadd操作被执行。

PinTracker会等待IPFSPinadd操作完成,如果Pin出现错误则会进行上报处理。

这两个阶段是异步处理的,ClusterPin阶段处理后就会给用户返回应答,IPFS-Pinning阶段处理比较慢,由PinTracker对Pin过程进行管理。如果IPFSPin失败,或Pin超时失败,Cluster会接收异常情况,并定期运行Recover功能来进行异常处理。

▲?Consensus共识组件

共识组件主要职责:

管理全局Pinset集合,包括从其它节点获取或者向其它节点发送Pin操作命令。

管理Pinset相关的文件在IPFS中的持久化存储。

在所有的节点间实现分布式一致,所有的节点需要收敛相同的Pinset。

管理集群节点,包括节点加入离开,设置节点间的管理机制。

设置节点信任机制,定义哪些节点可以访问本地RPC服务。

IPFS-Cluster共识组件目前有两种具体实现,基于“Raft”的强一致性分布式共识,和基于“Merkle-CRDT”的最终一致性共识。基于“Raft”的强一致性共识,对任何一个节点发起请求都会得到相同的回复,但将产生相对高的延迟;基于“Merkle-CRDT”的最终一致性共识具有更低的响应延迟,但可能会回复过期的数据,最终一致性即是经过一段时间后终会到达一致的弱一致性。

▲?基于Raft共识算法实现

(1)通过将更新直接发送到连接的每个节点来发布更新。

(2)在本地BoltDB保存所有的持久化数据。

(3)使用Raft共识来获得强一致性。集群选出一个Leader负责提交每个请求的日志,必须群集中超过一半的节点确认才能使操作有效。可以仅将追加日志合并并压缩为快照,然后将其发送给新的节点方。

(4)相信所有节点,所有节点都可以申请加入Raft集群,并且所有节点可以和其它节点进行网络通信,前提是他们都知道私有网络的ClusterSecret。

▲?基于Merkle-CRDT?实现

CRDT是Conflict-FreeReplicatedDataTypes的缩写,即“无冲突可复制数据类型”。Merkle-CRDT是IPFS-Cluster默认的共识组件实现。

(1)通过libp2p的pubsub组件来广播Pinset更新,通过DHT+Bitswap来定位并交换数据。

(2)在本地BoltDB保存所有的持久化数据。

(3)使用Merkle-CRDTs来达成最终一致性。Merkle-CRDTs是CRDT一种改进,使用Merkle-DAG作为共识的逻辑时钟,Merkle-DAG中每个Node代表一个操作,前一个操作Node作为后一个操作Node的Parent。这样不同节点间只需要对比并同步Merkle-DAG数据结构即可维持操作的一致性。Merkle-DAGs作为逻辑时钟是只增的,不能修改的。当新的节点加入时需要从RootNode开始遍历整个Merkle-DAG,当Merkle-DAG深度比较大时,这可能导致新节点加入处理流程过慢。

(4)不需要执行任何Peerset管理。通过pubsub收到“Ping”的每个对等方都被视为集群的成员。

IPFS-Cluster总结

IPFS-Cluster作为IPFS网络的附加层,通过添加分布式共识算法达到了IPFS集群存储的一致性。此方案可以将IPFS私有网络打造成高可用存储系统,也可以用来提高IPFS的稳定性。基于内部RPC的组件化设计非常适合分布式系统,整个系统可以很方便的扩展并部署到不同的节点。

当然,目前IPFS-Cluster还不支持基于文件系统的一致性存储操作,以集群形式添加的文件在IPFS中存储为Block格式,并不支持整个文件系统状态的分布式一致性维护。

作者简介

马耀耀

来自数据网格实验室BitXMesh团队研究方向:P2P网络、数据安全传输

标签:PINCLULUSUSTPinakionCLUBplus币上交易所了Trusted Node

比特币价格今日行情热门资讯
SEC:瑞波案最新进展:法官批准瑞波的取证动议申请_以太坊

周二,法官批准了瑞波的一项取证动议申请,该申请要求SEC出示有关比特币和以太坊的内部文件,这标志着瑞波方面的有利进展.

1900/1/1 0:00:00
FIL:一文回顾Filecoin“双花”事件始末_FILST币

从3月18日晚间至3月19日,社区对Filecoin“双花”事件进行了诸多讨论,经过与Filecoin官方等多方平台确认:Filecoin不存在“双花”问题,Filecoin链是安全的”.

1900/1/1 0:00:00
MIN:直播预告 | Mina主网发布会 · 更轻、更简的区块链协议_区块链

3月25日下午2点,Mina团队走进链节点直播间,进行Mina主网发布会。Mina首席执行官EvanShapiro、亚洲技术大使沙漏时间等将亲临线上,他们将与HashkeyCapital邓超、S.

1900/1/1 0:00:00
以太坊:插槽拍卖即将到来,如何捕获波卡生态蕴含的巨大机会?_ksm币有前景吗

在此之前Rococov1平行链测试网已经上线,并且经过测试、完善后已经完成了网络重启,据波卡官方表示,待Rococov1网络运行稳定,节点增加到一定数量后,就将启动平行链插槽拍卖.

1900/1/1 0:00:00
PLE:Ripple合作伙伴Mercury FX纳入南非监管沙箱_Mercury

南非政府间金融科技工作组近日公布监管沙箱第一批成员,其中包括Ripple合作伙伴MercuryFX。Mercury表示,希望展示其“将汇款缩短至几分钟”的技术能力.

1900/1/1 0:00:00
比特币:当投资者完成从股票市场到比特币的转变,意味着重大变革已经发生_BNB

尽管比特币经过了几天的调整,在撰写本报告时,比特币的价格波动仍然处于一个有利的地位并且有冲击新的历史最高价的可能,每日活跃地址数和交易量表现的都非常好.

1900/1/1 0:00:00