链上数据结构
EVM Protobuf 数据流为不同的使用场景提供两种主要消息类型:BlockMessage
: 包含详细交易追踪的完整区块TransfersMessage
: 专注于代币转账和货币元数据
区块级别数据
数据流中的每个区块都包含一个BlockHeader
,其字段包括:
Hash
: 区块的唯一标识符ParentHash
: 前一个区块的哈希Number
: 区块编号/链上高度GasLimit
: 此区块允许的最大 gasGasUsed
: 交易实际消耗的 gasTime
: 区块时间戳BaseFee
: 每 gas 的基础费用(EIP-1559)
BlockMessage
还包括:
Chain
: 区块链信息(ChainId、Config)Uncles
: 叔块/ommer 区块(以太坊 PoW)Transactions
: 区块中的所有交易L1Header
: 对于 Layer 2 链,对应的 L1 区块信息
交易级别数据
交易包括: TransactionHeader: 核心交易数据Hash
: 交易哈希Gas
: 此交易的 gas 限制Value
: 转移的原生货币数量Data
: 合约交互的调用数据From
/To
: 发送者和接收者地址GasPrice
、GasFeeCap
、GasTipCap
: 费用参数- EIP-4844 blob 交易的特殊字段
Status
: 成功或失败GasUsed
: 实际消耗的 gasLogs
: 发出的事件日志
Calls
: 内部合约调用CaptureStates
: 状态修改
转账数据
TransfersMessage
数据流提供原生代币和代币转账信息:
TokenTransfer: 记录原生代币和代币转账:
Sender
: 发送代币的地址Receiver
: 接收代币的地址Amount
: 转移的代币数量Id
: 代币 ID(用于非同质化代币)Currency
: 详细的代币信息Success
: 转账是否成功
SmartContract
: 代币合约地址Name
: 代币名称Symbol
: 代币符号Decimals
: 代币小数位数Fungible
: 代币是否为同质化代币(ERC-20)或非同质化代币(ERC-721/1155)
Layer 2 支持
EVM Protobuf 数据流为 Layer 2 链提供专用字段:L1Header
: 对应的 L1 区块信息- Optimism 特定字段:
SequenceNumber
、BatcherAddr
、L1FeeOverhead
等 - Arbitrum 特定字段:用于 L1 数据成本的
GasL1
使用数据流
主题名称
EVM 数据流在不同的主题下可用:eth.v1.transfers.proto
→TransfersMessage