Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
72187761
Commit
72187761
authored
Sep 03, 2020
by
QM
Committed by
vipwzw
Sep 08, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix x2ethereum test
parent
08c0a974
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
192 additions
and
322 deletions
+192
-322
Dockerfile-x2ethrelay
plugin/dapp/x2ethereum/cmd/build/Dockerfile-x2ethrelay
+2
-4
allRelayerTest.sh
plugin/dapp/x2ethereum/cmd/build/allRelayerTest.sh
+43
-41
docker-compose-ebrelayer.yml
...in/dapp/x2ethereum/cmd/build/docker-compose-ebrelayer.yml
+0
-11
publicTest.sh
plugin/dapp/x2ethereum/cmd/build/publicTest.sh
+94
-231
sleep.sh
plugin/dapp/x2ethereum/cmd/build/sleep.sh
+10
-0
test-rpc.sh
plugin/dapp/x2ethereum/cmd/test/test-rpc.sh
+43
-35
No files found.
plugin/dapp/x2ethereum/cmd/build/Dockerfile-x2ethrelay
View file @
72187761
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"]
plugin/dapp/x2ethereum/cmd/build/allRelayerTest.sh
View file @
72187761
...
...
@@ -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
sleep
1
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
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
plugin/dapp/x2ethereum/cmd/build/docker-compose-ebrelayer.yml
deleted
100644 → 0
View file @
08c0a974
version
:
'
3'
services
:
ebrelayera
:
build
:
context
:
.
dockerfile
:
Dockerfile-x2ethrelay
ports
:
-
"
20000:20000"
plugin/dapp/x2ethereum/cmd/build/publicTest.sh
View file @
72187761
...
...
@@ -12,13 +12,11 @@ RED='\033[1;31m'
GRE
=
'\033[1;32m'
NOC
=
'\033[0m'
inetAddr
=
""
# 出错退出前拷贝日志文件
function
exit_cp_file
()
{
# shellcheck disable=SC2116
dirNameFa
=
$(
echo
~
)
dirName
=
"
$dirNameFa
/x2ethereumlogs"
#
dirNameFa=$(echo ~)
dirName
=
"/x2ethereumlogs"
if
[
!
-d
"
${
dirName
}
"
]
;
then
# shellcheck disable=SC2086
...
...
@@ -38,8 +36,8 @@ function copyErrLogs() {
if
[
-n
"
$CASE_ERR
"
]
;
then
# /var/lib/jenkins
# shellcheck disable=SC2116
dirNameFa
=
$(
echo
~
)
dirName
=
"
$dirNameFa
/x2ethereumlogs"
#
dirNameFa=$(echo ~)
dirName
=
"/x2ethereumlogs"
if
[
!
-d
"
${
dirName
}
"
]
;
then
# shellcheck disable=SC2086
...
...
@@ -54,13 +52,6 @@ function copyErrLogs() {
fi
}
function
kill_all_ebrelayer
()
{
for
name
in
A B C D
;
do
local
ebrelayer
=
"./../build/
$name
/ebrelayer"
kill_ebrelayer
"
${
ebrelayer
}
"
done
}
# 判断结果是否正确
function
cli_ret
()
{
set
+x
...
...
@@ -110,18 +101,6 @@ function balance_ret() {
echo
"
${
balance
}
"
}
# 判断结果是否错误
function
cli_ret_err
()
{
#set +x
ok
=
$(
echo
"
${
1
}
"
| jq
-r
.isOK
)
echo
"
${
ok
}
"
if
[[
${
ok
}
==
"true"
]]
;
then
echo
-e
"
${
RED
}
isOK is true
${
NOC
}
"
exit_cp_file
fi
#set -x
}
# 查询关键字所在行然后删除 ${1}文件名称 ${2}关键字
function
delete_line
()
{
line
=
$(
cat
-n
"
${
1
}
"
|
grep
"
${
2
}
"
|
awk
'{print $1}'
)
...
...
@@ -140,6 +119,36 @@ function delete_line_show() {
echo
"
${
line
}
"
}
# 后台启动 ebrelayer 进程 $1 docker 名称 $2进程名称 $3进程信息输出重定向文件
function
start_docker_ebrelayer
()
{
# 参数如果小于 3 直接报错
if
[[
$#
-lt
3
]]
;
then
echo
-e
"
${
RED
}
wrong parameter
${
NOC
}
"
exit_cp_file
fi
# 后台启动程序
docker
exec
"
$1
"
nohup
"
${
2
}
"
>
"
${
3
}
"
2>&1 &
sleep
2
# shellcheck disable=SC2009
pid
=
$(
docker
exec
"
$1
"
ps
-ef
|
grep
"
$2
"
|
grep
-v
'grep'
|
awk
'{print $2}'
)
local
count
=
0
while
[
"
${
pid
}
"
==
""
]
;
do
docker
exec
"
$1
"
nohup
"
${
2
}
"
>
"
${
3
}
"
2>&1 &
sleep
2
count
=
$((
count
+
1
))
if
[[
${
count
}
-ge
20
]]
;
then
echo
-e
"
${
RED
}
start
${
1
}
${
2
}
failed
${
NOC
}
"
exit_cp_file
fi
# shellcheck disable=SC2009
pid
=
$(
docker
exec
"
$1
"
ps
-ef
|
grep
"
$2
"
|
grep
-v
'grep'
|
awk
'{print $2}'
)
done
}
# 后台启动 ebrelayer 进程 $1进程名称 $2进程信息输出重定向文件
function
start_ebrelayer
()
{
# 参数如果小于 2 直接报错
...
...
@@ -238,6 +247,25 @@ function start_ebrelayer_and_setpwd_unlock() {
done
}
# 杀死进程 ebrelayer 进程 docker ebrelayer 名称
function
kill_docker_ebrelayer
()
{
# shellcheck disable=SC2009
pid
=
$(
docker
exec
"
$1
"
ps
-ef
|
grep
"ebrelayer"
|
grep
-v
'grep'
|
awk
'{print $2}'
)
if
[
"
${
pid
}
"
==
""
]
;
then
echo
"not find
${
1
}
pid"
return
fi
docker
exec
"
$1
"
kill
"
${
pid
}
"
# shellcheck disable=SC2009
pid
=
$(
docker
exec
"
$1
"
ps
-ef
|
grep
"ebrelayer"
|
grep
-v
'grep'
|
awk
'{print $2}'
)
if
[
"
${
pid
}
"
!=
""
]
;
then
echo
"kill
${
1
}
failed"
docker
exec
"
$1
"
kill
-9
"
${
pid
}
"
fi
sleep
1
}
# 杀死进程ebrelayer 进程 $1进程名称
function
kill_ebrelayer
()
{
# shellcheck disable=SC2009
...
...
@@ -351,68 +379,57 @@ function check_addr() {
fi
}
function
get_inet_addr
()
{
inetAddr
=
$(
ifconfig wlp2s0 |
grep
"inet "
|
awk
'{ print $2}'
|
awk
-F
:
'{print $2}'
)
if
[[
${
inetAddr
}
==
""
]]
;
then
inetAddr
=
$(
ifconfig wlp2s0 |
grep
"inet "
|
awk
'{ print $2}'
)
if
[[
${
inetAddr
}
==
""
]]
;
then
inetAddr
=
$(
ifconfig eth0 |
grep
"inet "
|
awk
'{ print $2}'
|
awk
-F
:
'{print $2}'
)
if
[[
${
inetAddr
}
==
""
]]
;
then
inetAddr
=
$(
ifconfig eth0 |
grep
"inet "
|
awk
'{ print $2}'
)
if
[[
${
inetAddr
}
==
""
]]
;
then
ip addr show eth0
inetAddr
=
$(
ip addr show eth0 |
grep
"inet "
|
awk
'{ print $2}'
|
head
-c-4
)
fi
fi
fi
fi
echo
"
${
inetAddr
}
"
}
# $1 dockerName
function
get_docker_addr
()
{
local
dockerAddr
=
$(
docker inspect
"
${
1
}
"
| jq
".[].NetworkSettings.Networks"
|
grep
"IPAddress"
|
awk
'{ print $2}'
|
sed
's/\"//g'
|
sed
's/,//g'
)
echo
"
${
dockerAddr
}
"
}
#
更新配置文件 $1 为 BridgeRegistry 合约地址; $2 等待区块 默认10; $3
relayer.toml 地址
function
updata_relayer_toml
()
{
local
BridgeRegistry
=
${
1
}
local
maturityDegree
=
${
2
}
#
$1 dockerAddr; $2 docker ebrelayer name; $2
relayer.toml 地址
function
updata_relayer_
a_
toml
()
{
local
dockerAddr
=
${
1
}
local
ebrelayer
=
${
2
}
local
file
=
${
3
}
# shellcheck disable=SC2155
local
line
=
$(
delete_line_show
"
${
file
}
"
'EthProvider="ws:'
)
sed
-i
''
"
${
line
}
"
' a EthProvider="ws://'
"
${
dockerAddr
}
"
':8545/"'
"
${
file
}
"
line
=
$(
delete_line_show
"
${
file
}
"
'EthProviderCli="http:'
)
sed
-i
''
"
${
line
}
"
' a EthProviderCli="http://'
"
${
dockerAddr
}
"
':8545"'
"
${
file
}
"
pushHost
=
$(
get_docker_addr
"
${
ebrelayer
}
"
)
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
}
"
local
chain33Host
=
$(
get_docker_addr
"
${
dockerNamePrefix
}
_chain33_1"
)
if
[[
${
chain33Host
}
==
""
]]
;
then
echo
-e
"
${
RED
}
chain33Host is empty
${
NOC
}
"
exit_cp_file
fi
get_inet_addr
local
pushHost
=
"
${
inetAddr
}
"
if
[[
${
pushHost
}
==
""
]]
;
then
echo
-e
"
${
RED
}
pushHost is empty
${
NOC
}
"
exit_cp_file
fi
local
line
=
$(
delete_line_show
"
${
file
}
"
"chain33Host"
)
# 在第 line 行后面 新增合约地址
sed
-i
''
"
${
line
}
"
' a chain33Host="http://'
"
${
chain33Host
}
"
':8801"'
"
${
file
}
"
line
=
$(
delete_line_show
"
${
file
}
"
"pushHost"
)
sed
-i
''
"
${
line
}
"
' a pushHost="http://'
"
${
pushHost
}
"
':20000"'
"
${
file
}
"
sed
-i
's/^EthBlockFetchPeriod=.*/EthBlockFetchPeriod=500/g'
"
${
file
}
"
sed
-i
's/^fetchHeightPeriodMs=.*/fetchHeightPeriodMs=500/g'
"
${
file
}
"
}
# line=$(delete_line_show "${file}" "pushBind")
# sed -i ''"${line}"' a pushBind="'"${pushHost}"':20000"' "${file}"
# 更新配置文件 $1 为 BridgeRegistry 合约地址; $2 等待区块 默认10; $3 relayer.toml 地址
function
updata_relayer_toml
()
{
local
BridgeRegistry
=
${
1
}
local
maturityDegree
=
${
2
}
local
file
=
${
3
}
line
=
$(
delete_line_show
"
${
file
}
"
"BridgeRegistry"
)
sed
-i
''
"
${
line
}
"
' a BridgeRegistry="'
"
${
BridgeRegistry
}
"
'"'
"
${
file
}
"
sed
-i
's/EthMaturityDegree=10/'
EthMaturityDegree
=
"
${
maturityDegree
}
"
'/g'
"
${
file
}
"
sed
-i
's/maturityDegree=10/'
maturityDegree
=
"
${
maturityDegree
}
"
'/g'
"
${
file
}
"
sed
-i
's/^EthBlockFetchPeriod=.*/EthBlockFetchPeriod=500/g'
"
${
file
}
"
sed
-i
's/^fetchHeightPeriodMs=.*/fetchHeightPeriodMs=500/g'
"
${
file
}
"
}
# 更新配置文件 $1 为 BridgeRegistry 合约地址; $2 等待区块 默认10; $3 relayer.toml 地址
...
...
@@ -438,146 +455,24 @@ function updata_relayer_toml_ropston() {
sed
-i
's/maturityDegree=10/'
maturityDegree
=
"
${
maturityDegree
}
"
'/g'
"
${
file
}
"
}
# $1 portRelayer
function
updata_docker_relayer_toml
()
{
local
port
=
$1
local
portRelayer
=
$1
if
[
"
${
portRelayer
}
"
!=
"20000"
]
;
then
sed
-i
's/20000/'
"
${
portRelayer
}
"
'/g'
"./relayer.toml"
sed
-i
's/20000/'
"
${
portRelayer
}
"
'/g'
"./Dockerfile-x2ethrelay"
# 获取本机 IP
function
get_inet_addr
()
{
inetAddr
=
$(
ifconfig wlp2s0 |
grep
"inet "
|
awk
'{ print $2}'
|
awk
-F
:
'{print $2}'
)
if
[[
${
inetAddr
}
==
""
]]
;
then
inetAddr
=
$(
ifconfig wlp2s0 |
grep
"inet "
|
awk
'{ print $2}'
)
if
[[
${
inetAddr
}
==
""
]]
;
then
inetAddr
=
$(
ifconfig eth0 |
grep
"inet "
|
awk
'{ print $2}'
|
awk
-F
:
'{print $2}'
)
if
[[
${
inetAddr
}
==
""
]]
;
then
inetAddr
=
$(
ifconfig eth0 |
grep
"inet "
|
awk
'{ print $2}'
)
if
[[
${
inetAddr
}
==
""
]]
;
then
ip addr show eth0
inetAddr
=
$(
ip addr show eth0 |
grep
"inet "
|
awk
'{ print $2}'
|
head
-c-4
)
fi
fi
fi
for
name
in
b c d
;
do
local
file
=
"./relayer
$name
.toml"
cp
'./relayer.toml'
"
${
file
}
"
# 删除配置文件中不需要的字段
for
deleteName
in
"deployerPrivateKey"
"operatorAddr"
"validatorsAddr"
"initPowers"
"deployerPrivateKey"
"deploy"
;
do
delete_line
"
${
file
}
"
"
${
deleteName
}
"
done
port
=
$((
port
+
1
))
sed
-i
's/'
"
${
portRelayer
}
"
'/'
${
port
}
'/g'
"
${
file
}
"
sed
-i
's/x2ethereum/x2ethereum'
${
name
}
'/g'
"
${
file
}
"
local
dockerfile
=
"./Dockerfile-x2ethrelay
$name
"
cp
"./Dockerfile-x2ethrelay"
"
${
dockerfile
}
"
# shellcheck disable=SC2155
local
line
=
$(
delete_line_show
"
${
dockerfile
}
"
"COPY relayer.toml relayer.toml"
)
sed
-i
''
"
${
line
}
"
' a COPY relayer'
$name
'.toml relayer.toml'
"
${
dockerfile
}
"
sed
-i
's/'
"
${
portRelayer
}
"
'/'
"
${
port
}
"
'/g'
"
${
dockerfile
}
"
local
dockeryml
=
"./docker-compose-ebrelayer
$name
.yml"
cp
"./docker-compose-ebrelayer.yml"
"
${
dockeryml
}
"
line
=
$(
delete_line_show
"
${
dockeryml
}
"
"ebrelayera"
)
sed
-i
''
"
${
line
}
"
' a \ \ ebrelayer'
$name
':'
"
${
dockeryml
}
"
line
=
$(
delete_line_show
"
${
dockeryml
}
"
"dockerfile: Dockerfile-x2ethrelay"
)
sed
-i
''
"
${
line
}
"
' a \ \ \ \ \ \ dockerfile: Dockerfile-x2ethrelay'
$name
''
"
${
dockeryml
}
"
sed
-i
's/'
"
${
portRelayer
}
"
'/'
${
port
}
'/g'
"
${
dockeryml
}
"
done
}
# 更新配置文件 $1 为 BridgeRegistry 合约地址; $2 等待区块 默认10; $3 MAIN_HTTP; $4 relayer.toml 地址
function
updata_relayer_toml_rpc
()
{
local
BridgeRegistry
=
${
1
}
local
maturityDegree
=
${
2
}
local
MAIN_HTTP
=
${
3
}
local
file
=
${
4
}
get_inet_addr
local
pushHost
=
"
${
inetAddr
}
"
if
[[
${
pushHost
}
==
""
]]
;
then
echo
-e
"
${
RED
}
pushHost is empty
${
NOC
}
"
fi
# shellcheck disable=SC2155
local
line
=
$(
delete_line_show
"
${
file
}
"
"chain33Host"
)
# 在第 line 行后面 新增合约地址
sed
-i
''
"
${
line
}
"
' a chain33Host="'
"
${
MAIN_HTTP
}
"
'"'
"
${
file
}
"
line
=
$(
delete_line_show
"
${
file
}
"
"pushHost"
)
sed
-i
''
"
${
line
}
"
' a pushHost="http://'
"
${
pushHost
}
"
':20000"'
"
${
file
}
"
line
=
$(
delete_line_show
"
${
file
}
"
"BridgeRegistry"
)
sed
-i
''
"
${
line
}
"
' a BridgeRegistry="'
"
${
BridgeRegistry
}
"
'"'
"
${
file
}
"
sed
-i
's/EthMaturityDegree=10/'
EthMaturityDegree
=
"
${
maturityDegree
}
"
'/g'
"
${
file
}
"
sed
-i
's/maturityDegree=10/'
maturityDegree
=
"
${
maturityDegree
}
"
'/g'
"
${
file
}
"
sed
-i
's/^EthBlockFetchPeriod=.*/EthBlockFetchPeriod=500/g'
"
${
file
}
"
sed
-i
's/^fetchHeightPeriodMs=.*/fetchHeightPeriodMs=500/g'
"
${
file
}
"
}
# $1 portRelayer
function
updata_docker_relayer_toml_rpc
()
{
local
portRelayer
=
$1
local
port
=
$1
sed
-i
's/20000/'
"
${
portRelayer
}
"
'/g'
"./x2ethereum/relayer.toml"
sed
-i
's/20000/'
"
${
portRelayer
}
"
'/g'
"./x2ethereum/Dockerfile-x2ethrelay"
for
name
in
b c d
;
do
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
port
=
$((
port
-
1
))
sed
-i
's/'
"
${
portRelayer
}
"
'/'
${
port
}
'/g'
"
${
file
}
"
sed
-i
's/x2ethereum/x2ethereum'
${
name
}
'/g'
"
${
file
}
"
local
dockerfile
=
"./x2ethereum/Dockerfile-x2ethrelay
$name
"
cp
"./x2ethereum/Dockerfile-x2ethrelay"
"
${
dockerfile
}
"
# shellcheck disable=SC2155
local
line
=
$(
delete_line_show
"
${
dockerfile
}
"
"COPY relayer.toml relayer.toml"
)
sed
-i
''
"
${
line
}
"
' a COPY relayer'
$name
'.toml relayer.toml'
"
${
dockerfile
}
"
sed
-i
's/'
"
${
portRelayer
}
"
'/'
"
${
port
}
"
'/g'
"
${
dockerfile
}
"
local
dockeryml
=
"./x2ethereum/docker-compose-ebrelayer
$name
.yml"
cp
"./x2ethereum/docker-compose-ebrelayer.yml"
"
${
dockeryml
}
"
sed
-i
's/ebrelayera/ebrelayer'
${
name
}
'/g'
"
${
dockeryml
}
"
sed
-i
's/Dockerfile-x2ethrelay/Dockerfile-x2ethrelay'
${
name
}
'/g'
"
${
dockeryml
}
"
sed
-i
's/'
"
${
portRelayer
}
"
'/'
${
port
}
'/g'
"
${
dockeryml
}
"
done
}
# 更新 B C D 的配置文件
function
updata_all_relayer_toml
()
{
local
port
=
9901
local
port2
=
20000
# local dockername=30
for
name
in
B C D
;
do
local
file
=
"./
$name
/relayer.toml"
cp
'./A/relayer.toml'
"
${
file
}
"
cp
'./ebrelayer'
"./
$name
/ebrelayer"
# 删除配置文件中不需要的字段
for
deleteName
in
"deployerPrivateKey"
"operatorAddr"
"validatorsAddr"
"initPowers"
"deployerPrivateKey"
"deploy"
;
do
delete_line
"
${
file
}
"
"
${
deleteName
}
"
done
# 替换端口
port
=
$((
port
+
1
))
sed
-i
's/localhost:9901/localhost:'
${
port
}
'/g'
"
${
file
}
"
port2
=
$((
port2
+
1
))
sed
-i
's/20000/'
${
port2
}
'/g'
"
${
file
}
"
sed
-i
's/x2ethereum/x2ethereum'
${
name
}
'/g'
"
${
file
}
"
done
echo
"
${
inetAddr
}
"
}
# 启动 eth
...
...
@@ -595,38 +490,6 @@ function start_trufflesuite() {
sleep
1
}
# $1 CLI
function
wait_prophecy_finish
()
{
local
CLI
=
${
1
}
set
+x
local
count
=
0
while
true
;
do
if
[[
$#
-eq
4
]]
;
then
${
CLI
}
relayer ethereum balance
-o
"
${
2
}
"
-t
"
${
3
}
"
balance
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
2
}
"
-t
"
${
3
}
"
| jq
-r
.balance
)
if
[[
${
balance
}
==
"
${
4
}
"
]]
;
then
break
fi
fi
if
[[
$#
-eq
3
]]
;
then
${
CLI
}
relayer ethereum balance
-o
"
${
2
}
"
balance
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
2
}
"
| jq
-r
.balance
)
if
[[
${
balance
}
==
"
${
3
}
"
]]
;
then
break
fi
fi
count
=
$((
count
+
1
))
if
[[
${
count
}
==
30
]]
;
then
set
-x
echo
-e
"
${
RED
}
failed to get balance
${
NOC
}
"
exit_cp_file
fi
sleep
1
done
set
-x
}
# eth 区块等待 $1:等待高度 $2:url地址,默认为 http://localhost:7545,测试网络用 https://ropsten-rpc.linkpool.io/
function
eth_block_wait
()
{
set
+x
...
...
plugin/dapp/x2ethereum/cmd/build/sleep.sh
0 → 100755
View file @
72187761
#!/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
plugin/dapp/x2ethereum/cmd/test/test-rpc.sh
View file @
72187761
...
...
@@ -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
sleep
1
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
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"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment