为什么Web3比以往任何时候都更需要实时数据层?_EOS:APP

由于今天的区块链实现成本太高,速度太慢,所以它现在无法作为通用的Web3计算平台,因为成功的系统是需要使用实时、链下数据来发现市场适应性的。

Web3现在处于一个棘手的位置,这不仅仅是因为高调的恶意行为者在区块链生态系统上留下的阴影,还因为现在其有三个重大问题很难克服:

与Web2.0相比,链上存储和写入操作的成本非常高。为了确保区块链系统所承诺的安全性,链上存储和写入操作的速度非常慢。因为需要51%以上的节点对写入的新数据的有效性达成一致,所以随着节点添加到网络中,以及写入请求流量的增加,性能会进一步下降。任何给定的区块链分类账的长度(大小)都会随着使用而显著增长,「冲破」了当今市场上绝大多数可用的数据库基础设施。操作数据库、分析数据库和分布式账本都是有效的不同类型的数据库管理系统。现在令人困惑的一点是,不同的点对点区块链网络,它们不仅仅是「数据库」,许多也是「服务器」,可用于托管(服务)开发人员编写的互联网应用程序(或「dApp」-去中心化应用程序)。

大多数新技术在找到适合市场的产品之前都会经历一个被过度使用的阶段。这三个挑战的根源就在于「正确的工具用在了错误的工作上」。例如,大多数IT专业人员不会将操作数据库用作分析数据库,反之亦然。再举个例子,在部署到区块链网络的dApp下面使用分布式账本作为操作或分析数据库,是一种特别糟糕的配对,原因会在下文当中进一步解释。

当然,区块链社区正在研究在不影响安全性的情况下解决性能问题的创新方法,但这需要时间。以太坊在这方面采取了一些行动以带来一些变化。我们都知道信任会被放在某个地方。区块链转移了对传统Web2.0模型的信任,但并没有从根本上消除这种需求——至少目前还没有。

链下的实时数据为Web3寻找适合的产品/市场提供了直接的前进路径。但是,这种方法会以dApp的操作/分析数据的形式将信任定位在Web2.0系统中。其实市场上大多数成功的dApp和基于区块链的服务已经做出了这种权衡,使用正确的工具、正确的工作方法,将每种技术用于其最擅长的领域。

在更深入地研究Web3如何以及为什么可以通过实时数据取得进展之前,让我们先考虑一下Web3的未来前景,先不考虑我们刚刚确定的这三个挑战。

什么将继续推动Web3向前发展?

首先,要记住区块链≠加密货币。Crypto是区块链概念和基础技术构建块的应用。NFT和更广泛的Web3概念也是如此。区块链的核心概念——不可篡改的交易、头寸和谁拥有什么的公共记录,在当前的金融体系中,此类分类账驻留在私人数据库中,只有通过管理机构、监管机构和法律的规则才能访问。

根据麦肯锡的数据,2021年,最大的Web3借贷平台发放了2000亿美元的贷款。贷款、存款、汇款、资产互换、贸易融资和保险已经成为有效的用例。其他点对点、游戏、社交和在线媒体起步较早,但表现出显著活跃势头。

数字身份服务以及供应链和物流管理仍然是一种可能性。

在封闭和受保护网络上的私有区块链系统可能不是创建者最初所设想的样子,但现在可以为特定行业和机构提供更通用的用例。

Web3提供商Alchemy本季度的报告指出,智能合约的部署比2021年同期增长了143%。

任何新想法都需要克服一些重大困难,但投资资金、开发者和机构的兴趣确实吸引了推动区块链向前发展的能量。随着核心技术的提升,Web3将创造更多的价值,更多价值的建立,又会带来新的机会,这将推动人们对解决监管、法律、数据隐私以及更好的开发人员和最终用户体验的兴趣。

Web3开发人员的链上数据注意事项

基于工作量证明的区块链产品所面临的挑战延伸到了其底层架构中。操作数据库对于快速、高效的数据存储和检索非常有用。分析数据库非常适合快速、开放式的查询和探索。非关系型数据库可大规模提供不同级别的操作或分析功能,而不会牺牲性能和可用性。

基于区块链的系统以牺牲性能为代价提供了安全、不可篡改的账本。试图使用一个安全的、只能追加的不可变账本作为一个可操作的、分析的或非关系型数据库将会导致以下问题:

不可接受的表现

Web2.0技术栈已经设定了世界上大多数人对快速响应的数字体验的期望,无论我们使用的是平板电脑、手机还是台式机/笔记本电脑,都不需要花费2分钟到6小时。大多数流行的区块链实现都基于缓慢的工作量证明算法,以保护对区块链数据存储的写入;缓慢的点对点共识,以确保跨节点网络的读取数据一致。

由于数据量过大导致生产中断

区块链不仅仅是一个「大数据」问题;它是巨大的,有着令人难以置信的数据,而且只会随着使用而变得更大。很少有操作或分析数据库能够达到这个级别,在这个级别上真正实现线性扩展的就更少了,这大大缩小了选择范围。

数据冲突和不准确

区块链广泛的点对点、最终一致的设计和工作量证明性质保证了其安全性,但会导致数据不一致,使其无法用作Web3应用程序的操作或分析数据库。

由于没有针对这些问题的错误消息或错误代码,因此编写错误处理代码来测试、解释或通过编写试图补偿的代码来处理这些错误是非常耗时的,甚至是不可能的。当然,在生产环境中进行调试或以其他方式进行调试,对于所有相关人员来说都是一场噩梦。下游技术支持将无法为愤怒的用户提供答案,开发人员也无法为技术支持人员提供答案。

不可接受的存储/使用成本

链上操作是昂贵的;以太坊区块链上1GB的数据需要花费数千美元。

来源:NoahRudermanonMedium

其他的注意事项

链下索引或同步区块链数据并不简单,因为数据不是人类可读的。区块链数据需要从第三方数据服务来解码、充实、重组和数据建模,然后才能被开发人员轻松使用。

解决方案:实时同步链下数据

流行的区块链网络实现需要时间来解决其设计中的性能问题。链下处理是IT专业人员同时利用现有数据库技术和区块链优势的主要技术。dApp应该从链下数据库读取数据,并将数据写回到链中(但只需要记录交易最终结果所需的最低限度的细节)。

通过将区块链的状态实时同步到操作或分析数据库,我们可以确保dApp快速操作的数据准确性/有效性。然后,当dApp和链下数据库完成尽可能多的预处理后,将最终结果提交回链上。

静态资产和二进制资产可以使用IPFS这样的系统,但出于同样的原因,考虑链下对象存储是明智的。因此,在实践中,具有链状态的始终同步克隆的链下数据库应该是尽可能多的操作或分析工作负载的读/写目标。

但是正如前面所讨论的,大量的数据会随着时间的推移破坏大多数数据基础设施。

使用正确的数据模型,应用程序是可以体验到亚秒级速度的,我们可以从像Redis这样的内存缓存中获得,也可以从持久性数据库管理系统(DBMS)中获得。如果一个非关系型数据服务可以在链下提供历史数据和始终最新的(实时)数据会怎样?

在索引过程中,原始数据被自动解码。对于开发人员来说,这改变了从原始十六进制数据处理区块链数据的体验,如下所示:

人类可读的数据是这样的:

然后,Web3开发人员通常需要重新组织和丰富来自第三方数据服务(如Etherscan、whatsabi、NFT元数据等)的链数据,以便能够让最简单的查询也能发挥作用。如果这些丰富的数据随后被建模到可查询的数据库表中,开发人员将拥有标准DBMS查询语言的全部功能(而不必学习区块链分析API)。

让我们来看一个例子:

开发意图:从BlockGroup134中搜索5个条目。

实际查询代码:

系统响应:

那么,这在实践中是什么样子的呢?为了使它生动起来,请看一下这两个示例应用程序,它们正是使用这种链下实时数据服务。Web3开发人员应该熟悉应用程序源代码;它是使用流行的Web3.js库编写的。

NFTExplorer

搜索每一个在几秒钟内创建的NFT;在单个API调用中提取NFT的传输历史记录。NFTExplorer使用React和NextJS构建,为用户提供了以太坊区块链支持的实时生成、传输的NFT的完整视图。

BlockchainExplorer

按区块号提取历史GAS价格;按区块号提取ERC20转账。与NFTExplorer一样,这个BlockchainDataExplorer从链下数据中提取所有区块链数据,并为用户提供最新挖矿区块的实时视图,以及最新的以太坊交易。

对Web3应用程序和开发者的好处

通过最小化dApp大小、链上数据存储和链下处理的区块链写入,大多数用例的运营成本将重新调整到Web2.0水平。用户在其选择的设备上的dApp性能恢复到可接受/预期的水平。然后,dApp开发人员可以设计适当的「等待时间」对话框、屏幕和警告,以设置用户在需要向基于区块链的系统提交写入操作时的期望。

最大、最棘手的数据一致性问题得到了解决,因为dApp的大部分操作数据都存储在快速、可靠的链下数据库中。这不仅节省了调试时间,而且也避免了可能无法解决的生产错误。

因为像非关系型数据库这样的链下系统可以处理大数据量,所以随着区块链的增长,我们的dApp将满足正常运行时间和响应时间的预期,而无需在投入生产后几个月重新设计昂贵的系统或从头重写。

对企业的好处

应用程序的损坏、缓慢或不准确会导致用户、投资者信任度下跌。那么将区块链状态实时同步到链下会有什么令人兴奋的事情?

分析型dApp:将dApp与链下分析数据库集成,打开了整个「Web2.0」选项和用例的格局。欺诈检测/预防功能:构建可以驱逐不良行为者或标记/阻止滥用的dApp,保护用户社区和业务。数字资产交易权威:NFT交易所需要准确/最新的市场数据,以促进最佳的交易/销售/交换。物联网应用:机器生成的数据,无论是来自软件还是硬件,其写入速度和容量只有非关系型数据库才能处理。数据主权:使用dApp定位区块链状态的同步副本——无论它部署在世界的哪个地方——出于遵从性、监管性以及法律原因。

区块链交易解析时间由协议决定,如果没有gas/交易费用或使用加速器服务,就无法进行加速。通过将尽可能多的预处理转移到链下,我们最大限度地减少交易最终结果的大小和频率。这将降低链写入成本并提高任何用例的dApp速度。

总结

这种对实时数据的关注已经超出了区块链的范畴。这是一个行业已经创新了十多年的领域。但是像区块链这样的技术有助于实时数据成为数据架构和业务模型的一部分。

当我们等待量子密码学成为一种服务、原子钟无处不在以及分布式共识算法的新创新时,实时数据在今天的Web2.0成本结构中已可用。实时数据仍将是未来任何区块链实现的核心要素。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-4:282ms