bepusdt
bepusdt copied to clipboard
feat: add Tron API key support and refactor gRPC client initialization
TRON API Key 配置说明
概述
本项目已优化 TRON gRPC 客户端,支持通过 API key 进行认证。这对于使用需要认证的 TRON 节点(如 TronScan API)是必需的。
配置方法
1. 获取 API Key
访问 TronScan API 文档 注册并获取你的 API key。
2. 配置文件设置
在 conf.toml 配置文件中添加 tron_api_key 参数:
# Tron网络GRPC节点
tron_grpc_node = "grpc.trongrid.io:50051"
# Tron API Key(留空则不使用API key)
tron_api_key = "your-api-key-here"
注意事项:
- 如果使用公共节点(如
18.141.79.38:50051),可以留空此参数 - 如果使用需要认证的节点,必须填写有效的 API key
- API key 将通过 gRPC metadata 自动添加到所有 TRON 请求中
技术实现
API Key 传递方式
API key 通过 gRPC metadata 头信息传递:
- Header 名称:
TRON-PRO-API-KEY - 自动应用于所有 TRON gRPC 调用(Unary 和 Stream)
代码变更
-
新增文件:
app/help/tron.go- 提供统一的
NewTronGrpcClient()工厂函数 - 自动添加 API key 拦截器
- 提供统一的
-
配置支持:
app/conf/conf.go:新增TronApiKey字段app/conf/rpc.go:新增GetTronApiKey()方法conf.example.toml:添加配置示例
-
使用位置:
app/task/tron.go:区块扫描器(3处)app/bot/callback.go:Telegram bot 钱包查询(2处)
验证
成功配置后,所有 TRON 相关操作将自动携带 API key:
- 区块扫描
- 交易查询
- 账户余额查询
- TRC20 代币余额查询
兼容性
- 向后兼容:如果不配置
tron_api_key,系统将继续使用原有方式工作 - 适用于需要 API key 认证的节点服务
- 不影响其他区块链网络的配置
安全建议
- 不要将 API key 提交到版本控制系统
- 使用环境变量或密钥管理系统存储 API key
- 定期轮换 API key
- 监控 API key 使用情况,防止滥用
示例配置
# 使用 TronGrid(需要 API key)
tron_grpc_node = "grpc.trongrid.io:50051"
tron_api_key = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 或使用公共节点(不需要 API key)
tron_grpc_node = "18.141.79.38:50051"
tron_api_key = ""
故障排查
问题:连接失败或认证错误
解决方案:
- 检查 API key 是否正确
- 确认 API key 是否已激活
- 验证节点地址是否正确
- 查看日志文件中的详细错误信息
问题:部分请求失败
解决方案:
- 检查 API key 配额是否用尽
- 确认 API key 权限是否足够
- 联系 TRON 节点服务提供商
相关链接
感谢PR,不过最近v2版本正在开发中,精力有限、v1版本的维护工作可能会暂时搁置;不过针对此PR的想法已然了解,后续可能会采纳吸收入v2版本。
OK