宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 比特币 > 正文

为大负荷设计的 Filecoin 索引器可扩展方案

作者:

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

来源:FilecoinNetwork

这篇文章描述了一个简单的策略,可将大量涌入的索引负荷分散到由索引器节点组成的索引池中。同时,它让这个索引池具备可扩展性。

索引器扩容的最终目标是10^{15}个索引。这并非存储数据的字节大小,而是存储索引的数量。一个索引实际上就是一张描述了CID标识与内容提供者数据之间关系的映射图。实际的数据规模将会远大于此。目前,我们可处理约10^{12}个索引,随着时间的推移,我们会通过一列步骤向最终的扩容目标前进。

目前,大部分的索引负荷是由涌入的索引数据构成的。新增的数据可能超过单一的索引器能够承受的范围,它还在极速增加。因此,目前扩容路上最迫切的目标,就是处理增加中的涌入负荷。

方案:处理索引涌入的简单策略

数据涌入

一个索引器接收到某个发布者传来的“announce”消息,宣布已经有新的索引数据广告时,就会发生数据涌入。作为回应,该索引器会从发布者那里检索所有尚未检索过的索引数据。随着发布者数量增加,在某个时候,单一的索引器节点将无法跟上新增索引数据发布的速率,也可能没有足够的存储空间来全部存储这些数据。

分散涌入负荷

索引器扩容处理拥堵负载,是基于一个简单策略——将涌入的索引负荷分散到由索引器节点组成的索引池中,这样就能根据容量需求来增加节点,而不需要将数据到处移动来重新达到均衡。它先是分配不同的内容_发布者_给不同的索引节点,这样每个节点可以处理涌入负荷的一部分。这是通过使用单独的轻量服务AssignerService来实现的,后者不属于关键的索引涌入路径的一部分。

Michael Saylor:正为大企业加入比特币闪电网络研究解决方案:金色财经消息,MicroStrategy执行主席Michael Saylor表示,该公司的开发人员正在研究允许大量人员加入闪电网络(Lightning)的解决方案,包括闪电网络的企业应用:企业闪电钱包、企业闪电服务器、企业身份验证。

据悉,闪电协议允许用户在链上结算之前相互打开支付渠道并交换多笔交易,这有助于最大限度地减少费用和确认时间。在比特币网络中,交易通常需要 10 分钟或更长时间才能被确认。(CoinDesk)[2022/9/5 13:09:15]

当一个索引器达到了配置的存储限制后,它就会停止吸纳新增的索引数据,而索引池里的其他索引器会从分配给完整索引器的发布者那里恢复吸纳数据。如果存储容量和涌入负荷分配需求增加,池子里就会增加更多的索引器节点。

这个扩容策略的三个主要组件是:

分配服务:它将发布者分配给索引器。

索引器冻结模式:这种索引器运作模式里,新内容不会被索引。

移交发布者任务:将冻结中的索引器的发布者任务重新分配给活跃的索引器,以在冻结索引器停止运行后恢复索引。

这篇文章会概括描述这些组件。可以在设计文档和设计展示中获取更多信息。

扩容策略的优缺点

CBTC CMO Romain:跨链桥是一个公链生态从少数人的喜好,逐渐发展为大多数人共识的关键一步:CBTC CMO Romain在出席3月14日的Cardano生态云峰会时表示:一个公链生态从少数人的喜好逐渐发展为大多数人的共识,而跨链桥就是其中的关键一环。CBTC Bridge是Cardano生态系统中的第一个跨链桥。它的使命不仅是让Cardano生态与外界更好的连接,更重要的是让更多的粉丝能够轻易的接入Cardano生态。CBTC Bridge选择了Huobi Trust作为合作伙伴,这是第一批支持BTC、ETH、USDT和USDC跨链的资产。选择与托管人合作是CBTC的一个重要行动。这几乎完美地保证了参与者的跨链资产的安全性和发行资金的顺利运作。[2022/3/15 13:57:50]

优点:

更少的同步工作:不需要让每一个索引者与每一个发布者同步。

