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

fix x2ethereum test

parent 08c0a974
FROM ubuntu:16.04
WORKDIR /root
COPY relayer.toml relayer.toml
COPY ebrelayer ebrelayer
COPY ebcli_A ebcli_A
COPY sleep.sh sleep.sh
EXPOSE 20000
CMD ["/root/ebrelayer"]
CMD ["/root/sleep.sh"]
......@@ -31,18 +31,23 @@ tokenAddrBty=""
tokenAddr=""
ethUrl=""
Chain33Cli=""
portRelayer=20000
function kill_ebrelayerC() {
#shellcheck disable=SC2154
docker stop "${dockerNamePrefix}_ebrelayerc_1"
kill_docker_ebrelayer "${dockerNamePrefix}_ebrelayerc_1"
}
function kill_ebrelayerD() {
docker stop "${dockerNamePrefix}_ebrelayerd_1"
kill_docker_ebrelayer "${dockerNamePrefix}_ebrelayerd_1"
}
function start_ebrelayerA() {
docker cp "./relayer.toml" "${dockerNamePrefix}_ebrelayera_1":/root/relayer.toml
start_docker_ebrelayer "${dockerNamePrefix}_ebrelayera_1" "/root/ebrelayer" "./ebrelayera.log"
sleep 5
}
function start_ebrelayerC() {
docker start "${dockerNamePrefix}_ebrelayerc_1"
start_docker_ebrelayer "${dockerNamePrefix}_ebrelayerc_1" "/root/ebrelayer" "./ebrelayerc.log"
sleep 5
${CLIC} relayer unlock -p 123456hzj
sleep 5
......@@ -50,7 +55,7 @@ function start_ebrelayerC() {
sleep 10
}
function start_ebrelayerD() {
docker start "${dockerNamePrefix}_ebrelayerd_1"
start_docker_ebrelayer "${dockerNamePrefix}_ebrelayerd_1" "/root/ebrelayer" "./ebrelayerd.log"
sleep 5
${CLID} relayer unlock -p 123456hzj
sleep 5
......@@ -72,42 +77,17 @@ function InitAndDeploy() {
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
}
function port_exist() {
local prot_ori=${portRelayer}
grep_port=$(netstat -tlpn | grep "\b${portRelayer}\b")
while [ -n "$grep_port" ]; do
echo "port $portRelayer is in use"
portRelayer=$((portRelayer + 4))
grep_port=$(netstat -tlpn | grep "\b${portRelayer}\b")
done
if [ "${portRelayer}" != "${prot_ori}" ]; then
sed -i 's/'"${prot_ori}"'/'"${portRelayer}"'/g' "./docker-compose-ebrelayer.yml"
fi
}
function StartRelayerAndDeploy() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
# stop all docker
docker-compose -f docker-compose-ebrelayer.yml down
for name in b c d; do
docker-compose -f "docker-compose-ebrelayer${name}.yml" down
done
# change EthProvider url
dockerAddr=$(get_docker_addr "${dockerNamePrefix}_ganachetest_1")
ethUrl="http://${dockerAddr}:8545"
# shellcheck disable=SC2155
local line=$(delete_line_show "./relayer.toml" 'EthProvider="ws:')
sed -i ''"${line}"' a EthProvider="ws://'"${dockerAddr}"':8545/"' "./relayer.toml"
line=$(delete_line_show "./relayer.toml" 'EthProviderCli="http:')
sed -i ''"${line}"' a EthProviderCli="http://'"${dockerAddr}"':8545"' "./relayer.toml"
port_exist
docker-compose -f docker-compose-ebrelayer.yml up --build -d
sleep 1
# 修改 relayer.toml 配置文件
updata_relayer_a_toml "${dockerAddr}" "${dockerNamePrefix}_ebrelayera_1" "./relayer.toml"
# start ebrelayer A
start_ebrelayerA
# 部署合约
InitAndDeploy
......@@ -115,19 +95,38 @@ function StartRelayerAndDeploy() {
result=$(${CLIA} relayer ethereum bridgeRegistry)
BridgeRegistry=$(cli_ret "${result}" "bridgeRegistry" ".addr")
# kill_ebrelayer "./A/ebrelayer"
docker-compose -f docker-compose-ebrelayer.yml down
# kill ebrelayer A
kill_docker_ebrelayer "${dockerNamePrefix}_ebrelayera_1"
sleep 1
# 修改 relayer.toml 配置文件
port_exist
updata_relayer_toml "${BridgeRegistry}" ${maturityDegree} "./relayer.toml"
updata_docker_relayer_toml "${portRelayer}"
# 重启
start_ebrelayerA
docker-compose -f docker-compose-ebrelayer.yml up --build -d
# start ebrelayer B C D
for name in b c d; do
docker-compose -f "docker-compose-ebrelayer$name.yml" up --build -d
local file="./relayer$name.toml"
cp './relayer.toml' "${file}"
# 删除配置文件中不需要的字段
for deleteName in "deployerPrivateKey" "operatorAddr" "validatorsAddr" "initPowers" "deployerPrivateKey" "deploy"; do
delete_line "${file}" "${deleteName}"
done
sed -i 's/x2ethereum/x2ethereum'${name}'/g' "${file}"
pushHost=$(get_docker_addr "${dockerNamePrefix}_ebrelayer${name}_1")
line=$(delete_line_show "${file}" "pushHost")
sed -i ''"${line}"' a pushHost="http://'"${pushHost}"':20000"' "${file}"
line=$(delete_line_show "${file}" "pushBind")
sed -i ''"${line}"' a pushBind="'"${pushHost}"':20000"' "${file}"
docker cp "${file}" "${dockerNamePrefix}_ebrelayer${name}_1":/root/relayer.toml
start_docker_ebrelayer "${dockerNamePrefix}_ebrelayer${name}_1" "/root/ebrelayer" "./ebrelayer${name}.log"
done
sleep 1
sleep 5
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
}
......@@ -589,3 +588,5 @@ function AllRelayerMainTest() {
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
}
}
\ No newline at end of file
version: '3'
services:
ebrelayera:
build:
context: .
dockerfile: Dockerfile-x2ethrelay
ports:
- "20000:20000"
#!/usr/bin/env bash
# shellcheck disable=SC2128
# shellcheck source=/dev/null
set -x
set +e
while [ 1 == 1 ]; do
sleep 100
done
\ No newline at end of file
......@@ -28,13 +28,13 @@ ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b
ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
#ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
maturityDegree=5
portRelayer=19999
#portRelayer=19999
ethUrl=""
CLIA_HTTP="http://127.0.0.1:9901"
CLIB_HTTP="http://127.0.0.1:9902"
CLIC_HTTP="http://127.0.0.1:9903"
CLID_HTTP="http://127.0.0.1:9904"
CLIA_HTTP=""
CLIB_HTTP=""
CLIC_HTTP=""
CLID_HTTP=""
# $1 sendAddress, $2 balance
function queryExecBalance() {
......@@ -77,6 +77,12 @@ function queryChain33X2ethBalance() {
fi
}
function start_ebrelayerA() {
docker cp "./x2ethereum/relayer.toml" "${dockerNamePrefix}_ebrelayera_rpc_1":/root/relayer.toml
start_docker_ebrelayer "${dockerNamePrefix}_ebrelayera_rpc_1" "/root/ebrelayer" "./x2ethereum/ebrelayera.log"
sleep 5
}
function StartRelayerAndDeploy() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
......@@ -93,31 +99,13 @@ function StartRelayerAndDeploy() {
dockerAddr=$(get_docker_addr "${dockerNamePrefix}_ganachetest_rpc_1")
ethUrl="http://${dockerAddr}:8545"
# shellcheck disable=SC2155
local line=$(delete_line_show "./x2ethereum/relayer.toml" 'EthProvider="ws:')
sed -i ''"${line}"' a EthProvider="ws://'"${dockerAddr}"':8545/"' "./x2ethereum/relayer.toml"
line=$(delete_line_show "./x2ethereum/relayer.toml" 'EthProviderCli="http:')
sed -i ''"${line}"' a EthProviderCli="http://'"${dockerAddr}"':8545"' "./x2ethereum/relayer.toml"
grep_port=$(netstat -tlpn | grep "\b${portRelayer}\b")
while [ -n "$grep_port" ]; do
echo "port $portRelayer is in use"
portRelayer=$((portRelayer - 4))
grep_port=$(netstat -tlpn | grep "\b${portRelayer}\b")
done
line=$(delete_line_show "./x2ethereum/docker-compose-ebrelayer.yml" "20000:20000")
sed -i ''"${line}"' a \ \ \ \ \ \ -\ "'${portRelayer}':'${portRelayer}'"' "./x2ethereum/docker-compose-ebrelayer.yml"
line=$(delete_line_show "./x2ethereum/docker-compose-ebrelayer.yml" "ebrelayera:")
sed -i ''"${line}"' a \ \ ebrelayera_rpc:' "./x2ethereum/docker-compose-ebrelayer.yml"
# 修改 relayer.toml 配置文件
updata_relayer_a_toml "${dockerAddr}" "${dockerNamePrefix}_ebrelayera_rpc_1" "./x2ethereum/relayer.toml"
line=$(delete_line_show "./x2ethereum/relayer.toml" "localhost:9901")
sed -i ''"${line}"' a JrpcBindAddr=":9901"' "./x2ethereum/relayer.toml"
docker-compose -f ./x2ethereum/docker-compose-ebrelayer.yml up --build -d
sleep 1
# start ebrelayer A
start_ebrelayerA
ebrelayeraRpcHost=$(get_docker_addr "${dockerNamePrefix}_ebrelayera_rpc_1")
if [[ ${ebrelayeraRpcHost} == "" ]]; then
......@@ -133,17 +121,38 @@ function StartRelayerAndDeploy() {
chain33_Http "$req" "${CLIA_HTTP}" '(.error|not) and (.result != null)' "$FUNCNAME" ".result.addr"
local BridgeRegistry="$RETURN_RESP"
docker-compose -f ./x2ethereum/docker-compose-ebrelayer.yml down
# kill ebrelayer A
kill_docker_ebrelayer "${dockerNamePrefix}_ebrelayera_rpc_1"
sleep 1
# 修改 relayer.toml 配置文件
updata_relayer_toml_rpc "${BridgeRegistry}" "${maturityDegree}" "${MAIN_HTTP}" "./x2ethereum/relayer.toml"
updata_docker_relayer_toml_rpc ${portRelayer}
updata_relayer_toml "${BridgeRegistry}" ${maturityDegree} "./x2ethereum/relayer.toml"
# 重启
start_ebrelayerA
docker-compose -f "./x2ethereum/docker-compose-ebrelayer.yml" up --build -d
# start ebrelayer B C D
for name in b c d; do
docker-compose -f "./x2ethereum/docker-compose-ebrelayer$name.yml" down
docker-compose -f "./x2ethereum/docker-compose-ebrelayer$name.yml" up --build -d
local file="./x2ethereum/relayer$name.toml"
cp './x2ethereum/relayer.toml' "${file}"
# 删除配置文件中不需要的字段
for deleteName in "deployerPrivateKey" "operatorAddr" "validatorsAddr" "initPowers" "deployerPrivateKey" "deploy"; do
delete_line "${file}" "${deleteName}"
done
sed -i 's/x2ethereum/x2ethereum'${name}'/g' "${file}"
pushHost=$(get_docker_addr "${dockerNamePrefix}_ebrelayer${name}_rpc_1")
line=$(delete_line_show "${file}" "pushHost")
sed -i ''"${line}"' a pushHost="http://'"${pushHost}"':20000"' "${file}"
line=$(delete_line_show "${file}" "pushBind")
sed -i ''"${line}"' a pushBind="'"${pushHost}"':20000"' "${file}"
docker cp "${file}" "${dockerNamePrefix}_ebrelayer${name}_rpc_1":/root/relayer.toml
start_docker_ebrelayer "${dockerNamePrefix}_ebrelayer${name}_rpc_1" "/root/ebrelayer" "./x2ethereum/ebrelayer${name}.log"
done
sleep 1
sleep 5
ebrelayeraRpcHost=$(get_docker_addr "${dockerNamePrefix}_ebrelayera_rpc_1")
CLIA_HTTP="http://${ebrelayeraRpcHost}:9901"
......@@ -223,7 +232,6 @@ function EthImportKey() {
# 解锁
local req='{"method":"Manager.SetPassphase","params":[{"Passphase":"123456hzj"}]}'
chain33_Http "$req" "${CLIA_HTTP}" '(.error|not) and (.result != null)' "SetPassphase" ".result"
chain33_Http "$req" "${CLIB_HTTP}" '(.error|not) and (.result != null)' "SetPassphase" ".result"
chain33_Http "$req" "${CLIC_HTTP}" '(.error|not) and (.result != null)' "SetPassphase" ".result"
chain33_Http "$req" "${CLID_HTTP}" '(.error|not) and (.result != null)' "SetPassphase" ".result"
......
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