【深度好文】Web3数据的演变与挑战

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 在我们接受变革和不确定性的同时,我们也被挑战着不断拓展可能性的边界。在这个背景下,我们设想一个世界,人工智能、LLM和区块链的结合将孕育一个更加开放和包容的技术领域。

自中本聪决定在创世区块中嵌入一条信息以来,比特币链的数据结构已经经历了一系列的变革。

我在2022年开始深入研究区块链开发,首本阅读的书籍就是《精通以太坊》。这本书极其出色,为我提供了大量关于以太坊和区块链基础知识的深入理解。然而,从现在的视角来看,书中的一些开发技巧已经显得有些过时。初步步骤涉及在个人笔记本电脑上运行一个节点,即使是为了钱包dApp,也需要自行下载一个轻节点。这反映了2015年至2018年间区块链开发生态系统中早期开发者和黑客的行为模式。

回溯到2017年,我们并未有任何节点服务提供商。从供需关系的角度来看,由于用户活动有限,他们的主要功能是进行交易。这意味着自行维护或托管一个完整节点并不会产生太大的负担,因为没有太多的RPC请求需要处理,转账请求也并不频繁。大部分的以太坊早期采用者都是技术极客。这些早期用户对区块链开发有深入的理解,并且习惯于通过命令行或集成开发环境直接维护以太坊节点、创建交易和管理账户。

因此,我们可以观察到早期的项目通常具有非常简洁的用户界面/用户体验。其中一些项目甚至没有前端,用户活动相当低。这些项目的特点主要由两个因素决定:用户行为和链的数据结构。

节点提供者的崛起

随着越来越多的无编程背景的用户投身于区块链网络,去中心化应用的技术架构也随之发生了变化。原先由用户托管节点的模式逐渐转变为由项目方进行节点托管

1.png

人们趋向于选择节点托管服务,主要原因是链上数据的迅速增长使得个人托管节点的成本随着时间推移而逐渐增大。

2.png

然而,对于小型项目的开发者而言,由项目团队自行托管节点仍然是一项挑战,它需要持续的维护投入和硬件成本。因此,这种复杂的节点托管过程通常被委托给专门从事节点维护的公司来处理。值得一提的是,这些公司在大规模建设和筹集资金的时间点与北美科技产业兴起的云服务趋势相吻合。

Project Category Established since
Alchemy Nodes 2017
Infura Nodes 2016
NowNodes Nodes 2019
QuickNodes Nodes 2017
Ankr Nodes 2017
ChainStack Nodes 2018

3.png

仅仅通过远程托管节点并不能完全解决问题,尤其是在DeFi、NFT等相关协议兴起的现在。开发者需要处理大量的数据问题,因为由区块链节点本身提供的数据被称为原始数据,这些数据并不是经过标准化和清洗处理的。其中的数据需要被提取、清洗和加载。

例如,假设我是一个NFT项目的开发者,我想要进行NFT交易或者展示NFT。那么我的前端就需要实时读取个人EOA账户中的NFT数据。NFT实际上只是一种标准化的代币形式。拥有一个NFT意味着我拥有由NFT合约生成的一种唯一ID的代币,而NFT的图像实际上是元数据,可能是SVG数据或者指向IPFS上的图像链接。尽管以太坊的Geth客户端提供了索引指令,但对于一些前端需求较大的项目来说,连续请求Geth然后返回前端在工程上是不切实际的。对于一些功能,比如订单拍卖和NFT交易聚合,它们必须在链下进行,以收集用户的指令,然后在适当的时机将这些指令提交到链上。

因此,一个简单的数据层应运而生。为了满足用户的实时性和准确性要求,项目方需要构建自己的数据库和数据解析功能。

4.png

数据索引器是如何演变的?

启动一个项目通常是相对简单的事情。你拥有一个构思,设定了一些目标,找到了最优秀的工程师,搭建了一个实用的原型,这通常包括前端和几个智能合约。

然而,要让项目规模化却是相当困难的。人们需要从项目开始的第一天就对设计结构进行深思熟虑。否则,你很快就会遇到一些问题,我通常将这种情况称之为“结冰问题”。

5.png

