![Cover image for 1.5[Intermediate] Iceberg-Trino 如何解决链上数据面临的挑战](https://img.paragraph.com/cdn-cgi/image/format=auto,width=3840,quality=85/https://storage.googleapis.com/papyrus_images/5f9d4430fcd78103e346b51a95d59f17df5ed3a8d9b08ea412a1d2ba116f9247.jpg)
1.5[Intermediate] Iceberg-Trino 如何解决链上数据面临的挑战
此文章是 #Web3 data 系列 的其中一个章节。链上数据处理面临的挑战区块链数据公司,在索引以及处理链上数据时,可能会面临一些挑战,包括:海量数据。随着区块链上数据量的增加,数据索引将需要扩大规模以处理增加的负载并提供对数据的有效访问。因此,它导致了更高的存储成本;缓慢的指标计算和增加数据库服务器的负载。复杂的数据生产流程。区块链技术是复杂的,建立一个全面和可靠的数据索引需要对底层数据结构和算法有深刻的理解。这是由区块链实现方式的多样性所决定的。举一个具体的例子,以太坊中的 NFT 通常是在遵循 ERC721 和 ERC1155 格式的智能合约中进行创建的,而像Polkadot 上通常是直接在区块链运行时间内构建的。对于用户来说,不管是任何形式的存在,这些数据应该被视为 NFT 的交易,需要被存储,并且处理为可读状态,方便分析以及进行计算。集成能力。为了给用户提供最大的价值,区块链索引解决方案可能需要将其数据索引与其他系统集成,如分析平台或 API。这很有挑战性,需要在架构设计上投入大量精力。随着区块链技术的使用越来越广泛,存储在区块链上的数据量也在增加。这是因为更多的人在...

区块链游戏概览:回顾 2023,展望 2024
作者:lesley@footprint.network 数据来源:区块链游戏年报关键要点今年,比特币(BTC)市值从上年的低谷中强劲回升,相较之下,区块链游戏市场的增长虽然较为平淡,但年末也迎来了显著的上升势头。今年的游戏中,仅有 6% 的游戏拥有超过 1,000 个活跃钱包,相比去年的 10% 有所减少。2023 年,尽管整体交易量比 2022 年的高点有所下降,交易次数却相对稳定。2023 年,区块链游戏行业正在发展,而 AI 也在深刻改变着这一行业。Layer 2 区块链也发展迅速,但 BNB 链等老牌区块链仍占据市场。市场正在期待顶尖区块链游戏的出现,GambleFi 或许将迎来增长,但仍需面对监管挑战。在用户获取上,利用 Telegram 和 X(Twitter)等社交平台平台来触达庞大用户群体已成为一种趋势区块链游戏是 Web3 领域对于大众普及的重要催化剂,在简化复杂概念、让人们理解区块链技术上发挥着重要作用。与其他领域不同,传统游戏里早已存在的游戏货币和道具概念,使区块链游戏成为普罗大众更易理解和接受的 Web3 普及方案。 尽管 2023 年区块链游戏市场交易量...

如何使用Footrace 钱包监控功能和设置自定义的交易警报
本文将介绍如何使用 Footrace 监控 CEX 的钱包地址并设置自定义警报。 2022-06-12 本文将介绍如何使用 Footrace 监控 CEX 的钱包地址并设置自定义警报。 什么是 Footrace? Footrace (Foot Trace) 是一个多链的钱包追踪监控平台,可以监控CEX、DEX、鲸鱼、聪明钱、或任何你想关注的地址的钱包。 Footrace 帮助投资者保护他们的投资并监控异常的市场和资金流动。您可以设置自定义警报,通过电子邮件、电报、Discord、SMS 等向您发送重要的资金流通知和警报。Footrace 中心化交易所监控页Footrace目前监控了 122 交易所的资金流活动及其钱包余额。包括了中心化和去中心化交易所的地址数据。由于这些交易所和基金可能会添加新的钱包地址,用户可以使用Footrace的钱包地址的功能来添加 Footrace 缺少的任何钱包地址。Footrace 地址提交工具 如何开始监控?钱包余额在监控交易所时,钱包余额是需要仔细关注的指标之一。具有大量钱包余额的交易所通常意味著有大量的客户,并反映出市场对此加密货币交易所的高度信...
Footprint Analytics 是一个全面的区块链数据分析平台,简化了 Web3 项目的分析和社区管理,实现可持续增长。
![Cover image for 1.5[Intermediate] Iceberg-Trino 如何解决链上数据面临的挑战](https://img.paragraph.com/cdn-cgi/image/format=auto,width=3840,quality=85/https://storage.googleapis.com/papyrus_images/5f9d4430fcd78103e346b51a95d59f17df5ed3a8d9b08ea412a1d2ba116f9247.jpg)
1.5[Intermediate] Iceberg-Trino 如何解决链上数据面临的挑战
此文章是 #Web3 data 系列 的其中一个章节。链上数据处理面临的挑战区块链数据公司,在索引以及处理链上数据时,可能会面临一些挑战,包括:海量数据。随着区块链上数据量的增加,数据索引将需要扩大规模以处理增加的负载并提供对数据的有效访问。因此,它导致了更高的存储成本;缓慢的指标计算和增加数据库服务器的负载。复杂的数据生产流程。区块链技术是复杂的,建立一个全面和可靠的数据索引需要对底层数据结构和算法有深刻的理解。这是由区块链实现方式的多样性所决定的。举一个具体的例子,以太坊中的 NFT 通常是在遵循 ERC721 和 ERC1155 格式的智能合约中进行创建的,而像Polkadot 上通常是直接在区块链运行时间内构建的。对于用户来说,不管是任何形式的存在,这些数据应该被视为 NFT 的交易,需要被存储,并且处理为可读状态,方便分析以及进行计算。集成能力。为了给用户提供最大的价值,区块链索引解决方案可能需要将其数据索引与其他系统集成,如分析平台或 API。这很有挑战性,需要在架构设计上投入大量精力。随着区块链技术的使用越来越广泛,存储在区块链上的数据量也在增加。这是因为更多的人在...

区块链游戏概览:回顾 2023,展望 2024
作者:lesley@footprint.network 数据来源:区块链游戏年报关键要点今年,比特币(BTC)市值从上年的低谷中强劲回升,相较之下,区块链游戏市场的增长虽然较为平淡,但年末也迎来了显著的上升势头。今年的游戏中,仅有 6% 的游戏拥有超过 1,000 个活跃钱包,相比去年的 10% 有所减少。2023 年,尽管整体交易量比 2022 年的高点有所下降,交易次数却相对稳定。2023 年,区块链游戏行业正在发展,而 AI 也在深刻改变着这一行业。Layer 2 区块链也发展迅速,但 BNB 链等老牌区块链仍占据市场。市场正在期待顶尖区块链游戏的出现,GambleFi 或许将迎来增长,但仍需面对监管挑战。在用户获取上,利用 Telegram 和 X(Twitter)等社交平台平台来触达庞大用户群体已成为一种趋势区块链游戏是 Web3 领域对于大众普及的重要催化剂,在简化复杂概念、让人们理解区块链技术上发挥着重要作用。与其他领域不同,传统游戏里早已存在的游戏货币和道具概念,使区块链游戏成为普罗大众更易理解和接受的 Web3 普及方案。 尽管 2023 年区块链游戏市场交易量...

如何使用Footrace 钱包监控功能和设置自定义的交易警报
本文将介绍如何使用 Footrace 监控 CEX 的钱包地址并设置自定义警报。 2022-06-12 本文将介绍如何使用 Footrace 监控 CEX 的钱包地址并设置自定义警报。 什么是 Footrace? Footrace (Foot Trace) 是一个多链的钱包追踪监控平台,可以监控CEX、DEX、鲸鱼、聪明钱、或任何你想关注的地址的钱包。 Footrace 帮助投资者保护他们的投资并监控异常的市场和资金流动。您可以设置自定义警报,通过电子邮件、电报、Discord、SMS 等向您发送重要的资金流通知和警报。Footrace 中心化交易所监控页Footrace目前监控了 122 交易所的资金流活动及其钱包余额。包括了中心化和去中心化交易所的地址数据。由于这些交易所和基金可能会添加新的钱包地址,用户可以使用Footrace的钱包地址的功能来添加 Footrace 缺少的任何钱包地址。Footrace 地址提交工具 如何开始监控?钱包余额在监控交易所时,钱包余额是需要仔细关注的指标之一。具有大量钱包余额的交易所通常意味著有大量的客户,并反映出市场对此加密货币交易所的高度信...
Footprint Analytics 是一个全面的区块链数据分析平台,简化了 Web3 项目的分析和社区管理,实现可持续增长。

Subscribe to Footprint Analytics

Subscribe to Footprint Analytics
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers


此文章是 #Web3 data 系列 的其中一个章节。
Solana 是一种网络规模的开源区块链协议,支持世界各地的开发人员和机构构建去中心化应用程序 (DApp) 和市场。Solana 的协议快速、安全且抗审查,它提供了构建大规模采用的应用程序所需的开放基础架构的灵活性。
这种高性能区块链提供了未来 DApp 和去中心化市场所需的完全去中心化、安全和高度可扩展的基础设施。它利用了一组突破性的计算技术,可以支持数千个节点,允许交易吞吐量与网络带宽成比例地扩展。
Solana 结合使用权益证明(PoS) 和历史证明 (PoH) 共识机制来提高吞吐量和可扩展性。因此,该网络声称支持每秒 50,000 笔交易 (TPS),使其成为世界上最快的区块链。
Solana 核心概念包括: accounts、program、transaction、rent
如果程序需要在交易之间存储状态,它会使用 accounts来实现,Solana分为3种accounts类型:
数据账户负责存储数据
程序账户负责存储可执行程序
原生账户,指Solana上的原生程序,例如"System","Stake",以及"Vote"
数据账户分为两类:
System owned accounts
PDA (Program Derived Address) accounts
每个账户拥有地址(public key)和一个owner,每个账户的字段列表如下:

关于所有权,有几条重要的规则:
只有账户的所有者才能改变账户中的数据,提取lamport
任何人都可以向数据账户中存入lamport
当账户中的数据被抹除之后,账户的所有者可以指定新的所有者
PDA
存在另一种类型的帐户,称为程序派生帐户,通过算法从拥有该帐户的程序的公钥中派生出来的。我们将该地址称为程序派生地址或简称PDA。
Solana 的program,在其他区块链上通常被称为“smart contract“,是解释区块链上每笔交易内部发送的指令的可执行代码。
关键点
program 本质上是标记为 executable(可执行)的特殊类型账户
program 可以拥有其他账户
program 只能更改他们拥有的数据或账户
任何program都可以读取或存入另一账户
程序被认为是无状态的,因为存储在program账户中的主要数据是编译后的BPF代码
程序可以由其所有者owner升级
program类型分为两种:
on chain program (链上程序)
on chain program 是用户编写的程序,直接部署到链上,供任何人交互和执行。on chain program 是没有直接融入Solana集群核心代码的 program
native program
native program 是直接构建到 Solana 核心代码中的程序。它们和on chain program 类似,可以被任何程序/账户调用。但它们只能作为作为链核心的一部分,和集群一起进行升级。
BPF loader
在链上部署、升级和执行程序。
程序编号:BPFLoaderUpgradeab1e11111111111111111111111
使用说明:LoaderInstruction
BPF Upgradeable Loader 将自己标记为它创建的用于存储程序的可执行文件和程序数据帐户的所有者。当用户通过程序 ID 调用指令时,Solana 运行时将加载您的程序及其所有者 BPF Upgradeable Loader。运行时然后将您的程序传递给 BPF Upgradeable Loader 以处理指令。
Token program
该程序定义同质化和非同质化代笔的通用实现。每个token都有其metadata,其目的是把额外数据附加到 nft 和代币上。
Mint Account 负责存储 Token的全局信息,Token accounts 存储钱包和Mint Account 之间的关系。Metadata Account 可以通过PDA把自己附加到 Mint Account。Metadata包括供应量、symbol等信息。

在Solana中的NFT具备以下特征的 Mint Accounts:
它的供应量为 1,这意味着只有一个代币在流通。
它有零位小数,这意味着不可能有 0.5 个标记这样的东西。
它没有铸造权限,这意味着没有人可以铸造额外的代币。
Certified Collections 使 NFT 能够组合在一起并在链上验证该信息。因此需要先创建一个collection NFT,其目的是存储与该collection相关的任何元数据。在Solana中,NFT的collection本身就是一个NFT。
program 执行的开始伴随着一个 transaction 被提交到集群中。Solana 运行时将执行一个程序,按顺序执行每一个指令 instruction。每个 transaction 可包含多个指令,每个指令也可以包含多个内部指令(跨程序调用指令)inner instruction 。instruction 是 program 中最小的执行逻辑单元。
instruction 核心组成部分:
accounts
受此 instruction 影响的 accounts 地址数组。这可能是因为帐户将被读取、更改或两者兼而有之。请注意,此数组的顺序很重要,因为程序将根据其位置识别提供的帐户类型。
program id
instruction 的program id 指定哪个程序执行指令。
instruction data
每条 instruction 都带有一个通用字节数组,该数组与帐户一起传递给程序,也叫做 Arguments。instruction data 的内容是特定于程序的,通常用于传达程序应执行的操作,以及这些操作可能需要的超出帐户包含内容的任何其他信息。
可通过 Anchor 对instruction data进行解码,需要准备 program 的 IDL 类似abi文件。python 封装的 anchorpy 比较好上手。
基于对Solana的了解,我们现在来看看Footprint做了哪些应用:
在Solana的transfer指令中,source为token的发送账户,destination代表token的接收账户。但其并非实际的钱包地址,所以创建了solana_account_mapping解决这个问题;另外,Solana的NFT会频繁更换拥有者。

表结构
solana_account_mapping字段描述:
token_address:代币地址
token_account:钱包对应不同代币生成的子账号,拥有者可随意控制该账户上的代币
owner:token account的拥有者
hold_end_time:该owner持有该token account的结束时间
hold_start_time:该owner持有该token account的开始时间

Footprint 解析了Solana上最大的两个NFT marketplace —- magic-eden和opensea 的sale数据,并使用统一的数据模型。抽象sale业务,把EVM链和非EVM链的业务数据组合在一起,形成标准化。其统一标准数据放在nft_transactions中。
通过把Solana的NFT数据放入统一数据模型中,生产出统一标准的NFT指标。包括:collection市值,marketplace交易量,NFT持有时间,floor price等指标。数据存储在以下表中:
nft_latest_stats
nft_collection_daily_stats
nft_collection_transfer_daily_stats
marketplace_nft_collection_daily_stats
nft_collection_info
nft_info
nft_token_attritue
由于NFT collection在Solana中比较特殊的存在,我们通过收集solscan上的collection id作为我们系统中的collection_contract_address。通过唯一collection_slug解决相同collection跨链的问题。
结合gamefi的业务抽象,对Solana的数据进行提取和转化,放进统一的业务数据模型中。捕捉Solana中的钱包地址或账户与GameFi项目方账户进行交互的用户行为,统计出用户、资金流转等纬度的指标。可通过下表查看:
protocol_daily_stats
protocol_active_address
protocol_address_retention_daily
protocol_address_retention_monthly
protocol_address_retention_weekly
此文章是 #Web3 data 系列 的其中一个章节。
Solana 是一种网络规模的开源区块链协议,支持世界各地的开发人员和机构构建去中心化应用程序 (DApp) 和市场。Solana 的协议快速、安全且抗审查,它提供了构建大规模采用的应用程序所需的开放基础架构的灵活性。
这种高性能区块链提供了未来 DApp 和去中心化市场所需的完全去中心化、安全和高度可扩展的基础设施。它利用了一组突破性的计算技术,可以支持数千个节点,允许交易吞吐量与网络带宽成比例地扩展。
Solana 结合使用权益证明(PoS) 和历史证明 (PoH) 共识机制来提高吞吐量和可扩展性。因此,该网络声称支持每秒 50,000 笔交易 (TPS),使其成为世界上最快的区块链。
Solana 核心概念包括: accounts、program、transaction、rent
如果程序需要在交易之间存储状态,它会使用 accounts来实现,Solana分为3种accounts类型:
数据账户负责存储数据
程序账户负责存储可执行程序
原生账户,指Solana上的原生程序,例如"System","Stake",以及"Vote"
数据账户分为两类:
System owned accounts
PDA (Program Derived Address) accounts
每个账户拥有地址(public key)和一个owner,每个账户的字段列表如下:

关于所有权,有几条重要的规则:
只有账户的所有者才能改变账户中的数据,提取lamport
任何人都可以向数据账户中存入lamport
当账户中的数据被抹除之后,账户的所有者可以指定新的所有者
PDA
存在另一种类型的帐户,称为程序派生帐户,通过算法从拥有该帐户的程序的公钥中派生出来的。我们将该地址称为程序派生地址或简称PDA。
Solana 的program,在其他区块链上通常被称为“smart contract“,是解释区块链上每笔交易内部发送的指令的可执行代码。
关键点
program 本质上是标记为 executable(可执行)的特殊类型账户
program 可以拥有其他账户
program 只能更改他们拥有的数据或账户
任何program都可以读取或存入另一账户
程序被认为是无状态的,因为存储在program账户中的主要数据是编译后的BPF代码
程序可以由其所有者owner升级
program类型分为两种:
on chain program (链上程序)
on chain program 是用户编写的程序,直接部署到链上,供任何人交互和执行。on chain program 是没有直接融入Solana集群核心代码的 program
native program
native program 是直接构建到 Solana 核心代码中的程序。它们和on chain program 类似,可以被任何程序/账户调用。但它们只能作为作为链核心的一部分,和集群一起进行升级。
BPF loader
在链上部署、升级和执行程序。
程序编号:BPFLoaderUpgradeab1e11111111111111111111111
使用说明:LoaderInstruction
BPF Upgradeable Loader 将自己标记为它创建的用于存储程序的可执行文件和程序数据帐户的所有者。当用户通过程序 ID 调用指令时,Solana 运行时将加载您的程序及其所有者 BPF Upgradeable Loader。运行时然后将您的程序传递给 BPF Upgradeable Loader 以处理指令。
Token program
该程序定义同质化和非同质化代笔的通用实现。每个token都有其metadata,其目的是把额外数据附加到 nft 和代币上。
Mint Account 负责存储 Token的全局信息,Token accounts 存储钱包和Mint Account 之间的关系。Metadata Account 可以通过PDA把自己附加到 Mint Account。Metadata包括供应量、symbol等信息。

在Solana中的NFT具备以下特征的 Mint Accounts:
它的供应量为 1,这意味着只有一个代币在流通。
它有零位小数,这意味着不可能有 0.5 个标记这样的东西。
它没有铸造权限,这意味着没有人可以铸造额外的代币。
Certified Collections 使 NFT 能够组合在一起并在链上验证该信息。因此需要先创建一个collection NFT,其目的是存储与该collection相关的任何元数据。在Solana中,NFT的collection本身就是一个NFT。
program 执行的开始伴随着一个 transaction 被提交到集群中。Solana 运行时将执行一个程序,按顺序执行每一个指令 instruction。每个 transaction 可包含多个指令,每个指令也可以包含多个内部指令(跨程序调用指令)inner instruction 。instruction 是 program 中最小的执行逻辑单元。
instruction 核心组成部分:
accounts
受此 instruction 影响的 accounts 地址数组。这可能是因为帐户将被读取、更改或两者兼而有之。请注意,此数组的顺序很重要,因为程序将根据其位置识别提供的帐户类型。
program id
instruction 的program id 指定哪个程序执行指令。
instruction data
每条 instruction 都带有一个通用字节数组,该数组与帐户一起传递给程序,也叫做 Arguments。instruction data 的内容是特定于程序的,通常用于传达程序应执行的操作,以及这些操作可能需要的超出帐户包含内容的任何其他信息。
可通过 Anchor 对instruction data进行解码,需要准备 program 的 IDL 类似abi文件。python 封装的 anchorpy 比较好上手。
基于对Solana的了解,我们现在来看看Footprint做了哪些应用:
在Solana的transfer指令中,source为token的发送账户,destination代表token的接收账户。但其并非实际的钱包地址,所以创建了solana_account_mapping解决这个问题;另外,Solana的NFT会频繁更换拥有者。

表结构
solana_account_mapping字段描述:
token_address:代币地址
token_account:钱包对应不同代币生成的子账号,拥有者可随意控制该账户上的代币
owner:token account的拥有者
hold_end_time:该owner持有该token account的结束时间
hold_start_time:该owner持有该token account的开始时间

Footprint 解析了Solana上最大的两个NFT marketplace —- magic-eden和opensea 的sale数据,并使用统一的数据模型。抽象sale业务,把EVM链和非EVM链的业务数据组合在一起,形成标准化。其统一标准数据放在nft_transactions中。
通过把Solana的NFT数据放入统一数据模型中,生产出统一标准的NFT指标。包括:collection市值,marketplace交易量,NFT持有时间,floor price等指标。数据存储在以下表中:
nft_latest_stats
nft_collection_daily_stats
nft_collection_transfer_daily_stats
marketplace_nft_collection_daily_stats
nft_collection_info
nft_info
nft_token_attritue
由于NFT collection在Solana中比较特殊的存在,我们通过收集solscan上的collection id作为我们系统中的collection_contract_address。通过唯一collection_slug解决相同collection跨链的问题。
结合gamefi的业务抽象,对Solana的数据进行提取和转化,放进统一的业务数据模型中。捕捉Solana中的钱包地址或账户与GameFi项目方账户进行交互的用户行为,统计出用户、资金流转等纬度的指标。可通过下表查看:
protocol_daily_stats
protocol_active_address
protocol_address_retention_daily
protocol_address_retention_monthly
protocol_address_retention_weekly
No activity yet