metamask钱包官方|为什么Web3比以往任何时候都更需要实时数据层?_MarsBit

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

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

与 Web 2.0 相比,链上存储和写入操作的成本非常高。为了确保区块链系统所承诺的安全性,链上存储和写入操作的速度非常慢。因为需要 51% 以上的节点对写入的新数据的有效性达成一致,所以随着节点添加到网络中,以及写入请求流量的增加,性能会进一步下降。任何给定的区块链分类账的长度 ( 大小 ) 都会随着使用而显著增长,「冲破」了当今市场上绝大多数可用的数据库基础设施。

操作数据库、分析数据库和分布式账本都是有效的不同类型的数据库管理系统。现在令人困惑的一点是,不同的点对点区块链网络,它们不仅仅是「数据库」,许多也是「服务器」,可用于托管 ( 服务 ) 开发人员编写的互联网应用程序 ( 或「dApp」- 去中心化应用程序 )。

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

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

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

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

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

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

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

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

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

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

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

Web3

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

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

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

不可接受的表现

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

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

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

数据冲突和不准确

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

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

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

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

Web3

来源:Noah Ruderman on Medium

其他的注意事项

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

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

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

Web3

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

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

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

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

Web3

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

Web3

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

Web3

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

让我们来看一个例子:

开发意图:从 Block Group 134 中搜索 5 个条目。

实际查询代码:

Web3

系统响应:

Web3

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

NFT Explorer

搜索每一个在几秒钟内创建的 NFT;在单个 API 调用中提取 NFT 的传输历史记录。

NFT Explorer 使用 React 和 Next JS 构建,为用户提供了以太坊区块链支持的实时生成、传输的 NFT 的完整视图。

Blockchain Explorer

按区块号提取历史 GAS 价格;按区块号提取 ERC20 转账。

与 NFT Explorer 一样,这个 Blockchain Data Explorer 从链下数据中提取所有区块链数据,并为用户提供最新挖矿区块的实时视图,以及最新的以太坊交易。

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

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

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

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

对企业的好处

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

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

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

总结

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

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