如何使用SQL分析Web3中的数据??_区块链:什么是区块链技术

你想知道如何在Web3中成为一名高效的数据分析师吗?还是,你只想构建一个Web3分析仪来对感兴趣的Web3数据感进行分析?不管怎样,欢迎你阅读本文。

作为一个数据人,Web3数据中最具挑战性的部分是理解数据本身。根据我的经验,有一件事让我觉得很容易,那就是把每个人都看作是一个巨大的数据仓库和以太坊区块链上面的协议,作为仓库中包含多个表和视图的各种模式。PS:这也适用于其他区块链。

对于这篇文章,我将努力使事情变得简洁,并使用这些主题突出它们:

Web3数据流和景观。了解Web3,去中心化的数据存储。用于解码交易数据的工具:与Web3数据栈一起的工具概述,以及如何利用它们让我们开始吧!

Web3的数据流和景观

Web3的关键在于变得更加独立和自主。这是通过区块链和分布式对等网络而不是服务器-客户端关系来实现的。这使得数据流和格式与我们在Web2中习惯的不同。通过研究,我发现了像DuneAnalytics和FlipsideCrypto这样的数据映射器,它们具有解码的区块链数据和内置的可视化工具,供对Web3感兴趣的数据科学家使用和构建。

上图:

https://docs.google.com/presentation/d/1I6vDOS52uMCmWg3KIbuKYe8lK-8_ol9bEksIUEHNNLI/edit#slide=id.gfac7071356_0_1

美众议院金融服务委员会:正深入研究如何更好地监管加密行业:金色财经报道,据官方推特消息,美国众议院金融服务委员会正在关注加密货币作为长期投资的影响,并正在深入研究如何更好地监管这个快速增长的行业。[2021/7/1 0:18:18]

上面的图片显示了从不同的区块链模式中提取数据进行分析的不同方式,在此以以太坊为例。

如果你曾经在以太坊上进行过交易,那么你可能已经在区块资源管理器上查找过它,并看到了这种信息:

通过Etherscan区块浏览器看到的以太坊区块链上的交易示例

学会阅读交易细节将是所有以太坊数据分析和知识的基础,但了解代币和交易数据的流向也很重要。

解读Web3数据

我可能偏向于使用以太坊区块链来解释解密区块链数据,但根据经验,当你了解数据在智能合约上的存储和管理方式时,以太坊更容易理解。既然如此,重要的是要注意,我将谈论的许多概念将广泛适用于所有与EVM兼容的链和智能合约,例如Polygon、FantomOpera、BSC、ArbitrumOne等。

一个智能合约交易相当于智能合约驱动的web3应用程序中的后台API调用。智能合约上的活动细节及其产生的应用状态变化被记录在称为交易、调用和日志的数据元素中。交易数据元素代表由用户发起的功能调用,调用数据元素代表智能合约在交易中发起的额外功能调用,而日志数据元素代表交易执行期间发生的事件。

赵锡军:央行数字货币重点在于如何与传统货币进行融合:对于“数字货币研发重点和难点”的看法,中国人民大学财政金融学院副院长赵锡军指出,其中涉及两个问题。一是技术是否成熟。比特币实际上就是数字货币最初的雏形,从技术层面来讲,比特币是有一些缺陷的,一旦支付量变大,就会出现支付困难或者效率下降。另外,比特币出现过被盗等安全问题。而据央行货币研究所所长穆长春的一个内部研讨会指出,央行数字货币,效率是非常高的,支付能力很强,说明已经克服技术方面的问题。二是数字货币被引入后,如何与传统的货币和货币管理运行体系进行融合。数字货币的发行,是基于区块链的基础,它是有上限的,从目前来讲它的发行规模取决于互联网的算力。尽管穆长春所长也提到,央行数字货币现在可以突破区块链的上限限制,但是破获以后,它的发行究竟是怎么样的,是否能够跟我们目前的人民币发行顺利融合,这需要在制度层面有所安排。(澎湃新闻)[2020/4/22]

为了了解以太坊区块链上的交易数据,我们可以尝试使用Etherscan。这就像检查你的汽车仪表盘,以寻找修复汽车问题的指针,但作为一个数据科学家,我们必须打开汽车的引擎盖,了解幕后发生了什么。通常情况下,有3种不同类型的交易:

以基础货币的形式从一个用户转移到另一个用户,例如,张三在以太坊网络上给李四发送了3个ETH由一个EOA创建一个智能合约,例如,张三将代码提交给区块链上的一个地址,创建一个智能合约,一旦一定数量的资源被转移到卖方的账户,智能合约就会转移NFT的所有权。EOA对智能合约的调用,例如,张三调用李四的智能合约,用999ETH交换NFT。当用户在区块链上提出请求时,在引擎盖下发生的事情是:

英格兰银行正在探讨如何将CBDC引入现有市场:英格兰银行(BoE)正在权衡发行以英镑为单位的央行数字货币(CBDC)的利弊。他们刚发布了一份长达57页的报告,探讨了如何将CBDC引入现有市场,既充当价值存储又用于日常交易。据悉,英国中央银行逐渐意识到,数字英镑可能会破坏当前的银行体系。但是,数字货币可以利用最新的金融科技,使消费者更轻松快捷地进行交易。(Cointelegraph)[2020/3/13]

与用户相关的EOA发起一项交易,指定目标智能合约地址、目标功能、该功能的参数、交易付款以及它愿意支付的gas费用。该交易被广播到网络上,并由愿意执行目标智能合约中指定功能的矿工拾取。如果执行成功,智能合约会发出事件,标志着某些里程碑的完成。由此产生的事件数据结构被称为"日志"。目标智能合约可以向其他智能合约发起内部交易。这些内部事务创建的数据结构被称为"轨迹",也可能在各自的执行过程中发出额外的日志事件。

上图:代币传输的数据生命周期。来源:

https://docs.google.com/presentation/d/1I6vDOS52uMCmWg3KIbuKYe8lK-8_ol9bEksIUEHNNLI/edit#slide=id.gfac7071356_0_6

声音 | 救助儿童会Paul Ronalds:慈善机构领导者也应去了解区块链等技术如何运作:根据Coincryptorama消息,救助儿童会首席执行官Paul Ronalds在关于区块链对慈善事业的潜在影响的小组讨论后表示,慈善机构对区块链的使用还处于初期阶段”,要在其潜力被夸大之前需要进行更多的讨论和研究。慈善机构面临的主要障碍之一是,当涉及区块链这种存储数据的方法时,行业领导者并不能很好理解,我们需要确保慈善机构领导者同样参与、了解数字世界以及如何运作区块链等技术,来帮助他们的做好慈善事业。[2018/9/3]

数据是如何结构化的

现在,你已经了解了发生在幕后的活动和相应的数据元素。现在是时候逐项列出构成web3景观的各种元素了。交易和跟踪数据结构包含了智能合约函数调用的细节,按照这个顺序:

在区块链上,每笔交易都有一个独特的哈希值`交易哈希值`,其中有各种交易细节。例如,我们可以在这里查询这个交易哈希值0xbe3b109b857e8897cbe3c2a261d8072546ae693662422a1b93fe1a3a990dfded`From`是交易的发送方,`To`是交易的接收方,也可以是一个合约地址。在这个例子中,它是从`0x83ebd57bf4f22cba9c4a624a69c910d7c8619ee2`转移到CROWDFUND_EDITIONS代币的。`Value`是被转移的ETH值。有时ETH值可以是0,在这种情况下,它是。`交易费用=交易使用的气体*气体价格`,你可以在这里找到更多与以太坊气体有关的细节。输入数据包含关于交易的额外信息。在这种情况下,它是一个转移函数,细节包括交易的地址和价值。

美国银行分析师解释比特币如何像常规货币:据CCN报道,美国圣路易斯联邦储备银行内容策略师Christine Smith认为,比特币不像人们想象的那样异乎寻常,比特币的两个用例是作为价值和货币存储的,史密斯论证比特币与普通货币没有区别的三大理由:

1.比特币和美元都没有实物资产支持;

2.“稀缺”是美联储货币体系稳定战略的核心,因为“为了保持其价值,货币必须供应有限”,而比特币的数量也是有限的。

3.比特币“纯粹的电子现金对等版本可以让在线支付从一方直接发送到另一方,而无需通过金融机构”,这与现金花费方式有相似性,即“不需要中间人处理交易”。[2018/5/1]

