跳到主要内容
Version: 1.3.0

Signer

安全签名机用以对多笔提现交易进行离线签名,加速交易发布到区块链的流程。

安装安全签名机

1. 获取安全签名机源文件

通过 Github 拉取安全签名机文件。

Github 仓库地址:https://github.com/PayProtocol-Network/SignTool.git

2. 构建 Docker 镜像

进入拉取的项目目录,运行以下命令,这将构建一个名为 signer:1.0 的 docker 镜像:

docker build -t signer:1.0 .

3. 下载 ENV 配置文件

登录后台下载对应的 .env 文件,以沙盒为例,访问 https://adm-sandbox.payprotocol.network,定位到图中所示页面,点击下载ENV文件,得到一个 test.env 文件。

(注:如果是正式环境,请访问 https://adm.payprotocol.network 下载 prod.env 文件)

下载ENV文件

4. 配置环境变量

打开步骤 3 下载的 test.env 文件,将合约中 owner 钱包地址的私钥以及商户参数写入安全签名机环境文件(以沙盒环境 test.env 为例)。

私钥只会在安全签名机内部使用并用来签署交易,并且永远不会暴露在安全签名机外部。

使用文本编辑器打开环境文件。正确填写所有参数:

SPRING_PROFILES_ACTIVE=test

MER_API_KEY=商户 API Key
MER_API_SECRET=商户 Secret Key

EVM_PRIVATE_KEY={"139":"EVM(以太坊)owner 钱包地址私钥"}
TVM_PRIVATE_KEY={"136":"TVM(波场)owner 钱包地址私钥"}

# 以下配置均无需修改
EVM_BATCH_TRANSFER={}
EVM_MULTI_SIG_COLD={}
EVM_COLD_POOL_ADDR={}
EVM_TOOL_HELPER_ADDR={}
EVM_MER_ACCOUNT_ADDR={}
EVM_FACTORY_ADDR={}

TVM_BATCH_TRANSFER={}
TVM_MULTI_SIG_COLD={}
TVM_COLD_POOL_ADDR={}
TVM_TOOL_HELPER_ADDR={}
TVM_MER_ACCOUNT_ADDR={}
TVM_FACTORY_ADDR={}

TEST_TX_PARAM_URL=https://api-sandbox.payprotocol.network/api/mer/withdraw/transactionDetail
TEST_CURRENCY_URL=https://api-sandbox.payprotocol.network/api/mer/conf/list/currency
TEST_ESTIMATION_URL=https://api-sandbox.payprotocol.network/api/mer/transaction/estimate
TEST_WITHDRAWAL_URL=https://api-sandbox.payprotocol.network/api/mer/withdraw/submit
TEST_REBALANCE_URL=https://api-sandbox.payprotocol.network/api/mer/balance/submit
TEST_SUBMIT_AGGREGATEURL=https://api-sandbox.payprotocol.network/api/mer/summary/submit
TEST_AGGREGATE_URL=https://api-sandbox.payprotocol.network/api/mer/summary/list
TEST_BALANCES_URL=https://api-sandbox.payprotocol.network/api/mer/transaction/balances

TX_PARAM_URL=https://api.payprotocol.network/api/mer/withdraw/transactionDetail
CURRENCY_URL=https://api.payprotocol.network/api/mer/conf/list/currency
ESTIMATION_URL=https://api.payprotocol.network/api/mer/transaction/estimate
WITHDRAWAL_URL=https://api.payprotocol.network/api/mer/withdraw/submit
REBALANCE_URL=https://api.payprotocol.network/api/mer/balance/submit
SUBMIT_AGGREGATEURL=https://api.payprotocol.network/api/mer/summary/submit
AGGREGATE_URL=https://api.payprotocol.network/api/mer/summary/list
BALANCES_URL=https://api.payprotocol.network/api/mer/transaction/balances

请确保 owner 钱包地址在 “TRON 链” / “ETH 链”上拥有 TRX / ETH,因为在交易发布后,它需签名交易并支付一定的网络费用。

5. 运行 Docker 容器

保存以上文件于 git 下载的项目目录中。运行以下命令来启动安全签名机:(外部端口 8080 可自行调整)

$ docker run --env-file ./signer.env -p 8080:9980 -d --name signer signer:1.0

验证器现在正在运行并侦听。我们可以使用以下命令验证它是否正在运行:

$ docker ps

输出应包含一个带有我们刚刚运行的映像名称的条目,如下所示:

CONTAINER ID  IMAGE       COMMAND                 CREATED       STATUS       PORTS                                       NAMES
dcd43bbe138a signer:1.0 "java -jar /home/jav…" 4 seconds ago Up 3 seconds 0.0.0.0:8080->9980/tcp, :::8080->9980/tcp signer

通过安全签名机签名提现交易

  1. 获取待提现订单列表,请参考商户 API 接口查询提现订单列表
  2. 将待提现订单列表提交给安全签名机相关的接口(安全签名机接口说明),安全签名机将返回签名结果。

通过安全签名机签名平衡交易

  1. 获取当前地址币种余额,请参考商户 API 接口查询币种余额
  2. 通过币种余额判断是否需要平衡,如需平衡,请调用安全签名机相关接口(安全签名机接口说明),安全签名机将返回签名结果。

通过安全签名机签名汇总交易