我从《钢铁侠》电影中借鉴了这个术语,它似乎非常适合描述大多数创业公司的境遇。当初创公司快速增长(吸引了大量用户)时,他们常常会遭遇困境,因为他们最初并未预见到这种情况。在电影中,反派角色因为没有考虑到“结冰问题”,从未预料到他的战争装备会飞入太空。同样,对于许多Web3项目的开发者来说,“结冰问题”涉及到处理大规模用户采用带来的负担增加。随着用户数量的急剧增长,这给服务器端带来了沉重的压力。还有一些问题是与区块链本身相关的,例如网络问题或者节点关闭。

6.png

大多数情况下,这是后端的问题。比如在一些区块链游戏协议中,这种情况屡见不鲜。当他们计划增加更多的服务器并且雇佣更多的数据工程师来解析链上数据的时候,并没有预见到会有如此多的用户参与进来。等他们意识到这一点时,已经晚了。而且这些技术问题并不能仅仅通过增加更多的后端工程师来解决。正如我之前所说,这些考虑应该从一开始就纳入到计划中。

第二个问题涉及到添加新的区块链。你可能一开始就避开了服务器端的问题,并且聘请了一批优秀的工程师。但是,你的用户可能对当前的区块链不满意。他们希望你的服务也能在其他流行的链上运行,比如zk链或L2链。你的项目架构最终可能会变成如下这样:

7.png

在这种系统中,你对自己的数据有完全控制权,这有助于更好地管理和提高安全性。系统限制调用请求,降低过载风险并提高效率。而且该设置与前端兼容,能确保无缝集成和用户体验。

然而,运营和维护成本会成倍增加,这可能会给你的资源带来压力。每次添加新的区块链都需要重复的工作,这可能会耗费大量时间且效率低下。从大量数据集中选取数据可能会降低查询时间,潜在地减缓进程速度。由于区块链网络问题(如回滚和重组),数据可能会受到污染,从而危及数据的完整性和可靠性。

项目的设计反映了你的团队成员。添加更多节点并试图构建一个以后端为重的系统意味着你需要雇佣更多工程师来操作这些节点和解码原始数据。

这种模式类似于互联网初期,电子商务平台和应用程序开发人员选择建立自己的IDC(互联网数据中心)设施。然而,随着用户请求的增长和区块链网络的状态爆发,成本与程序设计的复杂性齐头并进。此外,这种方法阻碍了市场的快速扩张。某些高性能的公共区块链要求硬件密集型的节点操作,而数据同步和清理则不断消耗人力资源和时间成本。

如果你试图构建一个基于区块链的NFT市场或酷炫的游戏,那么你的团队成员中有65%是后端和数据工程师,这难道不奇怪吗?

也许开发人员会想,为什么没有人帮他们解码和传输这些链上数据,这样他们就可以专注于构建更好的产品。

我相信这就是索引器出现的原因。

8.png

为了降低接入Web3应用程序和区块链网络的难度,包括我们在内的许多开发团队选择将存档节点维护、链上数据ETL(提取、转换、加载)和数据库调用等步骤进行整合。这些任务原本需要项目团队自行维护,现在则通过提供多链数据和节点API的方式,实现了集成化运作。

借助这些API,用户可以根据自己的需求定制链上数据。这涵盖了从热门NFT元数据、监控特定地址的链上活动,到追踪特定代币流动性池的交易数据等各类需求。我经常将这种方法称为现代Web3项目结构的一部分。

9.png

数据层和索引层项目的融资和建设主要在2022年进行。我相信,这些索引层和数据层项目的商业实践与它们底层数据架构的设计密切相关,特别是与OLAP(On-Line Analytical Processing,联机分析处理)系统的设计关系深刻。采用合适的核心引擎,是优化索引层性能的关键,包括提升索引速度和保障其稳定性。常用的引擎有Hive、Spark SQL、Presto、Kylin、Impala、Druid、ClickHouse等。其中,ClickHouse是一个功能强大的数据库,在互联网公司中广泛应用,它在2016年开源,而且在2021年获得了2.5亿美元的融资。

10.jpeg

因此,新一代的数据库和改进的数据索引优化架构的出现,促成了Web3数据索引层的创建。这使得在此领域的公司能以更快速、更高效的方式提供数据API服务。

然而,链上数据索引的大楼目前仍然被两朵乌云笼罩。

两朵乌云

第一朵乌云关乎区块链网络稳定性对服务器端造成的影响。尽管区块链网络具有很强的稳定性,但在数据传输和处理过程中并非如此。例如,区块链的重组(reorgs)和回滚(rollbacks)等事件可能对索引器的数据稳定性构成挑战。

区块链重组指的是节点暂时失去同步,导致两个不同版本的区块链同时存在。这样的情况可能由系统故障、网络延迟,甚至恶意行为引发。当节点重新同步时,它们将收敛到一个唯一的官方链,而先前的替代“分叉”区块则会被抛弃。

在重组发生时,索引器可能已经处理了来自最终被抛弃区块的数据导致数据库被污染。因此,索引器必须适应这种情况,丢弃无效链上的数据,并重新处理新接受的链上的数据。

11.png

这类调整可能会导致资源使用增加,并有可能延迟数据的可用性。在极端的情况下,频繁或大规模的区块重组可能会严重影响依赖于索引器的服务的可靠性和性能,包括那些使用API获取数据的Web3应用程序。

此外,我们还面临着关于数据格式兼容性和区块链网络间数据标准多样性的问题。

在区块链技术领域中,存在众多不同的网络,每一个网络都拥有自己独特的数据标准。比如,有EVM(以太坊虚拟机)兼容链、非EVM链,以及zk(零知识)链,每一种链都有其特殊的数据结构和格式。

这对索引器来说无疑是个大挑战。为了通过API提供有用且准确的数据,索引器需要能够处理这些多样化的数据格式。但是,由于区块链数据没有通用标准,不同的索引器可能会使用不同的API标准。这可能导致数据兼容性问题,即从一个索引器提取和转换的数据可能无法在另一个系统中使用。

12.png

此外,当开发者在这个多链世界中探索时,他们经常面临处理这些不同数据标准的挑战。一个适用于一个区块链网络的解决方案可能对另一个区块链网络无效,这使得开发可以与多个网络进行交互的应用程序变得困难。

的确,区块链索引行业面临的挑战让人想起了20世纪初开尔文勋爵在物理学中确定的两个未解决问题,这两个问题最终催生了量子力学和热力学等革命性领域。

面对这些挑战,业界确实采取了一些措施,例如在Kafka管道中引入延迟或集成流式处理,甚至建立一个标准联盟来加强区块链索引行业。这些措施目前的确能够解决区块链网络的不稳定性和数据标准的多样性,从而使索引器能够提供准确可靠的数据。

然而,正如量子理论的出现革命了我们对物理世界的理解一样,我们也可以考虑更激进的方法来改进区块链数据基础设施。

毕竟,现有的基础设施,以其井然有序的数据仓库和堆栈,可能看起来太完美、太美丽以至于让人难以置信。

那么,是否存在其他的道路呢?

寻找规律

让我们回到最初关于节点提供者和索引器出现的话题,并思考一个奇特的问题。为什么节点运营商没有在2010年出现,而索引器在2022年突然大量涌现并获得了大量的投资?

我相信我的上文已经部分回答了这些问题。这是因为云计算和数据仓库技术在软件行业中的广泛应用,而不仅仅在加密领域。

在加密领域,也发生了一些特别的事情,特别是当ERC20和ERC721标准在公众媒体上变得流行的时候。此外,DeFi夏季使得链上数据变得更加复杂。各种调用交易在不同的智能合约上进行路由,而不再只是早期阶段那样的简单交易数据,链上数据的格式和复杂性都发生了惊人的变化和增长。

13.png

虽然在加密货币社区内,一直强调与传统的Web2技术进行切割,但我们不能忽视的是,加密货币基础设施的发展是依赖于数学、密码学、云技术和大数据等领域的不断发展与突破。类似于中国传统的榫卯结构,加密货币生态系统中的各个组成部分都是紧密相连的。

科技的进步和创新应用总是会受到一些客观原则的约束。比如,如果没有椭圆曲线加密技术的基础支撑,我们今天的加密货币生态就无法存在。同样,如果没有麻省理工学院在1985年发表的关于零知识证明的重要研究论文,零知识证明的实践应用也将无法实现。因此,我们看到了一个有趣的模式。节点服务提供商的广泛应用和扩张,正是基于全球云服务和虚拟化技术的快速增长。与此同时,链上数据层的发展又是基于出色的开源数据库架构和服务的蓬勃发展这些架构正是近年来众多商业智能产品所依赖的数据解决方案。这都是初创公司为了实现商业可行性而必须满足的技术前提条件。针对Web3项目来说,那些采用先进基础设施的项目往往比那些依赖过时架构的项目更具优势。OpenSea市场份额被更快速、更加用户友好的NFT交易所侵蚀,就是一个生动的例证。

