主页 > imtoken注册流程 > Web3数据层结构演进的思考

Web3数据层结构演进的思考

imtoken注册流程 2023-10-13 05:10:37

成吉思汗骑兵的攻击速度堪比20世纪的装甲部队; 北宋的床弩射程1500米比特币数据分析app,与20世纪的狙击步枪相当; 但这些仍然只是古代骑兵和弩。 无法与现代强国抗衡。 基础理论决定一切,未来史学派看得清清楚楚。 ——《三体》

一、背景

上一篇《彩虹桥上的棱镜塔》最后提到了链上世界和链下世界的空白环节。 这些链接是任何 Dapp 都不能跳过的步骤。 高昂的成本和与区块链网络通信的复杂性和繁琐催生了服务于这些环节的平台。 关于它们是否符合去中心化思想的争论从未停止过,这让我想知道,Dapps 的去中心化程度如何? 所谓的 web3 基础架构背后的架构是什么? 本文将通过分析几类web3公司背后的技术设计架构,分析web3基础设施层的演进。 在此之前,请允许我介绍一个比较古老的、不是 web3 的东西,以及它在 web3 世界中的作用。 2.什么是ETL和区块链? ETLETL代表Extract、Transfer和Load,这是一个数据集成过程。 通过将来自多个来源的数据组合成一个单一的、一致的数据集,然后再将其加载到数据仓库或其他目标系统中。 随着20世纪70年代数据库的普及,ETL被引入作为分析和计算中加载和集成数据的过程,最终成为企业数据仓库项目中集成数据的主要方法。 一般来说,组织使用ETL的目的是从遗留系统中提取数据,清洗数据以提高数据质量和一致性,并将数据加载到目标数据库中。 ETL和Web3的关系型区块链技术是一种先进的数据库机制。 这是在一些 web3 企业 IT 架构中实现的。 区块链上的数据通过ETL工具进行清洗、处理并加载到数据仓库中。

比特币数据_获取比特币实时行情数据方法_比特币数据分析app

区块链ETL 2018年,谷歌云开发者Allen Day和Evgeny Medvedev试图将比特币和以太坊区块链的交易数据和基本检索工具加载到谷歌的BigQuery数据分析平台中。 并鼓励全世界的开发者使用和改进这个开源的 ETL 工具。 Blockchain ETL收集的数据源包括Ethereum、BSC、Polygon等区块链网络,而BigQuery作为使用Blockchain ETL的公共数据集,被包括Nansen在内的大量Dapps和链上数据分析工具所采用。

获取比特币实时行情数据方法_比特币数据_比特币数据分析app

这里肯定会有人对如何处理区块链数据产生疑惑。 区块链网络不是公开的吗? 为什么我们需要对数据进行如此复杂的处理并将其存储在数据仓库中? 因为链上数据在节点上并不是结构化存储的,而是通过交易打包在区块中的。 如果用户想要对一些需要大量历史区块的数据进行索引,单次请求无法满足他们的数据分析需求。 虽然以太坊客户端提供了一些常用的访问功能的API(例如:查看交易状态、钱包交易关联、查看钱包余额),但API侧无法提供所有链上数据。 例如,假设您需要从头开始制作一个 nft 展示网页。 用户可以通过输入钱包地址信息获取钱包所拥有的nft信息。 然后我们需要导出钱包历史中的所有交易,过滤掉erc721或者1155合约的铸币信息和nft转账信息。 这包括图像元数据、tokenid、合约元数据、时间信息等,所有这些都来自区块链网络,并随着时间和账户行为而变化。 比如图片的元数据、NFT的归属、底价都在不断变化。 不断向区块链网络请求数据是不现实的。 一方面,开发者不知道具体的 NFT 转账发生在哪个区块。 但底价)只是区块链网络中的简单交易,区块链网络本身没有筛选功能。

比特币数据_比特币数据分析app_获取比特币实时行情数据方法

