深度对比 Footprint 和 Dune 数据模型

news2025/1/13 17:11:38

在产品建设方面,数据所有权转移已迅速成为需要解决的关键问题之一。社交媒体平台滥用数据的现象频发,我们亟需建立方案来解决这一问题。鉴于此,区块链提供了一种功能,可以永恒地存储、转移数据,并创建市场,允许用户将其数据货币化。

区块链,首先是一种技术。取决于某个生态系统试图解决什么问题,技术的实施方案可以有很大的不同。一些区块链试图专注于性能,以可能取代传统的基础设施(例如,VISA每秒可以处理12,000笔交易),而其他区块链则把隐私作为金融基础设施的主要组成部分。是的,在全球范围内,任何区块链的核心都是具有一定存储能力的区块,当被填满时,会被关闭并与之前填满的区块相连,形成一个被称为区块链的数据链,但区块链之间的存储组织本身可以有根本的不同。以太坊的所有商业逻辑主要是通过智能合约实现的,而例如在波尔卡多,则是通过托盘来实现的。是的,即使纠结于同样的智能合约,比较一下,例如以太坊和Solana,首先,它们是用不同的编程语言编写的(以太坊是Solidity,Solana是RUST | C | C++),其次,它们实现的存储方法完全不同。  

需求产生供给,随着使用Web3 数据的需求逐渐增加,为用户提供数据的平台也越来越受欢迎。大部分新数据平台,都是尽量降低入门门槛,尽量让开发者和分析师都满意。数据创业公司遵循的目标有很多,但最重要的也许是数据模型,因为用户的使用体验、查询执行速度和其他关键指标都取决于它。

本文将探讨 Footprint Analytics 的数据模型和目前最受欢迎的分析平台 Dune Analytics 提供的数据模型之间的实施差异。

处理区块链数据的平台有一个类似的ETL过程。这个过程的步骤是:

  • 节点提供者将数据传输给索引器

  • 处理原始数据

  • 对原始数据进行抽象化

  • 视觉化

在下面的部分,我们将更详细地研究每个步骤,并指出每个平台内实施的差异。

---     **NOTE**     - 为了简单起见,下面所有的例子都是基于 EVM 链的--V2 版的 Dune 作为比较对象。 更多详情请见 - [Dune V2 - Dune Docs](https://dune.com/docs/reference/dune-v2/.)     —

节点提供者向索引器传输数据

节点提供者是一个 "客户端 "软件,将它们连接到区块链的网络,使它们能够在其他节点之间来回发送信息,在某些情况下,验证交易和存储数据。为了接收这个 "新区块创建 "信息,必须有人运行一个区块链节点。为了确保新交易有足够高的处理速度,挑选一个可靠的 RPC 至关重要。对于节点提供方,我们所对比的这两个平台都是闭源的,所以很难说他们正在使用哪个节点提供者,或者是否自建节点。但大部分数据平台通常遵循的是一种混合选项:既使用节点提供者,又使用部署的本地节点。

处理原始数据

作为下一步,从节点提供者那里收到包含区块链交易数据的哈希字节码。该字节码被解码并以原始形式保存。如果你曾经使用过[[block explorer]],你应该知道某个区块链所持有的原始数据。这些细节在不同的链之间是不同的,但是作为一个例子,大多数由以太坊虚拟机(EVM)驱动的链包括:

  • Blocks - 附加在链上的交易组

  • Transactions - 加密签名的区块链状态指令

  • Logs - 由智能合约创建的事件

  • Traces - 记录交易执行过程中发生的每一个事情

实际上,上述实体构成了区块链的全部内容。这表明,仅通过使用它们,任何去中心化的生态系统可能已经被充分分析。尽管这些表中的数据可以由人类读取(与字节码不同),但需要对区块链有深刻的理解。该平台将上述实体存储到以下表格中,作为ETL程序的一部分:

两个平台上的表数据,几乎都有相同的列,所以不同的查询可以基本上在平台之间重复使用。

Footprint Analytics: Crypto Analysis Dashboards

Latest ethereum transaction

数据解码

任何 EVM 区块链上的大多数智能合约都是使用 Solidity 等高级编程语言创建的。它们必须被编译成 EVM 可执行字节码,然后才能在 EVM 执行环境中使用。一旦部署,字节码将永久存储在链的状态存储中,并分配给一个特定的地址。

客户端应用程序需要一个指南来调用高级语言中定义的功能,以便能够与这个智能合约进行互动,目前它只是字节码。一个应用二进制接口(ABI)被用来将名称和参数翻译成字节形式。ABI 正确记录了名称、类型和参数,允许客户端应用程序以人类相对可读的方式与智能合约沟通。可以利用高级编程语言的源代码来编译 ABI。TLDR:要调用智能合约或破译其产生的数据,请使用 ABI。

为了允许对正在发生的事情进行后向分析,区块链被设计为分析和存储事件。智能合约通过交易和消息调用发出过程中的事件,相互沟通。因此,查看事件通常是分析区块链上发生的各种事情的最简单和最方便的方法。

然而,偶尔会有重要的信息从发出的事件中被遗漏,或者根本没有事件。在这种情况下,分析师可能不得不求助于交易和消息调用(在原始表格中发现)。随着时间的推移,没有事件被发出的情况越来越少,因为现在的开发人员大多明白,事件对分析的重要性。但目前还是仍然存在遗漏的情况。在某些情况下,将解码后的数据与原始数据结合起来,以获得关于交易的元数据或更深入地研究,是有意义的。

Dune

对于要解码并添加到 Dune 数据集的合约,可以使用以下表格。智能合约上传表格 一旦合约被解析,与特定智能合约相关的调用和事件正在被保存到相应的表格中。

Calls

通常情况下,一个智能合约将有可能被另一个智能合约或外部拥有的账户(EOA)调用的功能。从直接的状态读取和返回到修改几个状态并触发对其他智能合约的消息调用,函数可以是任何东西。对智能合约的每一个消息调用和交易都可以在 Dune 上被解析为它们自己的表。然后,这些表被赋予以下名称:

Screenshot 2022-11-21 at 13.20.30.png

Events

事件日志是由智能合约在完成特定的预先定义动作时产生的。智能合约开发者已经预先定义了这些日志的结构,而内容是在整个交易过程中动态创建的。日志有助于跟踪智能合约内部的活动,并用于监测、警报和其他目的。

Screenshot 2022-11-21 at 13.21.47.png

Footprint

截至发稿时,Footprint 目前已支持 Ethereum 存储调用和事件的表。而其它公链的底层原始数据,连同 ABI 提交、合约解析需求提交,计划在2022年底前发布。

对原始数据进行抽象化

将原始数据转化为有洞察力的信息绝不是一件小事。虽然艰难,但并不是不可行的。建立和微调 ETL 模型只是许多数据企业家每天进行的工作中的一小部分。在试图转换原始数据的系统设计中,包括以下规格:

  • 数据表,可以实时连续分析来自历史和实时的数据流,大大简化了生产数据科学的工作流程。

  • 模式的执行,使表保持整洁有序,没有列的污染,并为机器学习做好准备。

  • 模式演进,使现有的数据表增加新的列,而不会在生产中使用这些表时导致其中断。

  • 数据版本,这使得审计、复制,甚至在必要时回滚任何Delta Lake表的变化,以避免人为错误带来的意外变化。

数据摄取("铜")、转换/特征开发("银")和业务汇总("金")是典型 ETL 的三个阶段,它们采用的表格与数据工程管道中的各种质量等级相关。这些表格一起被称为 "金银铜 "架构。

它使数据工程师能够创建一个流程,从未经处理的数据开始,并作为 "单一源",其他一切都通过它流动。即使下游用户清理了数据并添加了特定的上下文结构,也可以计算和检查进一步的转换和汇总,以确保业务层面的汇总表仍然反映基础数据。Dune 和 Footprint 都在工作流程中实施了以下方法,但形式上有很大的不同。

Dune

银以及金数据表在 Dune V2 上是使用魔法表(Spellbook)构建的. Spellbook 是一个社区构建的层。通过创建复杂的表的指令,处理广泛使用的用例,如NFT交易。抽象可以被物化为视图和表,但也有许多可能的细化,包括增量加载的表、日期分割的表等等。在 Page Not Found | dbt Developer Hub 中查看所有支持的具体化类型。数据完整性测试可以很容易地添加到 YAML 文件中,只需一行。关系完整性、非空值、独特的主键和接受的值都可以在模型上快速检查。Dbt 理解所有模型的原生依赖性。

Footprint

Footprint 则完成遵循金银铜结构中描述的方法。按数据的级别分组的做法如下:

2ab5caf-Screenshot_2022-10-27_at_08.35.37.png

铜数据是未经修改,未经处理的原始数据。 提供所有区块链活动的彻底记录。交易、日志、痕迹和其他数据,如 EVM 网络的情况,将以与区块链上的数据相同的方式存储在这里。虽然使用这些数据进行查询是可行的,但要有效地做到这一点,需要对智能合约的内部运作有扎实的掌握。与其他表格相比,这种类型的表格中的数据是最多的。因此,查询的处理意味着该数据的汇总将需要相当长的时间。

银数据是未经处理的青铜数据被转化为具有附加值的数据集。这可能需要将代码改为相关的值,增加合理性检查,消除不必要的数据,等等。这些表格旨在统一 EVM 和非 EVM 的数据标准,抽象出各领域的数据结构,并建立一个事实上的商业逻辑标准。NFT交易、以太坊代币转移、协议交易、合约信息等就是这样的几个表。这些表的主要优点是,在EVM和非EVM链之间,以及在不同的市场和协议之间切换很简单。这是因为数据在语义上被正确组织,使得没有任何原始区块链数据结构知识的人可以立即使用这些表。

金表是业务层面的数据聚合,直接解决某个领域的问题。在查询本身中不需要任何聚合(连接和合并,解码等),金表提供了一些统计指标,可以随时进行研究。指标可以按原样使用,节省了开发团队在开发、运行时计算以及数据验证和测试方面的时间,因为像活跃用户,新增用户和钱包地址的持有余额这样的统计数据的所有必要计算已经由 Footprint 完成。

查询引擎

Dune

DuneV2 改变了整个数据库架构。Dune 现在正从 PostgreSQL 数据库过渡到托管在[[Databricks]] 上的 [[Apache Spark]] 的 Instance。

Footprint

Footprint Analytics在 [[Apache Iceberg]] 和 [[Trino]] 数据架构上工作。[[Apache Iceberg]] 是一种用于海量分析数据集的开放式表格格式。[[Trino]]是一个分布式 SQL 查询引擎,旨在查询分布在一个或多个不同结构数据源的大型数据集。

执行查询

Dune

Dune 上所有的查询都需要通过 SQL 执行。

query-editor.png

Footprint

Footprint 是建立在 [[Metabase]] 之上的。该技术代码的开放性允许不同的用户对代码库做出贡献,从而开发和改进它,随后可以被其他用户使用。该技术本身实现了一个方便的拖放查询生成器。这大大降低了进入门槛,允许任何没有任何技术知识的用户使用该产品并提取商业价值。

值得注意的是,从架构上来说,Metabase 是对 SQL 代码的抽象,也就是说,任何通过拖放的请求都可以表示为 SQL 。因此,想要建立更复杂的查询的用户,或者喜欢用代码处理数据的用户,都可以在 Footprint 上直接使用 SQL。

可视化

可参考分析师 @escapist5563 在文章《5分钟快速对比头部链上数据分析平台》的介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT帮你写代码?人工智能ChatGPT之于Web3的几点思考

人工智能AI有人热情膜拜,有人畏惧如虎,AI的发展已经进入高层面的快车道,技术更新迭代日新夜异,技术无罪也无善恶,曾经科幻未来的人机交流,共生共存如今在我们的脑海中已经有了轮廓的意识感想,科…

Spring底层事务原理

Spring事务底层原理一、EnableTransactionManagement工作原理二、Spring事务基本执行原理三、Spring事务的过程四、Spring事务传播机制五、Spring事务传播机制分类(1)案例分析、情况1(2)案例分析、情况2(3)…

SEVNLDAEFR, 186142-28-9

This peptide substrate corresponds to the Swedish Lys-Met/Asn-Leu (K670N/M671L) mutation of the amyloid precursor protein (APP) β-secretase cleavage site. It has been used for assaying β-secretase activity.该肽底物对应于淀粉样前体蛋白(APP) β-分泌酶切割位…

政企办公「分水岭」以至,融云百幄数智化破局

中国政企数智办公平台行业研究报告 246 年前,亚当斯密便在《国富论》中提出,劳动分工是提高社会生产效率的主要原因。从工厂定岗,到国际分工,分工的价值已经深入社会生活和工作的方方面面。关注【融云RongCloud】,了解…

六、使用注解开发

文章目录一、CRUD 注解(舍弃 mapper.xml): Select、 Insert、 Update、 Delete、 Param1、Select2、Insert3、Delete4、Update5、Param二、Lombok 插件,减少重复代码1、Data一、CRUD 注解(舍弃 mapper.xml): Select、 Insert、 Update、 Delete、 Param 通过注解去处…

【Netty】Netty高性能原理剖析

Netty高性能原理剖析1、前言2、Netty高性能2.1 多路复用通讯方式2.2 异步通讯 NIO2.3 零拷贝(DIRECT BUFFERS 使用堆外直接内存)2.4 内存池(基于内存池的缓冲区重用机制)2.5 高效的 Reactor 线程模型2.5.1 Reactor 单线程模型2.5.2 Reactor 多线程模型2.…

低代码有多爽?1个月的活,只需3天干完

仅看到“低代码”三个字,不少程序员就会吐槽“只适合简单业务,普通查改还行,复杂业务简直是灾难”,甚至认为是“儿童玩具”。 不少人自以为是程序员的二把刀,以为自己懂完了,在没理解低代码的应用场景&…

怎么压缩动态图片?手机怎么压缩gif动图?

在平时的聊天当中为了增加聊天的趣味性我们经常会保存一些有趣的gif动图表情包,但是由于gif图一般是由多帧组成,因此有的gif动图就会非常大,无法添加到表情当中,这时候就需要将gif压缩变小,那么我们用手机怎么压缩gif动…

华硕编程竞赛11月JAVA专场 C题太空遨游 题解

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

chatGPT辣么火,你却不会注册

chatGPT 是什么? 一款目前超级火的 AI 对话聊天工具,只是不同于其他的智能聊天机器人那样,他非常的智能。 可以回答你的技术问题、帮你写代码、还能帮你写小说等等,发挥你的想象力,让他干点啥都行。 比如让他帮你用…

[附源码]Python计算机毕业设计SSM基于旅游服务平台(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

VMware使用和Linux安装Docker

一、VMware安装和配置 二、Linux安装Docker PS:记得每次配置安装新东西前先拍摄拍照,这样即使安装坏了,不需要重装虚拟机。(吃过这个亏) 1.Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不…

Web前端大作业—— 饮食餐饮网站 咖啡网站pc端带轮播(5个页面)HTML+CSS+JavaScript 学生美食网页设计作品 学生餐饮文化网页模板

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…

数据技术篇之日志采集

第2章 日志采集 1.日志采集有哪些 页面浏览日志 页面浏览日志是指当一个页面被浏览器加载呈现时采集的日志。此类日志 也是最基础的互联网日志,也是目前所有互联网产品的两大基本指标:页面浏览量(Page View,PV)和访客…

谈一谈 IPA 上传到 App Store Connect 的几种方法

谈一谈​ 1、前言​ 关于上传​ 2、Xcode​ 利用​ 3、Application Loader​ 当然,Xcode 这种方式,是需要有源代码情况下,才能上传。所以,就会有没有源代码的情况,怎么上传的情况啦!​ Application L…

ET框架解读其一

ECS? 真正的ECS属于是entity-component-system组件里面只有数据没有方法,system里面是针对组件的方法,system通过查找只需要关注自己想关注的组件集合就可以。但是ET框架的代码在组件里面写满了方法,有数据又有方法的组件&#x…

Spire.Doc for Java 10.12.2 update Word to PDF/HTML to Word

谷歌找破解版Spire.Doc for Java is a professional Word API that empowers Java applications to create, convert, manipulate and print Word documents without dependency on Microsoft Word. By using this multifunctional library, developers are able to process co…

并发编程概述 和 并行编程(Parallel Framework)

任务(task) 异步编程(async&await) 并发编程概述 前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种…

HPPH-SiO2 NPs/PEG/DSPE光克洛修饰介孔二氧化硅纳米粒子/聚乙二醇/磷脂的研究

小编这里分享的科研知识是HPPH-SiO2 NPs/PEG/DSPE光克洛修饰介孔二氧化硅纳米粒子/聚乙二醇/磷脂的研究,来看! 光克洛修饰介孔二氧化硅纳米粒子的研究: 光敏剂的研发历经以卟吩姆钠为代表的第一代卟啉类光敏剂到以维替泊芬,他拉泊芬和替莫泊芬…

揭秘!女程序员为啥更赚钱?这4个大招,用Python做副业躺赚

关于穷,去年有了一个更学术的说法:隐形贫困人口。 就是因为有太多“种草达人”,让我们为了物质生活超前消费,再加上不理财的话,那简直是雪上加霜。 看到知乎上面最近有一个很火的问题: “90后的你&#…