此外,我们也可以看到一个明显的趋势:人工智能(AI)与 LLM技术已经逐渐成熟,并且具有广泛应用的可能性。

因此,一个重要的问题浮现出来:AI将如何改变链上数据的格局?

预测未来

预测未来总是充满困难的,但我们可以通过理解区块链开发中遇到的问题来探索可能的答案。开发者对链上数据有明确的需求:他们需要的是准确、及时,并且易于理解的链上数据。

我们目前面临的一个问题是,批量获取或是展示某些数据需要使用复杂的SQL查询。这也是为什么在加密社区中,Dune提供的开源SQL功能如此受欢迎。用户无需从头开始去写sql构建图表,只需fork并修改想要关注的智能合约地址,就可以创建他们所需的图表。然而,对于只希望在特定条件下查看流动性或空投数据的普通用户来说,这仍然过于复杂。

我认为,解决这个问题的第一步是利用LLM和自然语言处理。

我们可以构建更以用户为中心的“数据查询”界面,并利用LLM技术。在现有的情况下,用户必须使用诸如SQL或GraphQL这样的复杂查询语言,从API或Studios中提取相应的链上数据。但是,通过使用LLM,我们可以引入一种更直观、更符合人类习惯的提问方式。在这种方式下,用户可以用“自然语言”表达他们的问题,然后LLM会将其转化为合适的查询,并向用户提供他们所需的答案。

14.png

从开发者的视角出发,人工智能还可以优化链上合约事件的解析及ABI解码。目前,许多DeFi合约的细节都需要开发者手动解析和解码。但若引入人工智能,我们可以显著改进各类合约反汇编技术,迅速检索相应的ABI。结合大型语言模型(LLM),这种配置可以智能解析函数签名并高效处理各种数据类型。进一步地,当该系统与“流计算”处理框架相结合时,就能够实时处理交易数据的解析,满足用户的即时需求。

从更全局的角度看,索引器的目标是为用户提供精准数据。正如我之前所强调的,链上数据层的一个潜在问题是,各个数据片段分散在不同的索引器数据库中且相互隔离。为满足多样化的数据需求,一些设计者选择将所有链上数据整合到一个数据库中,使用户能从单一的数据集中选取所需信息。有些协议则选择仅包含部分数据,比如DeFi数据和NFT数据。但数据标准不兼容的问题仍然存在。有时,开发者需要从多个来源获取数据并在自己的数据库中重新格式化,这无疑增加了他们的维护负担。此外,一旦某数据提供方出现问题,他们无法及时迁移到另一个提供方。

15.png

那么,LLM和人工智能如何解决这个问题呢?LlamaIndex为我提供了一个启示。假如开发者不需要索引器,而是利用一个部署的代理服务(agent)直接读取链上的原始数据,那会怎样?这个agent融合了索引器和LLM的技术。从用户的角度看,他们不需要了解任何关于API或查询语言的知识,他们只需要提出问题并即时得到反馈。

16.png

配备了LLM和人工智能技术,Agent能理解并处理原始数据,并将其转换为用户易于理解的格式。这消除了用户面对复杂API或查询语言的困扰,他们只需以自然语言提出问题,即可获得实时反馈。这一特性提高了数据的可访问性和用户友好度,吸引了更广泛的用户群体接触链上数据。

此外,代理服务(Agent)的方式解决了数据标准不兼容的问题。由于设计时已经考虑到它拥有解析和处理原始链上数据,它可以适应不同的数据格式和标准。因此,开发者无需从不同来源重新格式化数据,减轻了他们的工作负担。

当然,这只是对链上数据未来发展轨迹的一种推测。但在科技领域,通常是这些大胆的设想和理论推动了革命性的进步。我们应记住,无论是发明轮子还是区块链的诞生,所有的重大突破都源于某人的假设或"疯狂"想法。

在我们接受变革和不确定性的同时,我们也被挑战着不断拓展可能性的边界。在这个背景下,我们设想一个世界,人工智能、LLM和区块链的结合将孕育一个更加开放和包容的技术领域。

Chainbase秉承这一愿景,并致力于将其实现。

我们在Chainbase的使命是打造一个开放、友好、透明且可持续的加密数据基础设施。我们的目标是简化开发者对此类数据的使用,免去复杂的后端技术堆栈重构的必要性。通过这样的方式,我们希望迎来一个未来,在这个未来中,技术不仅服务于用户,更赋予他们力量。

然而,我必须澄清,这并不是我们的路线图。相反,这是我作为开发者关系代表,在社区中对链上数据最近发展和进展的个人思考。

作为chainbase社区的沟通桥梁,我邀请所有有相关想法的人加入我们的社区,与我们一起交流。

关于Chainbase

Chainbase是一个Web3的全能数据基础设施,允许您在规模上对链上数据进行索引、转换和使用。通过利用丰富的链上数据和流计算技术,Chainbase跨越一个数据基础设施实现了区块链数据的自动索引和查询,使开发者能够以更少的努力完成更多的工作。

想了解更多关于Chainbase的信息吗?

访问我们的网站 chainbase.com,注册一个 免费账户,并查看我们的 文档

网站博客推特DiscordLink3

文章来源:Web3 Data Stacks – The Evolution and Challenges

目录
相关文章
|
1月前
|
前端开发 JavaScript Python
Python Web应用中的WebSocket实战:前后端分离时代的实时数据交换
在前后端分离的Web应用开发模式中,如何实现前后端之间的实时数据交换成为了一个重要议题。传统的轮询或长轮询方式在实时性、资源消耗和服务器压力方面存在明显不足,而WebSocket技术的出现则为这一问题提供了优雅的解决方案。本文将通过实战案例,详细介绍如何在Python Web应用中运用WebSocket技术,实现前后端之间的实时数据交换。
75 0
|
3月前
|
JSON API 数据处理
Winform管理系统新飞跃:无缝集成SqlSugar与Web API,实现数据云端同步的革新之路!
【8月更文挑战第3天】在企业应用开发中,常需将Winform桌面应用扩展至支持Web API调用,实现数据云端同步。本文通过实例展示如何在已有SqlSugar为基础的Winform系统中集成HTTP客户端调用Web API。采用.NET的`HttpClient`处理请求,支持异步操作。示例包括创建HTTP辅助类封装请求逻辑及在Winform界面调用API更新UI。此外,还讨论了跨域与安全性的处理策略。这种方法提高了系统的灵活性与扩展性,便于未来的技术演进。
245 2
|
3月前
|
JSON 前端开发 JavaScript
|
1月前
|
存储 前端开发 API
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
92 0
|
1月前
|
存储 JSON 前端开发
JSON与现代Web开发:数据交互的最佳选择
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也便于机器解析和生成。它以文本格式存储数据,常用于Web应用中的数据传输,尤其是在客户端和服务器之间。
44 0
|
2月前
|
开发框架 JSON 缓存
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
在数字化浪潮推动下,RESTful API成为Web开发中不可或缺的部分。本文详细介绍了在Python环境下如何设计并实现高效、可扩展的RESTful API,涵盖框架选择、资源定义、HTTP方法应用及响应格式设计等内容,并提供了基于Flask的示例代码。此外,还讨论了版本控制、文档化、安全性和性能优化等最佳实践,帮助开发者实现更流畅的数据交互体验。
81 1
|
3月前
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
164 1
|
3月前
|
数据采集 定位技术 API
为什么要选住宅IP代理抓取Web数据?
在数据采集和Web爬虫领域,选择合适的IP代理至关重要。住宅IP代理因高隐蔽性和真实性、更好的访问成功率、能绕过反爬虫策略、多样化的地理位置、适应性和灵活性以及合法合规等优势,成为许多数据抓取项目的首选。使用住宅IP代理可提高数据抓取效率,降低被封禁风险,同时需遵守法律法规,确保活动的合法性与合规性。
|
3月前
|
存储 缓存 监控
Memcached玩转Web性能:一致性哈希、数据持久化,一文全掌握!
【8月更文挑战第24天】Memcached是一款高性能的分布式内存对象缓存系统,它通过在网络中存储数据并使用简单的键值对机制来提高动态Web应用的性能。它可以显著减少数据库查询次数,进而减轻数据库负载并加快响应时间。为了最大化利用Memcached的优势,建议合理配置内存使用、采用一致性哈希策略、实施数据持久化措施,并持续监控系统健康状况。提供的示例代码展示了如何使用Java创建客户端、添加和获取数据。
40 1
|
3月前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
242 1