因此,需要一个步骤将区块链上复杂的非关系数据转换为可以通过SQL语句查询的关系数据。 而我们在市面上看到的大部分数据分析平台都是由此演变而来的。 也就是说,为了更高效、更快速地检索区块链数据,一个与真实区块链网络平行的缓冲层应运而生。 这种架构广泛应用于现代 web3 基础架构公司,并且随着业务不断变化和发展。 3、web3基础设施层的演进。 构建dapp所需的web3基础服务通常包括以下两种: 节点:区块链节点本质上是一个运行的程序,共识机制是验证每个节点数据的特殊规则。 区块链网络是通过全球不同节点的通信而建立起来的庞大网络。 早期开发者需要建立一个全节点,与区块链网络建立通信,方便智能合约的部署。 得益于web2时代云服务弹性伸缩的发展,目前大部分开发者都将节点部署在ec2实例上运行。 于是,Alchemy、Infura 等远程调用节点的商业模式诞生了。 数据:写数据不难,难的是准确的索引和稳定的提供数据。 随着dapp本身实现的功能越来越复杂,用户需要的数据类型也会越来越多样化。 以往,业内普遍的模式是项目方自己搭建服务器,将处理后的数据保存到数据库中,并在上面搭建API终端,方便内部查询和调用。 这种模式通常成本太高,需要维护,并且会在未来被更新的架构淘汰。 上面所说的分类其实是按照区块链开发环境和架构来划分的。 目前市场上很多基建机构往往是集成了几个阶段。 比如alchemy和moralis的业务包括节点服务、数据服务和开发者工具服务。 但是dune和big query不提供节点服务,只提供数据服务。 考虑到在链上存储数据或部署合约的成本以及公链本身的性能限制,Web3 应用不允许所有业务数据和后端代码都上链。 因此,大部分应用仍然保留着自己的链下数据库和后端代码,比如规定了项目核心业务逻辑的智能合约,用户的核心资产往往都在链上。 不太重要的核心功能逻辑和其他数据通过传统的web2方式搭建服务器。 该方案可以最大限度地提高用户体验和研发运维成本。

比特币数据_获取比特币实时行情数据方法_比特币数据分析app

随着用户的不断涌入,web3呈现出多链共存的生态。 一条公链在主要部署和测试后,项目方往往会选择其他兼容L1/L2的公链,以覆盖更多的用户群体。 当一个项目需要支持多条链时,其架构如下图所示。 我们可以看到,每当项目方决定支持一条新链时,都需要重新设计之前的研发流程。 这种模式会成倍增加研发工作和运维成本。 这种模式就像互联网早期的电商平台和app端软件开发选择自建idc机房。 随着用户请求数量的增加和区块链网络本身数据状态的爆炸式增长,其成本会随着程序的设计而增加。 复杂性同时增加,也不利于市场的快速扩张。 一方面,一些高性能的公链节点对运行设备的硬件要求很高。 另一方面,数据的同步和清洗需要不断消耗人力和时间成本。

获取比特币实时行情数据方法_比特币数据_比特币数据分析app

随着区块链基础设施层的不断演进,项目方也可以使用链上云数仓服务摆脱自建数仓的烦恼,从而专注于项目本身的发展。

此类企业选择将项目方以往承担的归档节点维护、链上数据ETL、数据库调用等步骤进行整合,通过提供多链数据和数据传输,最大程度降低web3应用接入和区块链网络的负担。节点 API。 使用阈值,我们称之为区块链数据仓库。

获取比特币实时行情数据方法_比特币数据_比特币数据分析app

虽然企业提供的数据类型和设计结构有些相似,但根据所面对客户的不同,会衍生出不同的商业模式。 而这个领域也将由原有的web3开发者平台和rpc提供商参与,比如alchemy、moralis、dune api都会提供类似的服务。 chainbase、luabase等案例服务商往往有web3领域的b端客户,如链上钱包、nft交易平台、数据追踪器、链上安全测试服务商等。

比特币数据_获取比特币实时行情数据方法_比特币数据分析app

不同于alchemy等提供固定api数据的供应商,开发者可以通过编写sql来定制自己想要调用的区块链网络数据。 这种方式可以大大提高开发效率,并最大限度地降低链上数据索引的成本。

比特币数据_比特币数据分析app_获取比特币实时行情数据方法

而Luabase则集成了更多的第三方开发者数据分析平台、协作工具等saas服务,使开发者可以在自己的平台上自由组合、过滤数据,并推向主流的saas服务。 这些便利措施都是为了吸引更多的开发者使用和推广他们的产品,从而实现产品驱动的增长。 随着dune api服务的推出,越来越多的项目意识到这种方案很可能成为未来web3基础设施的主流设计方案,该领域的竞争不断加剧。 我认为有几个重要指标可以衡量此类项目的竞争力。 更快的数据索引:数据检索的速度与数据库的性能密切相关,考验项目团队的底层数据设计能力。 (OLAP) 丰富的开发社区:一个优秀的开发社区离不开良好的氛围和优质的内容,考验着项目团队的运营和开发者关系维护能力。 Dune Analytics Dune是一个强大的区块链数据分析平台,用户可以在区块链上查询、索引、导出和可视化数据。 只需要通过SQL语句检索对应的区块链数据,即可获取对应的数据。 而Dune是如何实现看似“实时准确”的数据链上展示的呢? 从Quick Node的官网和Dune的文档,可以看到Dune的技术架构的发展历程。

比特币数据_获取比特币实时行情数据方法_比特币数据分析app

早期的Dune采用自托管的归档节点,然后将数据清洗整理后放入其数据仓库(postgreSQL)中,因此我们可以使用SQL语句对其整理后的区块链数据进行索引查询。 随着归档节点数据量的增加,自托管节点的维护成本越来越高。 最终,Dune 选择了 quicknode 作为他们的存档节点服务商。 这样的架构设计特点决定了用户在网页上访问的数据是Dune自己维护的私有数据仓库,其数据集不与真实的区块链网络同步,而是在特定时间更新。

比特币数据分析app_获取比特币实时行情数据方法_比特币数据

随着链上数据的不断增加和用户对复杂查询的需求,一些相对复杂的语句可能需要在 Dune 上运行几个小时才能产生结果。 因此,dune 的 V2 版本决定从过去的 PostgreSQL 迁移到托管在 Databrick 上的 Apache Spark。

比特币数据分析app_获取比特币实时行情数据方法_比特币数据

对于用户来说,只是将检索语法从postgre改成了spark sql,但是对于dune来说,他们后端的整个开发框架都变了(见上图)。 虽然加快了用户检索和过滤的速度,但链上数据仍然存在延迟,无法导出。 对于一些严重依赖有效性的项目方来说,dune的数据分析的有效性远远达不到标准。 在笔者看来,dune更像是一个依赖于公链数据的BI(商业智能)工具。 但依赖看板和终端用户付费的商业模式,其未来收入将面临增长瓶颈。 虽然dune通过各种方式加快了用户检索和筛选,但其链上数据仍然存在延迟,无法导出。 因此在22年中,推出了dune api,为企业客户提供服务。 由此我们也可以推断,dune的会员付费收入无法覆盖其维护后台服务器、数据清理和通话费用。 它未来真正能够大规模盈利的业务,​​在于数据本身。 这一步也将使dune与chainbase、flipside、luabase、transpose、spice等区块链数据仓库竞争。 这种服务架构可以大大提高开发者的效率,减少后台不必要的维护。 这种架构仍然存在中心化的风险。

就像现在rpc服务面临的中心化指责一样,我们不能保证以后用户调用的数据一定和链上的数据一样。 区块链网络本身的分叉和回滚设计也会带来后期数据库清洗去污的成本。 另一方面,现有数据服务商提供的数据还没有形成统一的标准。 例如,一些区块数据缺少交易索引,一些价值格式与其他商户不兼容。 这些不兼容和中心化的风险会给后续的区块链开发者带来不必要的麻烦。 业界也正面临和应对这样的问题。 例如infura提出的数据标准联盟,时空正在开发的去中心化数据库架构,可以为未来的开发者带来更友好的开发环境。 5. 开发者变更和节点部署 衡量开发者活跃度的方式主要有三种:库使用情况、智能合约部署情况、活跃dapp数量。 从alchemy发布的2022开发者报告中我们可以看出,开发者数量只是一个衡量维度,并不能完全代表一个行业的发展状况。 一个好的、有序的开源社区,真正能够衡量它的活跃指针。 正如《人月神话》中所传达的理论:“人多时间短,软件开发进度无法缩短,对进度落后的项目加人,只会让进度更平更落后。” 开源对软件行业很重要。 影响是深远的。 让我们以 Linux 为例,作为现代服务器的首选操作系统——前 100 万个 Web 服务器中有 96.3% 运行 Linux。

截至2022年12月,从ethnode的数据可以看出,在以太坊节点操作系统中,Linux系统的部署占比达到95.64%。 在云托管节点服务中,仅 AWS 一家就占据了以太坊主网上托管节点的 68.5%。 甲骨文(2.0%)和谷歌(3.5%)也为以太坊主网提供托管节点服务。

获取比特币实时行情数据方法_比特币数据分析app_比特币数据

开源软件和相对集中的云服务仍然是 web3 世界的基础和支柱。 大多数去中心化应用程序将开源他们部署的智能合约。 一方面,开源合约的审查可以减少漏洞造成的资产损失。 另一方面,这些开源项目也可以让更多的开发者协同创新,大大降低集中协调带来的摩擦成本。 Case Alchemy,作为估值102亿美元的基础设施平台,其核心模式是引导更多的开发者和工程师使用他们的服务成为web3世界的aws。 从其官方文档可以看出,alchemy 的文档对于区块链开发相关的初学者还是相当友好的。 从今年刚刚推出的炼金术大学项目,我们也可以看出其对培养新一代web3开发者的重视。 另一方面,通过提供测试网水龙头、免费api调用方案、智能合约教学视频等方式,吸引更多开发者注册,建立庞大的开发社区。

比特币数据分析app_获取比特币实时行情数据方法_比特币数据

作为一个新兴的web3开发者平台,Moralis的策略不仅仅是教育和培养新一代的web3开发者,更重要的是通过开放更多的API接口和SDK类型来吸引更多的web2开发者。 我们从它今年发布的moralis 2.0就可以看出——提供一流的Web3后端服务,实现与Web2开发者已经在使用的Web2平台的集成。 现有的dapp大多是基于网页的,这就导致了现有的web3前端开发还是基于react技术栈。 构建网页所需的技术堆栈不同于构建移动应用程序。 而Moralis通过集成firebase、playfab等web2后端开发平台,实现了与flutter、ios、Android系统的对接。

比特币数据分析app_比特币数据_获取比特币实时行情数据方法

从以上两个例子可以看出,虽然 Alchemy 和 Moralis 的功能和商业模式不同,但这两家基础设施公司对开发者的布局是相似的。 1.通过详尽的教学文档和视频,将更多的web3爱好者培养成合格的开发者。 2、通过整合现有的web2开发栈,降低重新学习的门槛。

当然,我们也需要正视一个事实,虽然web3相关的开发者数量呈现爆发式增长,但目前web3开发者的数量远小于其他软件领域(java、python、javascript)的开发者数量。

比特币数据_获取比特币实时行情数据方法_比特币数据分析app

