Categorygithub.com/NpoolPlatform/fox-plugin
module
0.0.0-20250114081835-2919cf402d16
Repository: https://github.com/npoolplatform/fox-plugin.git
Documentation: pkg.go.dev

# README

Npool go service app template

Test

目录


新增币种

新增功能

  • 自定义调度周期
  • 自定义错误处理
  • 链路追踪
  • 监控
  • 币种单位转换统一处理
  • 上报meta信息到proxy
  • 优化配置
  • 相同地址的并发处理
  • payload 记录在 redis
  • 动态调整 gas fee
  • 支持多 pod 部署
  • 连接wallet节点时检测同步状态
  • 支持同一个链plugin下可配置所有token的子集
  • CID查询链上交易状态
  • 提供获取秘钥(文件)接口
  • Proxy提供查询plugin对应信息接口

新币种的支持步骤

  1. 配置新币种单位和名称
  2. 必须要实现的接口
  3. 注册新币种
  4. 设置默认 SyncTime

功能

  • 将服务部署到k8s集群
  • 将服务 api 通过 traefik-internet ingress 代理,供外部应用调用(视服务功能决定是否需要)

命令

  • make init 初始化仓库,创建go.mod
  • make verify 验证开发环境与构建环境,检查code conduct
  • make verify-build 编译目标
  • make test 单元测试
  • make generate-docker-images 生成docker镜像
  • make fox-plugin 单独编译服务
  • make fox-plugin-image 单独生成服务镜像
  • make deploy-to-k8s-cluster 部署到k8s集群

最佳实践

  • 每个服务只提供单一可执行文件,有利于 docker 镜像打包与 k8s 部署管理
  • 每个服务提供 http 调试接口,通过 curl 获取调试信息
  • 集群内服务间 direct call 调用通过服务发现获取目标地址进行调用

环境变量

币种变量名称支持的值说明
ENV_CHAIN_ID链 ID,在 ENV_COIN_NET 为 main 时无需设置
ENV_CHAIN_NICKNAME链名称,在 ENV_COIN_NET 为 main 时无需设置
ENV_COIN_LOCAL_API多个地址使用,分割
ENV_COIN_PUBLIC_API多个地址使用,分割
ENV_COIN_TYPE
ENV_POSITIONplugin 的位置信息(如 NewYork_NO2)
ENV_SYNC_INTERVALoptional,交易状态同步间隔周期(s)
ENV_WAN_IPplugin 的 wan-ip
CommENV_COIN_NETmain or test
EthereumENV_BUILD_CHAIN_SERVERhost:grpc_port用于 eth 的 plugin 在 test 环境下获取测试合约地址
SmartContractCoinENV_CONTRACT合约币的合约地址(对于主网合约地址已硬编码,测试网需要指定为自己部署的合约地址)

配置说明

对于合约地址配置说明

钱包地址格式

钱包地址配置格式:

'url|auth,url|auth,url|auth'

注意:所有地址需要用引号引起来,地址间用逗号分割

单个地址格式:

  • 格式1 不需要认证

      auth 格式
      示例: https://127.0.0.1:8080 或 127.0.0.1:8080 
    
  • 格式2 账号密码体系

      auth 格式
      user@password
      示例: https://127.0.0.1:8080|root@3306 或 127.0.0.1:8080|root@3306
    
  • 格式3 token 体系

      auth 格式
      token
      示例: https://127.0.0.1:8080|token 或 127.0.0.1:8080|token
    
格式说明
格式 1sol bsc eth tron smh chia
格式 2btc
格式 3fil ironfish

交易上链状态查询默认周期

以下表格也是所有类型plugin的列表

币种默认值出块时间
tron2s3s
solana1s0.4s
bitcoin7min10min
filecoin20s30s
ironfish1min1~2min
spacemesh0.5min2min
binanceusd4s5s
usdtbep204s5s
usdcerc2012s10~20s
usdttrc202s3s
binancecoin4s5s
ethereum(eth、23 种 erc20 tokens)12s10~20s
chia30s30s

wallet-status-check

钱包状态检查,检查节点高度是否与链高度一致 tron链的币种暂无

account-check

账户验证

升级说明

  • 需要关闭用户购买商品的入口
  • 失败可以重试, 成功操作不可重试
  • 注意 SQL 只更新了 filecoin 和 bitcoin 币种,其余可参考 filecoin 和 bitcoin, tfilecoin 和 tbitcoin 上报完成才可以执行
条件升级 SQL
mainnetDO NOTHING
testnetupgrade

推荐

bitcoin 钱包节点的配置文件中, rpcclienttimeout=30 需要配置

说明

  • 不支持 Windows
  • 新特性或问题请提到Issue
  • 币种处理流程在本项目newcoin.md

优化

  • 镜像多阶段构建
  • 尝试关闭 CGO_ENABLE

# Packages

No description provided by the author
No description provided by the author