Skip to content

NpoolPlatform/sphinx-plugin

Repository files navigation

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 sphinx-plugin 单独编译服务
  • make sphinx-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_POSITION plugin 的位置信息(如 NewYork_NO2)
ENV_SYNC_INTERVAL optional,交易状态同步间隔周期(s)
ENV_WAN_IP plugin 的 wan-ip
Comm ENV_COIN_NET main or test
Ethereum ENV_BUILD_CHAIN_SERVER host:grpc_port 用于 eth 的 plugin 在 test 环境下获取测试合约地址
SmartContractCoin ENV_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
    
格式 说明
格式 1 sol bsc eth tron smh chia
格式 2 btc
格式 3 fil ironfish

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

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

币种 默认值 出块时间
tron 2s 3s
solana 1s 0.4s
bitcoin 7min 10min
filecoin 20s 30s
ironfish 1min 1~2min
spacemesh 0.5min 2min
binanceusd 4s 5s
usdtbep20 4s 5s
usdcerc20 12s 10~20s
usdttrc20 2s 3s
binancecoin 4s 5s
ethereum(eth、23 种 erc20 tokens) 12s 10~20s
chia 30s 30s

wallet-status-check

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

account-check

账户验证

升级说明

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

推荐

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

说明

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

优化

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages