Commit c8ca1c7e authored by QM's avatar QM Committed by vipwzw

完善夸链文档

parent 6edddb25
### 离线部署 xgo 合约及各操作
***
#### 基础步骤
* 离线创建并签名交易 `./evmxgoboss4x chain33 offline create ... -k ...`
* 在线发送签名后文件 `./evmxgoboss4x chain33 offline send -f ...`
拼凑 evmxgoboss4x 命令
./evmxgoboss4x --rpc_laddr http://${docker_chain33_ip}:8901 --paraName user.p.para. --chainID 0
```
--chainID int32 chain id, default to 0
--expire string transaction expire time (optional) (default "120m")
--paraName string 平行链名称
--rpc_laddr string 平行链 url (default "https://localhost:8801")
```
***
#### 离线部署 chain33 跨链合约
* 离线创建并签名交易
```
交易1: 部署合约 Valset
交易2: 部署合约 EthereumBridge
交易3: 部署合约 Oracle
交易4: 部署合约 BridgeBank
交易5: 设置合约 set BridgeBank to EthBridge
交易6: 设置合约 set Oracle to EthBridge
交易7: 部署合约 BridgeRegistry
命令:
./evmxgoboss4x chain33 offline create -f 1 -k "${chain33DeployKey}" -n "deploy crossx to chain33" -r "${chain33DeployAddr}, [${chain33Validatora}, ${chain33Validatorb}, ${chain33Validatorc}, ${chain33Validatord}], [96, 1, 1, 1]"
参数说明:
-f, --fee float 手续费
-k, --key string 部署合约的私钥
-n, --note string 交易备注
-r, --valset string valset 合约参数, 格式: 'addr, [addr, addr, addr, addr], [25, 25, 25, 25]','部署地址,[验证者A地址, ...],[验证者A权重, ...]'
输出:
把交易信息写入 deployBridgevmxgo2Chain33.txt 文件中
```
* 发送签名后文件
```
./evmxgoboss4x chain33 offline send -f deployBridgevmxgo2Chain33.txt
```
***
#### 设置 symbol 允许被 lock
* 在线创建交易
```
命令:
./evmxgoboss4x chain33 offline create_add_lock_list -s ETH -t "${chain33EthBridgeTokenAddr}" -c "${XgoChain33BridgeBank}" -k "${chain33DeployKey}" -f 1
参数说明:
-c, --contract string 创建的 xgo bridgebank 合约地址
-f, --fee float 手续费
-k, --key string 部署合约的私钥
-n, --note string 交易备注
-s, --symbol string token symbol
-t, --token string chain33 evm bridge token 地址
输出
tx is written to file: create_add_lock_list.txt
```
***
#### manage 设置 bridgevmxgo 合约地址
```shell
# 创建交易
# XgoChain33BridgeBank 部署的 xgo BridgeBank 合约地址
curl -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.CreateTransaction","params":[{"execer":"manage","actionName":"Modify","payload":{"key":"bridgevmxgo-contract-addr","value":"{\"address\":\"'"${XgoChain33BridgeBank}"'\"}","op":"add","addr":""}}]}' -H 'content-type:text/plain;' "http://${docker_chain33_ip}:8901"
# 用平行链管理者地址签名
./chain33_cli wallet sign -k "$paraMainAddrKey" -d "${tx}"
```
#### manage add symbol
```shell
# 创建交易
# symbol 需要增加的 symbol
# bridgeTokenAddr chain33 对应的 BridgeToken 地址, 例如:chain33EthBridgeTokenAddr
curl -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.CreateTransaction","params":[{"execer":"manage","actionName":"Modify","payload":{"key":"evmxgo-mint-'"${symbol}"'","value":"{\"address\":\"'"${bridgeTokenAddr}"'\",\"precision\":8,\"introduction\":\"symbol:'"${symbol}"', bridgeTokenAddr:'"${bridgeTokenAddr}"'\"}","op":"add","addr":""}}]}' -H 'content-type:text/plain;' "http://${docker_chain33_ip}:8901"
# 用平行链管理者地址签名
./chain33_cli wallet sign -k "$paraMainAddrKey" -d "${tx}"
```
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
交易5: 在合约chain33Bridge中设置BridgeBank合约地址 交易5: 在合约chain33Bridge中设置BridgeBank合约地址
交易6: 在合约chain33Bridge中设置Oracle合约地址 交易6: 在合约chain33Bridge中设置Oracle合约地址
交易7: 部署合约: BridgeRegistry 交易7: 部署合约: BridgeRegistry
交易7: 部署合约: MulSign 交易8: 部署合约: MulSign
命令: 命令:
./boss4x chain33 offline create -f 1 -k 0x027ca96466c71c7e7c5d73b7e1f43cb889b3bd65ebd2413eefd31c6709c262ae -n 'deploy crossx to chain33' -r '1N6HstkyLFS8QCeVfdvYxx1xoryXoJtvvZ, [1N6HstkyLFS8QCeVfdvYxx1xoryXoJtvvZ, 155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6, 13zBdQwuyDh7cKN79oT2odkxYuDbgQiXFv, 113ZzVamKfAtGt9dq45fX1mNsEoDiN95HG], [25, 25, 25, 25]' --chainID 33 ./boss4x chain33 offline create -f 1 -k 0x027ca96466c71c7e7c5d73b7e1f43cb889b3bd65ebd2413eefd31c6709c262ae -n 'deploy crossx to chain33' -r '1N6HstkyLFS8QCeVfdvYxx1xoryXoJtvvZ, [1N6HstkyLFS8QCeVfdvYxx1xoryXoJtvvZ, 155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6, 13zBdQwuyDh7cKN79oT2odkxYuDbgQiXFv, 113ZzVamKfAtGt9dq45fX1mNsEoDiN95HG], [25, 25, 25, 25]' --chainID 33
......
...@@ -3,11 +3,10 @@ ...@@ -3,11 +3,10 @@
#### 基础步骤 #### 基础步骤
* 在线创建交易 `./boss4x ethereum offline create ...` 需要在线查询 nonce 等信息 * 在线创建交易 `./boss4x ethereum offline create ...` 需要在线查询 nonce 等信息
* 离线签名交易 `./boss4x ethereum offline sign -f xxx.txt -k ... --chainEthId xxx` * 离线签名交易 `./boss4x ethereum offline sign -f xxx.txt -k ...`
* 在线发送签名后文件 `./boss4x ethereum offline send -f deploysigntxs.txt` 默认签名后的文件名称都是 deploysigntxs.txt * 在线发送签名后文件 `./boss4x ethereum offline send -f deploysigntxs.txt` 默认签名后的文件名称都是 deploysigntxs.txt
> 拼凑 boss4x 命令 拼凑 boss4x 命令
./boss4x --rpc_laddr_ethereum http://139.9.219.183:8545 --chainEthId 1 ./boss4x --rpc_laddr_ethereum http://139.9.219.183:8545 --chainEthId 1
``` ```
--chainEthId int chainId, 如果是Bsc, chainId为56, 如果是ethereum, chainId为1, 查询链接:https://chainlist.org/ --chainEthId int chainId, 如果是Bsc, chainId为56, 如果是ethereum, chainId为1, 查询链接:https://chainlist.org/
...@@ -29,11 +28,12 @@ ...@@ -29,11 +28,12 @@
交易9: 部署合约: MulSign 交易9: 部署合约: MulSign
命令: 命令:
./boss4x ethereum offline create -s ETH -p 25,25,25,25 -o 0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a -v 0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a,0x0df9a824699bc5878232c9e612fe1a5346a5a368,0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1,0xd9dab021e74ecf475788ed7b61356056b2095830 --paraName xxx --rpc_laddr xxx --rpc_laddr_ethereum xxx ./boss4x ethereum offline create -s "ETH" -p "25,25,25,25" -o "${ethDeployAddr}" -v "${ethValidatorAddra},${ethValidatorAddrb},${ethValidatorAddrc},${ethValidatorAddrd}"
参数说明: 参数说明:
-p, --initPowers string 验证者权重, as: '25,25,25,25' -p, --initPowers string 验证者权重, as: '25,25,25,25'
-o, --owner string 部署者地址 -o, --owner string 部署者地址
-s, --symbol string symbol
-v, --validatorsAddrs string 验证者地址, as: 'addr,addr,addr,addr' -v, --validatorsAddrs string 验证者地址, as: 'addr,addr,addr,addr'
--rpc_laddr_ethereum string ethereum url 地址 (默认 "http://localhost:7545") --rpc_laddr_ethereum string ethereum url 地址 (默认 "http://localhost:7545")
...@@ -66,40 +66,45 @@ tx is written to file: deploytxs.txt ...@@ -66,40 +66,45 @@ tx is written to file: deploytxs.txt
交易9: 部署合约: MulSign 交易9: 部署合约: MulSign
``` ```
#### 离线部署 ERC20 跨链合约 #### 设置离线多签地址信息
* 在线创建交易 * 在线创建交易
``` ```
命令: 命令:
./boss4x ethereum offline create_erc20 -m 33000000000000000000 -s YCC -o 0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a -d 0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a ./boss4x ethereum offline multisign_setup -m "${multisignEthAddr}" -d "${ethDeployAddr}" -o "${ethMultisignA},${ethMultisignB},${ethMultisignC},${ethMultisignD}"
参数说明: 参数说明:
-m, --amount string 金额
-d, --deployAddr string 部署者地址 -d, --deployAddr string 部署者地址
-o, --owner string 拥有者地址 -m, --multisign string 离线多签合约地址
-s, --symbol string erc20 symbol -o, --owner string 多签的地址, 用','分隔
输出 输出
tx is written to file: deployErc20YCC.txt tx is written to file: multisign_setup.txt
把交易信息写入 deployErc20XXX.txt 文件中, 其中 XXX 为 erc20 symbol
``` ```
* 离线签名交易 ***
```
./boss4x ethereum offline sign -f deployErc20YCC.txt -k 8656d2bc732a8a816a461ba5e2d8aac7c7f85c26a813df30d5327210465eb230
```
* 发送签名后文件 #### 设置 bridgebank 合约地址可以转到多签合约地址
* 在线创建交易
``` ```
./boss4x ethereum offline send -f deploysigntxs.txt 命令:
./boss4x ethereum offline set_offline_addr -a "${multisignEthAddr}" -c "${ethBridgeBank}" -d "${ethDeployAddr}"
参数说明:
-a, --address string 离线多签地址
-c, --contract string bridgebank 合约地址
-d, --deployAddr string 部署合约地址
输出
tx is written to file: set_offline_addr.txt
``` ```
*** ***
#### create_add_lock_list #### 设置 symbol 允许被 lock
* 在线创建交易 * 在线创建交易
``` ```
命令: 命令:
./boss4x ethereum offline create_add_lock_list -s YCC -t ... -c ... -d ... ./boss4x ethereum offline create_add_lock_list -s USDT -t "${ethereumUSDTERC20TokenAddr}" -c "${ethBridgeBank}" -d "${ethDeployAddr}"
参数说明: 参数说明:
-c, --contract string bridgebank 合约地址 -c, --contract string bridgebank 合约地址
...@@ -117,7 +122,7 @@ tx is written to file: create_add_lock_list.txt ...@@ -117,7 +122,7 @@ tx is written to file: create_add_lock_list.txt
* 在线创建交易 * 在线创建交易
``` ```
命令: 命令:
./boss4x ethereum offline create_bridge_token -s BTY -c 0xC65B02a22B714b55D708518E2426a22ffB79113d -d 0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a ./boss4x ethereum offline create_bridge_token -s BTY -c "${ethBridgeBank}" -d "${ethDeployAddr}"
参数说明: 参数说明:
-c, --contract string bridgebank 合约地址 -c, --contract string bridgebank 合约地址
...@@ -127,75 +132,73 @@ tx is written to file: create_add_lock_list.txt ...@@ -127,75 +132,73 @@ tx is written to file: create_add_lock_list.txt
输出 输出
tx is written to file: create_bridge_token.txt tx is written to file: create_bridge_token.txt
``` ```
*** ***
#### 设置离线多签地址信息 #### 设置 bridgebank 金额到多少后自动转入多签合约地址
* 在线创建交易 * 在线创建交易
``` ```
命令: 命令:
./boss4x ethereum offline multisign_setup -m 0xbf271b2B23DA4fA8Dc93Ce86D27dd09796a7Bf54 -d 0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a -o 0x4c85848a7E2985B76f06a7Ed338FCB3aF94a7DCf,0x6F163E6daf0090D897AD7016484f10e0cE844994,0xbc333839E37bc7fAAD0137aBaE2275030555101f,0x495953A743ef169EC5D4aC7b5F786BF2Bd56aFd5 ./boss4x ethereum offline set_offline_token -s ETH -m ${threshold} -p ${percents} -c "${ethBridgeBank}" -d "${ethDeployAddr}"
参数说明: 参数说明:
-d, --deployAddr string 部署者地址 -c, --contract string bridgebank 合约地址
-m, --multisign string 离线多签合约地址 -d, --deployAddr string deploy 部署者地址
-o, --owner string 多签的地址, 用','分隔 -p, --percents uint8 百分比 (默认 50),达到阈值后默认转帐 50% 到离线多签的地址
-s, --symbol string token 标识
-m, --threshold float 阈值
-t, --token string token 地址, 如果是 ETH(主链币), token 地址为空
输出 输出
tx is written to file: multisign_setup.txt tx is written to file: set_offline_token.txt
``` ```
*** ***
#### 设置离线多签地址 #### 测试离线部署 USDT ERC20 合约
* 在线创建交易 * 在线创建交易
``` ```
命令: 命令:
./boss4x ethereum offline set_offline_addr -a 0xbf271b2B23DA4fA8Dc93Ce86D27dd09796a7Bf54 -c 0xC65B02a22B714b55D708518E2426a22ffB79113d -d 0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a ./boss4x ethereum offline create_tether_usdt -m 33000000000000000000 -s USDT -d "${ethTestAddr1}"
参数说明: 参数说明:
-a, --address string 离线多签地址 -m, --amount string 金额
-c, --contract string bridgebank 合约地址 -d, --owner string 拥有者地址
-d, --deployAddr string 部署合约地址 -s, --symbol string erc20 symbol
输出 输出
tx is written to file: set_offline_addr.txt tx is written to file: deployTetherUSDT.txt
``` ```
*** ***
#### 离线多签设置 #### 离线部署 ERC20 跨链合约
* 在线创建交易 * 在线创建交易
``` ```
命令: 命令:
./boss4x ethereum offline set_offline_token -s ETH -m 20 -c 0xC65B02a22B714b55D708518E2426a22ffB79113d -d 0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a ./boss4x ethereum offline create_erc20 -m 33000000000000000000 -s YCC -o "${ethTestAddr1}" -d "${ethDeployAddr}"
参数说明: 参数说明:
-c, --contract string bridgebank 合约地址 -m, --amount string 金额
-d, --deployAddr string deploy 部署者地址 -d, --deployAddr string 部署者地址
-p, --percents uint8 百分比 (默认 50),达到阈值后默认转帐 50% 到离线多签的地址 -o, --owner string 拥有者地址
-s, --symbol string token 标识 -s, --symbol string erc20 symbol
-m, --threshold float 阈值
-t, --token string token 地址
输出 输出
tx is written to file: set_offline_token.txt tx is written to file: deployErc20YCC.txt
把交易信息写入 deployErc20XXX.txt 文件中, 其中 XXX 为 erc20 symbol
``` ```
*** ***
#### 离线多签转帐 #### 离线多签转帐
* 转帐预备交易--在线操作 * 转帐预备交易--在线操作
``` ```
命令: 命令:
./boss4x ethereum offline multisign_transfer_prepare -a 3 -r 0xC65B02a22B714b55D708518E2426a22ffB79113d -c 0xbf271b2B23DA4fA8Dc93Ce86D27dd09796a7Bf54 -d 0x0df9a824699bc5878232c9e612fe1a5346a5a368 ./boss4x ethereum offline multisign_transfer_prepare -a 8 -r "${ethBridgeBank}" -c "${multisignEthAddr}" -d "${ethTestAddr1}" -t "${ethereumUSDTERC20TokenAddr}"
参数说明: 参数说明:
-a, --amount float 转帐金额 -a, --amount float 转帐金额
-c, --contract string 离线多签合约地址 -c, --contract string 离线多签合约地址
-r, --receiver string 接收者地址 -r, --receiver string 接收者地址
-d, --sendAddr string 发送这笔交易的地址, 需要扣除部分手续费 -d, --sendAddr string 发送这笔交易的地址, 需要扣除部分手续费
-t, --token string erc20 地址,空的话,默认转帐 ETH -t, --token string erc20 地址, 空的话,默认转帐 ETH
输出 输出
tx is written to file: multisign_transfer_prepare.txt tx is written to file: multisign_transfer_prepare.txt
...@@ -204,7 +207,7 @@ tx is written to file: multisign_transfer_prepare.txt ...@@ -204,7 +207,7 @@ tx is written to file: multisign_transfer_prepare.txt
* 离线多签地址签名交易--离线操作 * 离线多签地址签名交易--离线操作
``` ```
命令: 命令:
./boss4x ethereum offline sign_multisign_tx -k 0x5e8aadb91eaa0fce4df0bcc8bd1af9e703a1d6db78e7a4ebffd6cf045e053574,0x0504bcb22b21874b85b15f1bfae19ad62fc2ad89caefc5344dc669c57efa60db,0x0c61f5a879d70807686e43eccc1f52987a15230ae0472902834af4d1933674f2,0x2809477ede1261da21270096776ba7dc68b89c9df5f029965eaa5fe7f0b80697 ./boss4x ethereum offline sign_multisign_tx -k "${ethMultisignKeyA},${ethMultisignKeyB},${ethMultisignKeyC},${ethMultisignKeyD}"
参数说明: 参数说明:
-f, --file string tx file, default: multisign_transfer_prepare.txt (default "multisign_transfer_prepare.txt") -f, --file string tx file, default: multisign_transfer_prepare.txt (default "multisign_transfer_prepare.txt")
......
...@@ -740,10 +740,6 @@ function up_relayer_toml() { ...@@ -740,10 +740,6 @@ function up_relayer_toml() {
# 修改 relayer.toml 配置文件 # 修改 relayer.toml 配置文件
updata_relayer_a_toml "${dockerAddr}" "${dockerNamePrefix}_ebrelayera_1" "./relayer.toml" updata_relayer_a_toml "${dockerAddr}" "${dockerNamePrefix}_ebrelayera_1" "./relayer.toml"
# 删除私钥
delete_line "./relayer.toml" "deployerPrivateKey="
delete_line "./relayer.toml" "deployerPrivateKey="
# para # para
# shellcheck disable=SC2155 # shellcheck disable=SC2155
local line=$(delete_line_show "./relayer.toml" "chain33Host") local line=$(delete_line_show "./relayer.toml" "chain33Host")
......
...@@ -324,11 +324,6 @@ function validators_config() { ...@@ -324,11 +324,6 @@ function validators_config() {
sed -i ''"${line}"' a operatorAddr='\""${chain33DeployAddr}"\"'' "./relayer.toml" sed -i ''"${line}"' a operatorAddr='\""${chain33DeployAddr}"\"'' "./relayer.toml"
fi fi
line=$(delete_line_show "./relayer.toml" 'deployerPrivateKey="0xcc38546e9e659d15e6b4893f0ab32a06d103931a8230b0bde71459d2b27d6944"')
if [ "${line}" ]; then
sed -i ''"${line}"' a deployerPrivateKey='\""${chain33DeployKey}"\"'' "./relayer.toml"
fi
line=$(delete_line_show "./relayer.toml" 'validatorsAddr=\["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt') line=$(delete_line_show "./relayer.toml" 'validatorsAddr=\["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt')
if [ "${line}" ]; then if [ "${line}" ]; then
# shellcheck disable=SC2154 # shellcheck disable=SC2154
......
## 启动 relayer
***
### 启动 relayer A
#### 完成 ethererum 和 chain33 相关合约的部署
得到 BridgeRegistryOnChain33, BridgeRegistryOnEth, multisignChain33Addr, multisignEthAddr 4个合约地址。
#### 修改 relayer.toml 配置文件
|字段|说明|
|----|----|
|pushName|4 个 relayer 不同相同, `sed -i 's/^pushName=.*/pushName="XXX"/g' relayer.toml`|
|ChainID4Chain33|chain33 链的 ID, 默认为 0|
|ChainName|链的名称, 用来区分主链和平行链, 如user.p.xxx., 必须包含最后一个点|
|EthProvider|ethereum 的 socket 通信地址, 例如: wss://rinkeby.infura.io/ws/v3/404eb4acc421426ebeb6e92c7ce9a270|
|EthProviderCli|ethereum 的 http url 地址, 例如: https://rinkeby.infura.io/ws/v3/404eb4acc421426ebeb6e92c7ce9a270|
|BridgeRegistryOnChain33|部署在 chain33 的 BridgeRegistry 地址|
|BridgeRegistry|部署在 ethereum 的 BridgeRegistry 地址|
|chain33Host|平行链的 host 地址, 默认: http://localhost:8801|
|pushHost|relayer 的 host 地址, 默认: http://localhost:20000|
|pushBind|relayer 的 bind 端口, 默认: 0.0.0.0:20000|
|operatorAddr|修改部署者地址: [deploy4chain33] operatorAddr 和 [deploy] operatorAddr|
|validatorsAddr|修改 relayer 验证者地址: [deploy4chain33] validatorsAddr 和 [deploy] validatorsAddr|
|initPowers|修改 relayer 验证者权重: [deploy4chain33] initPowers 和 [deploy] initPowers|
#### 首次启动 relayer 进行设置
```shell
# 设置密码
./ebcli_A set_pwd -p 密码
# 解锁
./ebcli_A unlock -p 密码
# 设置 chain33 验证私钥
./ebcli_A chain33 import_privatekey -k "${chain33ValidatorKeya}"
# 设置 ethereum 验证私钥
./ebcli_A ethereum import_privatekey -k "${ethValidatorAddrKeya}"
# 设置 chain33 多签合约地址
./ebcli_A chain33 multisign set_multiSign -a "${multisignChain33Addr}"
# 设置 ethereum 多签合约地址
./ebcli_A ethereum multisign set_multiSign -a "${multisignEthAddr}"
```
#### 运行持续启动 relayer
```shell
#!/usr/bin/env bash
# shellcheck disable=SC2050
# shellcheck source=/dev/null
set -x
set +e
while [ 1 == 1 ]; do
pid=$(ps -ef | grep "./ebrelayer" | grep -v 'grep' | awk '{print $2}' | xargs)
while [ "${pid}" == "" ]; do
time=$(date "+%m-%d-%H:%M:%S")
nohup "./ebrelayer" >"./ebrelayer${time}.log" 2>&1 &
sleep 2
./ebcli_A unlock -p 密码
sleep 2
pid=$(ps -ef | grep "./ebrelayer" | grep -v 'grep' | awk '{print $2}' | xargs)
done
sleep 2
done
```
***
### 启动 relayer B C D
#### 修改 relayer.toml 配置文件
先 cp relayerA 的配置文件, 然后修改以下字段:
|字段|说明|
|----|----|
|pushName|4 个 relayer 不同相同, `sed -i 's/^pushName=.*/pushName="XXX"/g' relayer.toml`|
|chain33Host|平行链的 host 地址, 默认: http://localhost:8801, 4 个 relayer 对应 4 个不同 chain33 平行链地址|
|deploy4chain33|[deploy4chain33] 下字段全部删除, 只需 relayer A 配置一次就可以|
|deploy|[deploy] 下字段全部删除, 只需 relayer A 配置一次就可以|
#### 首次启动 relayer 进行设置
```shell
# 设置密码
./ebcli_A set_pwd -p 密码
# 解锁
./ebcli_A unlock -p 密码
# 设置 chain33 验证私钥
./ebcli_A chain33 import_privatekey -k "${chain33ValidatorKeya}"
# 设置 ethereum 验证私钥
./ebcli_A ethereum import_privatekey -k "${ethValidatorAddrKeya}"
```
#### 运行持续启动 relayer B C D
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment