dd70b4299aad39ad2641dfc9414848d478a6be73
Some checks failed
CI / build (push) Has been cancelled
- Add automated deployment workflow configuration - Configure CI/CD pipeline for bc-netts-energy 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Netts Energy Orchestrator
Netts Energy Orchestrator 是一个使用 Go 实现的独立服务,用于为自动到账系统中的 TRON 地址自动租赁能量。它集成了 Netts API v2,支持地址自动加入 Host Mode、轮询剩余能量周期并按需购买能量租赁周期,从而显著降低 TRC20 归集的手续费。
功能亮点
- ✅ Netts API 集成:封装
usdt/analyze、time/add、time/status、time/order等核心接口。 - 🔁 自动周期管理:当剩余周期低于阈值时自动补充,可选自动 Host Mode 注册。
- 🧩 独立微服务:提供 REST API (
POST /api/v1/energy/rent),便于与现有到账平台对接。 - ⚙️ 可配置化:通过
config.yaml或环境变量管理 API Key、阈值、重试策略等。 - 📈 可观察性:结构化日志、健康检查接口,易于纳入现有监控体系。
快速开始
-
复制配置模板:
cp config.example.yaml config.yaml -
编辑
config.yaml,填入 Netts API Key、白名单 IP、Host Mode 回调地址等;或通过环境变量覆盖:export NETTS_API_KEY=your-key export NETTS_REAL_IP=1.2.3.4 -
运行服务:
go run ./cmd/server -config config.yaml -
调用接口租赁能量:
curl -X POST http://localhost:8080/api/v1/energy/rent \ -H "Content-Type: application/json" \ -d '{ "from_address": "Txxx", "to_address": "Tyyy", "amount": "200.0" }'返回值包含分析结果、是否新增 Host Mode、下单详情以及最新剩余周期。
配置说明
参见 config.example.yaml,主要段落如下:
server:HTTP 服务监听地址、超时等。netts:Netts API 参数(apiKey可通过NETTS_API_KEY覆盖)。energy:autoAddHost:是否自动调用time/add把地址加入 Host Mode。minCycles/targetCycles:低于最小阈值时补足到目标阈值。postOrderWait:下单后等待能量生效的时间。
logging:日志级别与输出格式(text/json)。
更多环境变量详见 internal/config/config.go 中的 envPrefix 定义。
REST API
POST /api/v1/energy/rent
{
"from_address": "源地址(监控地址)",
"to_address": "归集地址",
"amount": "USDT 数量,可选,默认 100",
"callback_url": "可选,覆盖 config 默认回调"
}
响应字段包括推荐能量、下单情况、当前 Host Mode 状态等,详细 schema 请见 docs/api.md。
测试与质量
go test ./...
golangci-lint run # 若本地已安装,可执行静态检查
CI 流程(.github/workflows/ci.yaml)会执行 go fmt, go vet, go test。
与自动到账系统的集成
- 对接点:在归集服务中,当检测到能量不足(或计划归集)时调用本服务接口即可。
- 配置建议:将主系统的数据库中保存的地址同步到 Netts Host Mode,或在首次归集前调用
rent接口,由服务自动注册/购买能量。 - 监控:可通过
/healthz结合现有 Prometheus/Consul 健康检查;同时建议订阅 Netts 提供的 webhook 以获知能量下发事件。
更多架构细节、部署流程以及 CI/CD 建议请参阅 docs/architecture.md 与 docs/deployment.md。
Netts 平台接入流程
在部署本服务之前,请确保完成 Netts Workspace 的账号准备(详见 docs/deployment.md 中的“Netts 账号准备流程”):
- 注册并登录 https://netts.io/workspace,生成 API Key;
- 在 Wallet 页面充值 TRX,保证账户余额可覆盖租赁费用;
- 在 API 设置中配置服务器出口 IP 白名单;
- 将 API Key、Real IP、回调地址写入
config.yaml或环境变量; - 通过
curl https://netts.io/apiv2/userinfo(携带X-API-KEY与X-Real-IP)验证连通性。
完成上述步骤后,才可由本服务调用 Netts 接口完成能量租赁。
Description
Languages
Go
99.5%
Makefile
0.5%