同样值得注意的是,2018 年和 2021 年开发人员参与 web3 空间的激增发生在加密货币估值达到顶峰之后。 这类似于开发人员从 2013 年左右开始涌向云原生生态系统的方式,得到了对 Snowflake、GitLab 和 Sentry 等公司的大量 VC 投资的支持。 该模型允许开发人员减少基础架构维护并专注于产品开发。 用户只需要注册相应的api-key就可以在以太坊、polygon、arbitrum、sui等网络节点上调用消息。 然而,这种商业模式往往受到其云服务器成本的制约(维护一个全节点的费用为每月 100 美元,归档节点的费用高达每月 1000 美元。),并且随着竞争对手的增加,蓝海变成了红海。 的趋势。 5. 总结与展望 上述节点和数据层相关赛道和机构其实只是基础设施建设的一小部分,还有大量涉及Staking的去中心化指标和节点层没有提到。 2022年年中我整理整理了以上资料。 之所以一直没有发布,是因为我没有考虑到这些基础设施层出现的原因,以及未来大规模应用的前提条件。 自2015年7月以太坊正式上线以来,为何2018年逐渐出现了节点供应商? 而数据层和索引层项目要到2022年才开始融资落地? 未来的种子深深地埋在过去。 作为风险投资从业者,我经常问的一个问题是“为什么是现在?” 值得反思甚至思考的事情。 任何技术发展和应用创新都离不开客观规律背后的决定性因素。 如果没有椭圆曲线密码学的支持,现有的加密货币将不复存在。 如果没有 1985 年的麻省理工学院研究论文比特币数据分析app,zk 现有的任何实际应用都不会存在。 回过头来看web3的基础设施层,我们可以清晰的看到。 Alchemy、quick node、infura等远程节点供应商在2018年前后成立,并完成了商业化和规模化。

比特币数据分析app_比特币数据_获取比特币实时行情数据方法

比特币数据_比特币数据分析app_获取比特币实时行情数据方法

这些节点供应商的成立时间恰好处于云计算发展的黄金阶段。 这也可以回答上面的问题。 云计算和虚拟化技术的发展带动了早期web3基础设施的商业化,让开发者可以方便的使用节点服务。 数据层和索引层项目的大部分融资和建立将在2022年进行,以luabase、chainbase、spiceai、flipside、dune-api(2022年提出)为代表。

比特币数据_比特币数据分析app_获取比特币实时行情数据方法

正如我上面提到的,这些索引层和数据层项目的商业实现与其底层数据架构的设计密切相关,即olap(On-Line Analytical Processing)系统的设计。 其中,核心引擎的采用是索引层性能优化的关键(索引速度、稳定性)。 常见的引擎有Hive、Spark SQL、Presto、Kylin、Impala、Druid、Clickhouse等,其中性能强大、被国内互联网公司广泛使用的clickhouse于2016年开源,将获得2.5亿美元2021年融资。因此,新一代数据库和更好的数据索引优化架构催生了web3数据索引层,使这类公司能够更快、更高效地提供数据API服务。 困扰web3开发团队的性能、负载、安全、可扩展性一直都存在,只要不脱离软件的范畴。 一个好的基础设施就是为了解决这些问题而诞生的,下一步就是提供这些服务的可扩展性和稳定性。 一旦能够在安全稳定保障的情况下大幅提升开发效率,业务开发将变得越来越容易。 一旦解放了人们的双手,就会激发想象和创新,从而实现越来越多有趣的应用层。 在应用层的不断扩展中,会提出以往市场上从未有过的各种需求,从而反哺基础设施的发展。 这是互补的。 基础架构和应用程序永远不会对立。 过去,云计算的发展周期和各家互联网公司底层技术的演进,大体上都遵循着这个规律。 王道没有永恒:如果过去的顶级协议甚至dex还顽固地沿用旧的架构和开发方式,它们将被使用新基础设施的新项目所超越。 Dune在对过去的旧数据结构进行重构之后,确实比之前的版本速度更快,但是在性能上还是被flipside、chainbase等新一代基础设施所超越。 对于投资者和开发者来说,在尊重客观规律的前提下,要持续关注和应用前沿应用、协议更新,甚至开发语言的变化、开源社区的态度等等,甚至是关注自身的上游,比如云计算服务(虚拟化技术)和数据库供应商。 只有这样,才能真正迎接去中心化应用大规模使用的时代。 6. 相关资料参考

1. Moralis 内部讨论帖

2. Alchemy CEO推特对话

3、字节跳动和clickhouse

4. Web3后端架构说明

5.秘密分叉

6.开发智能合约Geth的数据导出

7.太复杂

8. 加密数据栈

9.奥拉普