数据本身是字节码,在Dune上有数据类型`bytea`。前8个字符`0xa22cb465`是函数签名的`MethodId`,它不总是唯一的。之后的每64个字符是一个不同的输入变量。这里我们有两个,分别对应于`toaddress`和`value`。基于以上信息,我们可以使用以下查询来拉取Dune上的数据(

https://dune.xyz/queries/601249)——

访问和处理Web3数据的工具

现在我们已经很好地理解了Web3数据的元素,它看起来像什么,并且已经在区块链上查询了我们的第一个交易数据,你可能想知道如何快速熟悉一个协议及其数据。有一系列很好的工具可以帮助我们做到这一点。

BlockExplorers

如前所述,使用BlockExplorers是深入了解区块链上的交易的一个好方法。BlockExplorers是在线浏览器,可以显示区块链网络上曾经发生过的所有交易的细节。以上面的截图为例,重要的是要知道所有主要的区块链都有探索器--突出的例子包括Etherscan、Polygonscan、BSCScan、Solanabeach等。

尽管区块链探索者对于询问区块链账本内的单个记录很有帮助,但他们对于回答需要聚合或转换数据的问题并不擅长。例如,如果你想知道过去3个月有多少NFT通过Opensea交易所售出,或者如果有人想知道交易从"Coinbase"流向"AxieInfinity"的频率,只用区块探索器就很难回答。为此,人们将需要直接访问数据。这在我的上一篇文章中已经介绍过了(

https://thisgoke.medium.com/getting-into-web3-as-a-data-scientist-machine-learning-engineer-f77c450b4e83)。

分析数据

Duneanalytics是访问和分析区块链数据的一个伟大资源。在写这篇文章时,它有Ethereum、Solana、Xdai、Polygon、Optimism和BSC的原始和解码数据。它提供了一个PostgreSQL界面来查询数据集,以及一个简单的点选界面来在查询结果的基础上创建简单的仪表盘。Dune上的用户社区也相当活跃,并产生了一个广泛的查询和仪表盘的例子库,供人们学习。下面是在Dune上创建的几个分析实例

SolanaNFT交易概览OpenSea市场分析Eth2号流动性质押如果你对SQL完全陌生,我会推荐这些有用的Dune分析的提示和指南:

内联Ethereum地址。当在Dune中工作时,Ethereum地址被存储为PostgresSQL字节数,当你在Etherscan上查询时,它被编码为`x`前缀,而不是通常的`0x`。识别交易中的合约地址。当试图区分合约地址和普通地址时,你可以通过检查`CREATE`操作码是否在`traces`中被调用来实现,比如说

3.充分利用Dune上的标签。标签是一块关于地址的元数据,如果你愿意,是一个标签或元数据。它以键-值对的形式出现。键是标签类型,而值是标签名称。从本质上讲,你可以使用标签来查找地址,看看它们是什么。你可以在这里获得更多关于标签是什么以及如何使用它们的见解

https://docs.dune.xyz/data-tables/data-tables/labels#what-labels-looks-like

如果你想获取所查看地址的标签,请使用此UDF,你可以这样做;

4.表和列名的引号。PostgresSQL不能识别没有引号的骆驼字母的列和表名。因此,在Postgres中,双引号是为表和列保留的,而单引号是为值保留的,因此,如果你查询表名中的大写字母,Dune会抛出一个错误。

5.去除小数。在处理代币金额时,记得检查`erc20."tokens"`中的小数。

6.生成时间序列。当处理一个具有不连续时间序列的数据集时,使用

希望这是一篇有用的讨论文章,你已经知道了足够的知识来做基本的Web3数据探索和分析,使用Dune上的SQL,它看起来像什么,以及如何与它合作。在分析web3中的经济活动和用户行为时,重要的是要培养对特定智能合约工作方式的理解兴趣,这就会继续帮助你确定感兴趣的指标中涉及的关键功能和事件。

Web3正在经历快速发展和高变异,每天都有新的想法、产品、社区和实验涌现。它目前触及生活中的方方面面,包括但不限于支付、金融、艺术、音乐、游戏、社区、治理和身份,这使得任何人都能参与其中,令人兴奋。

所以请理解,结合实际使用Web3产品、检查Etherscan等区块浏览器上的数据耗尽情况以及阅读智能合约源代码,是制定正确的数据分析策略的关键必要条件。

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

金宝趣谈

[0:0ms0-3:472ms