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
05937ef0
Commit
05937ef0
authored
Sep 11, 2020
by
袁兴强
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into gowasm
parents
3a57e261
93df499c
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
190 additions
and
324 deletions
+190
-324
const.go
plugin/dapp/dposvote/types/const.go
+1
-1
Dockerfile-x2ethrelay
plugin/dapp/x2ethereum/cmd/build/Dockerfile-x2ethrelay
+2
-4
allRelayerTest.sh
plugin/dapp/x2ethereum/cmd/build/allRelayerTest.sh
+40
-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
+95
-232
sleep.sh
plugin/dapp/x2ethereum/cmd/build/sleep.sh
+9
-0
test-rpc.sh
plugin/dapp/x2ethereum/cmd/test/test-rpc.sh
+43
-35
No files found.
plugin/dapp/dposvote/types/const.go
View file @
05937ef0
...
...
@@ -47,7 +47,7 @@ const (
//VoteFrozenTime = 3 * 24 * 3600
//RegistFrozenCoins 注册为候选节点需要抵押冻结的代币数量
RegistFrozenCoins
=
1000000000000
RegistFrozenCoins
int64
=
1000000000000
//VoteTypeNone 非投票类型
VoteTypeNone
int32
=
1
...
...
plugin/dapp/x2ethereum/cmd/build/Dockerfile-x2ethrelay
View file @
05937ef0
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 @
05937ef0
...
...
@@ -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
}
"
}
...
...
plugin/dapp/x2ethereum/cmd/build/docker-compose-ebrelayer.yml
deleted
100644 → 0
View file @
3a57e261
version
:
'
3'
services
:
ebrelayera
:
build
:
context
:
.
dockerfile
:
Dockerfile-x2ethrelay
ports
:
-
"
20000:20000"
plugin/dapp/x2ethereum/cmd/build/publicTest.sh
View file @
05937ef0
...
...
@@ -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"
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
}
"
# 获取本机 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
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 @
05937ef0
#!/usr/bin/env bash
# shellcheck disable=SC2050
# shellcheck source=/dev/null
set
-x
set
+e
while
[
1
==
1
]
;
do
sleep
100
done
plugin/dapp/x2ethereum/cmd/test/test-rpc.sh
View file @
05937ef0
...
...
@@ -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"
...
...
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