元数据不会重复发送给多个索引器:元数据只会在处理提供者的索引器上存在。

索引器之间不会分享数据。它们各自管理自己的发布者链。

不需要只为了检查提供者而去阅读广告,这与提供者分片一样。

索引器可有不同的存储容量。

不需要共识机制。

涌入负荷可重新分配,而无需在索引器之间移动数据。

动态 | 币安交易所转出280万枚USDT,资金状态为大幅净流出:据合约帝链上数据监测显示,北京时间6月14日13:40分,币安交易所转出两笔USDT进入1KjHW开头的地址,数额均为1399995枚,共计约280万枚。据悉,币安交易所链上账户24小时内USDT流入为3360万枚,流出为5190万枚,呈大幅净流出状态,净流出额为1827万枚。[2019/6/14]

缺点:

不平均的分配:一些发布者可能会比其他发布者索引更多的数据。

查询请求需要分散和合并:查询请求会重复发送给所有索引器,而响应会合并成一个发送给客户。

提供者更改发布者可导致重复索引。

增加索引者不会马上起效,除非一个现有的索引器达到了存储容量限制。

这方案的整体好处是它的实施方案相对简单,也能去除拥堵扩容的限制。

分配服务

分配服务负责将发布者分配给在其配置索引器池中的索引者。对一个索引器池来说,它作为单一实例运行在其管理的索引器所在的同一网络上。一个索引器只能作为一个分配服务的索引器池里的成员。

除了将新的发布者分配给索引器外,分配服务还检测检索器节点是否进入了冻结模式,并负责将发布者从冻结索引器重新分配给非冻结的索引器。索引服务还通过gossippubsub渠道重新发布直接的HTTP公告,这样池中的所有索引器都能接收到这些信息。

动态 | 委内瑞拉希望利用石油币为大型住房计划提供资金:据Prensa Latina新闻社报道,在委内瑞拉2019年第一次政府会议期间,住房部长Ildemaro Villarroel邀请国营公司和私营公司参会,希望他们支持利用石油币为大型住房计划提供资金这项雄心勃勃的计划,重点是为民众建造新的公寓楼。该官员强调,使用主权数字货币为建设项目提供资金也将有助于巩固南美国家的经济独立性。[2019/1/7]

基于几个假设,分配服务是用于单个私有部署中使用:任务可以发给任何索引器,所有索引器的管理API是在私有网络上运行,而且也没有建立任何方式或协议让不同的参与方管理池子中要添加或移除的节点。

将一个发布者分配给一个索引器

一个索引器接收到某个发布者传来的“announce”消息,宣布已经有新的索引数据广告时

分配服务会监听gossip-sub和直接的HTTP消息——这些消息主要是宣布新广告可被获取了。它从每一条消息中读取发布者信息,并判断发布者是否已经分配给需要的索引器。如果答案是否定的,该分配服务就会选择任务量最少的索引器,并将该发布者分配给这个索引器。在分配任务后,索引器会收到来自发布者的公告,并自行处理涌入数据。

索引服务会处理离线的索引器,它所用的方式能避免在索引器池里过度分配任务。索引服务还支持将特定发布者分配给特定索引器的配置选项。

动态 | 曹妃甸大数据产业园升级为大数据区块链产业园:曹妃甸大数据区块链产业园正式成立,此前的曹妃甸大数据产业园将正式升级为曹妃甸大数据区块链产业园,是首个京津冀地区大数据区块链产业园、区块链试验区。曹妃甸大数据区块链产业园将全面支持符合国家政策的区块链公司入驻,入驻支持包括公司名称,区块链经营范围,资质审批,空间补贴等等。[2018/10/12]

进一步阅读材料:

非持久化任务状态(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#no-persisted-assignment-state)意味着索引器能在任何时候停止或重启。

索引器池(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#indexer-pool)在某个单一部署中的索引器节点的集合。

任务复制(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#replication)将发布者分配给多个索引器。

索引器冻结模式

索引器存储使用触及到配置`FreezeAtPercent(<``https://pkg.go.dev/github.com/ipni/storetheindex/config#Indexer`(https://pkg.go.dev/github.com/ipni/storetheindex/config#Indexer"https://pkg.go.dev/github.com/ipni/storetheindex/config#Indexer")`>)`的限制后,索引器自动进入“冻结”模式。这个运作模式里,索引器不再存储新增的索引数据,但还是会处理索引数据的更新或删除。一个冻结的索引器不会接受新的发布者任务。在其内部,该索引器追踪它已读的每一个广告链,目的是纳入广告。索引器会持续响应对索引数据的查询。

索引器也可以通过其管理(admin)API来手动进行冻结。这可以是为了暂时冻结纳入数据,直到索引器的存储容量提升为止。这样,持续的索引工作可以被其他索引器节点代替。

进一步阅读材料:

磁盘使用监控(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#disk-usage-monitoring)由每一个索引器负责。

冻结的能力不依赖于分配服务(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#freeze-independent-of-assigner)。

解除冻结的能力(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#unfreeze)可让索引器恢复索引工作。

发布者移交

分配服务定期统计索引器,要是它发现某个索引器被冻结,它就会将该被冻结的索引器分配的发布者重新移交给其他索引器——活跃的索引器会继续之前冻结索引器上所做的工作。在移交过程中,活跃的索引器也会从冻结的索引器那取得提供者及其相关的进一步信息。

分配服务决定哪一个索引器将接收发布者的移交工作——这与分配新发布者的逻辑一样。每一个发布者的移交过程都会单独进行这一步骤,这样冻结索引器的任务就会分配给池子里的可用索引器。

进一步阅读材料:

分配服务可以恢复不完整的移交任务(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#resuming-incomplete-handoff)。

发布者数据在冻结和活跃索引器之间分发。(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#publisher-data-spread-across-frozen-and-active-indexers)

设立带有分配服务的索引器池

这里(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#setting-up-indexer-pool-with-assigner-service)描述了设立带有分配服务的索引器池的过程。可概括为以下步骤:

部署索引器(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#deploy-indexers)

部署分配服务(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#deploy-assigner-service)

按需部署额外的索引器(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#example-assigner-service-configuration)

这里还提供了分配服务配置模板文件(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#example-assigner-service-configuration)。

标签:INDnDEXDEXINDEXPEPELINDA币Galactic Blue Indexmdex币价格PONY Index

比特币热门资讯
币安 Launchpad 上新惹争议:标准何在?原因为何?

作者:flowie,ChainCatcher今天下午,币安宣布即将上线Launchpad项目?OpenCampus后,迅速引发争议.

1900/1/1 0:00:00
一文概览 Ordinals 技术、生态和数据

作者:LouisWang,Biteye核心贡献者?编辑:Crush,Biteye核心贡献者? 01比特币网络的创新 作为数字黄金,比特币的市值占据了加密货币市场的一半以上.

1900/1/1 0:00:00
为什么说 zkRollup 的可行性起源于零知识证明的计算代理思想?

作者:FoxTechCTO林彦熹,FoxTech首席科学家孟铉济 前言 Prover和Verifier之间的计算代理思想是零知识证明的核心内容之一,是调节证明者和验证者工作量于复杂度之间取舍的工具.

1900/1/1 0:00:00
a16z:如何通过零知识证明验证链上机器学习算法?

原文标题:Checksandbalances:Machinelearningandzero-knowledgeproofs原文作者:ElenaBurger,a16z 编译:DeFi之道 在过去的几年里.

1900/1/1 0:00:00
Ava Labs 创始人因加密货币诽谤诉讼获赔 300 万美元

AvaLabs创始人兼首席执行官EminGünSirer赢得了一位加密货币影响者公开指责他在2021年加入土耳其恐怖组织的诽谤诉讼,获赔300万美元.

1900/1/1 0:00:00
深度解析币安 Launchpad 项目 Open Campus(EDU)

作者:Lucky,Biteye4月21日,据币安官方公告,Binance即将上线第31个Launchpad项目OpenCampus,并开启BNB专场,此次售卖将基于投入模式.

1900/1/1 0:00:00