跳转到主要内容本节详细介绍了 ChainStream 通过 Kafka 提供的 Tron 数据流。顶层 Kafka 部分解释了我们如何使用 Kafka Streams 来传输数据。
Tron 区块链平均出块时间约为 3 秒,相比以太坊等 EVM 链更快,适合高频交易和应用场景。
链上数据结构
Tron Protobuf 数据流为不同的使用场景提供两种主要消息类型:
BlockHeader: 包含区块的核心元数据
TransfersMessage: 专注于代币转账和货币元数据
每个区块包含一个 BlockHeader,字段包括:
Number: 区块高度
Hash: 区块哈希
Timestamp: 区块时间戳
ParentHash: 父区块哈希
ParentNumber: 父区块高度
Version: 区块版本
TxTrieRoot: 交易树根
AccountStateRoot: 账户状态根(可选)
TransactionsCount: 区块内交易数量
TransactionHeader 提供交易的核心信息:
Hash: 交易哈希
Fee: 实际消耗的手续费
Index: 交易在区块中的索引
Expiration: 交易过期时间
Data: 原始调用数据
FeeLimit: 交易指定的手续费上限
Timestamp: 交易时间戳
Signatures: 签名列表
Time: 广播时间戳(可选)
FeePayer: 手续费支付方
转账数据(Transfer)
TransfersMessage 中的 Transfer 记录代币或原生货币的转账:
CallIndex: 调用索引
LogIndex: 日志索引
Sender: 发送地址
Receiver: 接收地址
Amount: 转账数量(字符串表示,保证精度)
Id: 代币 ID(NFT 使用)
URI: 代币 URI(NFT 元数据)
Currency: TokenInfo 代币元数据
Success: 转账是否成功
Data: 原始事件数据
Index: 转账在消息中的索引
TransactionHeader: 所属交易的上下文
代币信息(TokenInfo)
TokenInfo 提供代币的详细元数据:
SmartContract: 代币合约地址
Delegated: 是否被委托
DelegatedTo: 委托目标地址
ProtocolName: 协议/项目名称
Name: 代币名称
Symbol: 代币符号
Decimals: 小数位数
HasURI: 是否包含 URI
Fungible: 是否为同质化代币
AssetId: 唯一资产标识符
Standard: 代币标准(NATIVE、TRC10、TRC20、TRC721、TRC1155)
TransfersMessage
顶层转账消息:
Chain: 区块链元数据(ChainId)
Header: 当前区块头
Transfers: 转账记录列表
使用数据流
主题名称
Tron 数据流在不同的 Kafka 主题下可用:
tron.v1.transfers.proto → TransfersMessage