跳转到主要内容本节详细介绍了 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