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
dd1a0d39
Commit
dd1a0d39
authored
Nov 19, 2021
by
mdj33
Committed by
vipwzw
Nov 23, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add paracross supervision autonomy config
parent
13b0a176
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
102 additions
and
89 deletions
+102
-89
docker-compose.sh
build/docker-compose.sh
+0
-1
chain33.para.toml
chain33.para.toml
+0
-2
testcase.sh
plugin/dapp/paracross/cmd/build/testcase.sh
+6
-6
paracross.go
plugin/dapp/paracross/commands/paracross.go
+35
-31
exec.go
plugin/dapp/paracross/executor/exec.go
+1
-1
exec_del_local.go
plugin/dapp/paracross/executor/exec_del_local.go
+4
-4
exec_local.go
plugin/dapp/paracross/executor/exec_local.go
+4
-4
query.go
plugin/dapp/paracross/executor/query.go
+2
-2
superaccount.go
plugin/dapp/paracross/executor/superaccount.go
+29
-16
supervisionaccount.go
plugin/dapp/paracross/executor/supervisionaccount.go
+0
-0
supervisionaccount_test.go
plugin/dapp/paracross/executor/supervisionaccount_test.go
+18
-18
paracross.proto
plugin/dapp/paracross/proto/paracross.proto
+1
-1
paracross.pb.go
plugin/dapp/paracross/types/paracross.pb.go
+0
-0
type.go
plugin/dapp/paracross/types/type.go
+2
-3
No files found.
build/docker-compose.sh
View file @
dd1a0d39
...
...
@@ -114,7 +114,6 @@ function base_init() {
# wallet
sed
-i
$sedfix
's/^minerdisable=.*/minerdisable=false/g'
chain33.toml
sed
-i
$sedfix
's/^nodeGroupFrozenCoins=.*/nodeGroupFrozenCoins=20/g'
chain33.toml
sed
-i
$sedfix
's/^paraConsensusStopBlocks=.*/paraConsensusStopBlocks=100/g'
chain33.toml
# blockchain
...
...
chain33.para.toml
View file @
dd1a0d39
...
...
@@ -125,8 +125,6 @@ mainForkParacrossCommitTx=2270000
#主链开启循环检查共识交易done的fork高度,需要和主链保持严格一致,不可修改,4320000是bityuan主链对应高度, ycc或其他按实际修改
#不可为0,主链Local时候需特殊配置
mainLoopCheckCommitTxDoneForkHeight
=
4320000
#主链开启Supervision功能fork高度,需要和主链保持严格一致
#mainForkParaSupervision=10400000
#无平行链交易的主链区块间隔,平行链产生一个空块,从高度0开始,配置[blockHeight:interval],比如["0:50","1000:100"]
emptyBlockInterval
=
["0:50"]
...
...
plugin/dapp/paracross/cmd/build/testcase.sh
View file @
dd1a0d39
...
...
@@ -544,7 +544,7 @@ function para_create_nodegroup_gamechain() {
echo
"=========== # game para chain approve node group ============="
##approve
txhash
=
$(${
CLI
}
--paraName
user.p.game. send para nodegroup approve
-i
"
$id
"
-c
5
-k
"
${
SUPER_KEY
}
"
)
txhash
=
$(${
CLI
}
--paraName
user.p.game. send para nodegroup approve
-i
"
$id
"
-
a
""
-
c
5
-k
"
${
SUPER_KEY
}
"
)
echo
"tx=
$txhash
"
query_tx
"
${
PARA_CLI5
}
"
"
${
txhash
}
"
...
...
@@ -718,7 +718,7 @@ function para_create_nodegroup() {
echo
"=========== # para chain approve node group ============="
##approve
txhash
=
$(${
PARA_CLI
}
send para nodegroup approve
-i
"
$id
"
-c
6
-k
"
${
SUPER_KEY
}
"
)
txhash
=
$(${
PARA_CLI
}
send para nodegroup approve
-i
"
$id
"
-
a
""
-
c
6
-k
"
${
SUPER_KEY
}
"
)
echo
"tx=
$txhash
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
...
...
@@ -758,7 +758,7 @@ function para_create_nodegroup() {
fi
##approve
txhash
=
$(${
PARA_CLI
}
send para nodegroup approve
-i
"
$modifyid
"
-c
5
-k
"
${
SUPER_KEY
}
"
)
txhash
=
$(${
PARA_CLI
}
send para nodegroup approve
-i
"
$modifyid
"
-
a
""
-
c
5
-k
"
${
SUPER_KEY
}
"
)
echo
"tx=
$txhash
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
...
...
@@ -850,7 +850,7 @@ function para_create_supervision_nodegroup_quit() {
echo
"=========== # para chain approve supervision node group 28 ============="
##approve
txhash
=
$(${
PARA_CLI
}
send para supervision_node approve
-i
"
$id
"
-c
6
-k
"
${
SUPER_KEY
}
"
)
txhash
=
$(${
PARA_CLI
}
send para supervision_node approve
-i
"
$id
"
-
a
""
-
c
6
-k
"
${
SUPER_KEY
}
"
)
echo
"tx=
$txhash
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
...
...
@@ -865,7 +865,7 @@ function para_create_supervision_nodegroup_quit() {
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
check_balance_1ka
"
$balancePre
"
-6
check_supervision_node_group_list 3
"
$
id
"
check_supervision_node_group_list 3
"
$
txhash
"
check_supervision_node_addr_status 3
"
$ADDR_28
"
check_supervision_node_addrs null
echo
"=========== #
${
FUNCNAME
}
end ============="
...
...
@@ -885,7 +885,7 @@ function para_create_supervision_nodegroup_approve() {
echo
"=========== # para chain approve supervision node group 28 ============="
##approve
txhash
=
$(${
PARA_CLI
}
send para supervision_node approve
-i
"
$id
"
-c
6
-k
"
${
SUPER_KEY
}
"
)
txhash
=
$(${
PARA_CLI
}
send para supervision_node approve
-i
"
$id
"
-
a
""
-
c
6
-k
"
${
SUPER_KEY
}
"
)
echo
"tx=
$txhash
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
...
...
plugin/dapp/paracross/commands/paracross.go
View file @
dd1a0d39
...
...
@@ -363,7 +363,6 @@ func addNodeJoinFlags(cmd *cobra.Command) {
_
=
cmd
.
MarkFlagRequired
(
"addr"
)
cmd
.
Flags
()
.
Float64P
(
"coins"
,
"c"
,
0
,
"frozen coins amount, should not less nodegroup's setting"
)
_
=
cmd
.
MarkFlagRequired
(
"coins"
)
}
...
...
@@ -908,7 +907,6 @@ func addNodeGroupApplyCmdFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringP
(
"blspubs"
,
"p"
,
""
,
"bls sign pub key for addr's private key,split by ',' (optional)"
)
cmd
.
Flags
()
.
Float64P
(
"coins"
,
"c"
,
0
,
"coins amount to frozen, not less config"
)
_
=
cmd
.
MarkFlagRequired
(
"coins"
)
}
...
...
@@ -946,12 +944,24 @@ func nodeGroupApply(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
}
func
nodeGroupApproveCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"approve"
,
Short
:
"approve for para chain's super node group application"
,
Run
:
nodeGroupApprove
,
}
addNodeGroupApproveCmdFlags
(
cmd
)
return
cmd
}
func
addNodeGroupApproveCmdFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"id"
,
"i"
,
""
,
"apply id for nodegroup "
)
_
=
cmd
.
MarkFlagRequired
(
"id"
)
cmd
.
Flags
()
.
StringP
(
"autonomyId"
,
"a"
,
""
,
"autonomy approved id "
)
_
=
cmd
.
MarkFlagRequired
(
"autonomyId"
)
cmd
.
Flags
()
.
Float64P
(
"coins"
,
"c"
,
0
,
"coins amount to frozen, not less config"
)
_
=
cmd
.
MarkFlagRequired
(
"coins"
)
}
...
...
@@ -959,6 +969,7 @@ func nodeGroupApprove(cmd *cobra.Command, args []string) {
paraName
,
_
:=
cmd
.
Flags
()
.
GetString
(
"paraName"
)
id
,
_
:=
cmd
.
Flags
()
.
GetString
(
"id"
)
coins
,
_
:=
cmd
.
Flags
()
.
GetFloat64
(
"coins"
)
autonomyId
,
_
:=
cmd
.
Flags
()
.
GetString
(
"autonomyId"
)
if
!
strings
.
HasPrefix
(
paraName
,
"user.p"
)
{
_
,
_
=
fmt
.
Fprintln
(
os
.
Stderr
,
"paraName is not right, paraName format like `user.p.guodun.`"
)
...
...
@@ -975,7 +986,7 @@ func nodeGroupApprove(cmd *cobra.Command, args []string) {
fmt
.
Fprintln
(
os
.
Stderr
,
errors
.
Wrapf
(
err
,
"FormatFloatDisplay2Value.coins"
))
return
}
payload
:=
&
pt
.
ParaNodeGroupConfig
{
Title
:
paraName
,
Op
:
2
,
Id
:
id
,
CoinsFrozen
:
coinsInt64
}
payload
:=
&
pt
.
ParaNodeGroupConfig
{
Title
:
paraName
,
Op
:
2
,
Id
:
id
,
CoinsFrozen
:
coinsInt64
,
AutonomyItemID
:
autonomyId
}
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
getRealExecName
(
paraName
,
pt
.
ParaX
),
ActionName
:
"NodeGroupConfig"
,
...
...
@@ -986,13 +997,13 @@ func nodeGroupApprove(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
}
func
nodeGroup
Approve
Cmd
()
*
cobra
.
Command
{
func
nodeGroup
Quit
Cmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"
approve
"
,
Short
:
"
approve
for para chain's super node group application"
,
Run
:
nodeGroup
Approve
,
Use
:
"
quit
"
,
Short
:
"
quit
for para chain's super node group application"
,
Run
:
nodeGroup
Quit
,
}
addNodeGroup
Approve
CmdFlags
(
cmd
)
addNodeGroup
Quit
CmdFlags
(
cmd
)
return
cmd
}
...
...
@@ -1005,6 +1016,7 @@ func addNodeGroupQuitCmdFlags(cmd *cobra.Command) {
func
nodeGroupQuit
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
paraName
,
_
:=
cmd
.
Flags
()
.
GetString
(
"paraName"
)
id
,
_
:=
cmd
.
Flags
()
.
GetString
(
"id"
)
if
!
strings
.
HasPrefix
(
paraName
,
"user.p"
)
{
_
,
_
=
fmt
.
Fprintln
(
os
.
Stderr
,
"paraName is not right, paraName format like `user.p.guodun.`"
)
return
...
...
@@ -1021,13 +1033,13 @@ func nodeGroupQuit(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
}
func
nodeGroup
Quit
Cmd
()
*
cobra
.
Command
{
func
nodeGroup
Modify
Cmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"
quit
"
,
Short
:
"
quit for para chain's super node group application
"
,
Run
:
nodeGroup
Quit
,
Use
:
"
modify
"
,
Short
:
"
modify for para chain's super node group parameters
"
,
Run
:
nodeGroup
Modify
,
}
addNodeGroup
Quit
CmdFlags
(
cmd
)
addNodeGroup
Modify
CmdFlags
(
cmd
)
return
cmd
}
...
...
@@ -1066,16 +1078,6 @@ func nodeGroupModify(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
}
func
nodeGroupModifyCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"modify"
,
Short
:
"modify for para chain's super node group parameters"
,
Run
:
nodeGroupModify
,
}
addNodeGroupModifyCmdFlags
(
cmd
)
return
cmd
}
// IsSyncCmd query parachain is sync
func
IsSyncCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
...
...
@@ -1645,7 +1647,6 @@ func addSupervisionNodeApplyCmdFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringP
(
"blspub"
,
"p"
,
""
,
"bls sign pub key for addr's private key"
)
cmd
.
Flags
()
.
Float64P
(
"coins"
,
"c"
,
0
,
"coins amount to frozen, not less config"
)
_
=
cmd
.
MarkFlagRequired
(
"coins"
)
}
func
supervisionNodeApply
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
...
...
@@ -1658,7 +1659,7 @@ func supervisionNodeApply(cmd *cobra.Command, args []string) {
_
,
_
=
fmt
.
Fprintln
(
os
.
Stderr
,
"paraName is not right, paraName format like `user.p.guodun.`"
)
return
}
payload
:=
&
pt
.
ParaNode
AddrConfig
{
Title
:
paraName
,
Op
:
1
,
Addr
:
addr
,
BlsPubKey
:
blspub
,
CoinsFrozen
:
int64
(
math
.
Trunc
((
coins
+
0.0000001
)
*
1e4
))
*
1e4
}
payload
:=
&
pt
.
ParaNode
GroupConfig
{
Title
:
paraName
,
Op
:
1
,
Addrs
:
addr
,
BlsPubKeys
:
blspub
,
CoinsFrozen
:
int64
(
math
.
Trunc
((
coins
+
0.0000001
)
*
1e4
))
*
1e4
}
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
getRealExecName
(
paraName
,
pt
.
ParaX
),
ActionName
:
"SupervisionNodeConfig"
,
...
...
@@ -1684,13 +1685,16 @@ func addSupervisionNodeApproveCmdFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringP
(
"id"
,
"i"
,
""
,
"apply id for supervision node "
)
_
=
cmd
.
MarkFlagRequired
(
"id"
)
cmd
.
Flags
()
.
StringP
(
"autonomyId"
,
"a"
,
""
,
"autonomy approved id "
)
_
=
cmd
.
MarkFlagRequired
(
"autonomyId"
)
cmd
.
Flags
()
.
Float64P
(
"coins"
,
"c"
,
0
,
"coins amount to frozen, not less config"
)
_
=
cmd
.
MarkFlagRequired
(
"coins"
)
}
func
supervisionNodeApprove
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
paraName
,
_
:=
cmd
.
Flags
()
.
GetString
(
"paraName"
)
id
,
_
:=
cmd
.
Flags
()
.
GetString
(
"id"
)
autonomyId
,
_
:=
cmd
.
Flags
()
.
GetString
(
"autonomyId"
)
coins
,
_
:=
cmd
.
Flags
()
.
GetFloat64
(
"coins"
)
if
!
strings
.
HasPrefix
(
paraName
,
"user.p"
)
{
...
...
@@ -1698,7 +1702,7 @@ func supervisionNodeApprove(cmd *cobra.Command, args []string) {
return
}
payload
:=
&
pt
.
ParaNode
AddrConfig
{
Title
:
paraName
,
Op
:
2
,
Id
:
i
d
,
CoinsFrozen
:
int64
(
math
.
Trunc
((
coins
+
0.0000001
)
*
1e4
))
*
1e4
}
payload
:=
&
pt
.
ParaNode
GroupConfig
{
Title
:
paraName
,
Op
:
2
,
Id
:
id
,
AutonomyItemID
:
autonomyI
d
,
CoinsFrozen
:
int64
(
math
.
Trunc
((
coins
+
0.0000001
)
*
1e4
))
*
1e4
}
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
getRealExecName
(
paraName
,
pt
.
ParaX
),
ActionName
:
"SupervisionNodeConfig"
,
...
...
@@ -1732,7 +1736,7 @@ func supervisionNodeQuit(cmd *cobra.Command, args []string) {
_
,
_
=
fmt
.
Fprintln
(
os
.
Stderr
,
"paraName is not right, paraName format like `user.p.guodun.`"
)
return
}
payload
:=
&
pt
.
ParaNode
AddrConfig
{
Title
:
paraName
,
Op
:
3
,
Addr
:
opAddr
}
payload
:=
&
pt
.
ParaNode
GroupConfig
{
Title
:
paraName
,
Op
:
3
,
Addrs
:
opAddr
}
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
getRealExecName
(
paraName
,
pt
.
ParaX
),
ActionName
:
"SupervisionNodeConfig"
,
...
...
@@ -1766,7 +1770,7 @@ func supervisionNodeCancel(cmd *cobra.Command, args []string) {
_
,
_
=
fmt
.
Fprintln
(
os
.
Stderr
,
"paraName is not right, paraName format like `user.p.guodun.`"
)
return
}
payload
:=
&
pt
.
ParaNode
Addr
Config
{
Title
:
paraName
,
Op
:
4
,
Id
:
id
}
payload
:=
&
pt
.
ParaNode
Group
Config
{
Title
:
paraName
,
Op
:
4
,
Id
:
id
}
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
getRealExecName
(
paraName
,
pt
.
ParaX
),
ActionName
:
"SupervisionNodeConfig"
,
...
...
@@ -1833,7 +1837,7 @@ func supervisionNodeListInfo(cmd *cobra.Command, args []string) {
}
params
.
Payload
=
types
.
MustPBToJSON
(
&
req
)
var
res
pt
.
RespParacrossNode
Addr
s
var
res
pt
.
RespParacrossNode
Group
s
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
}
...
...
plugin/dapp/paracross/executor/exec.go
View file @
dd1a0d39
...
...
@@ -127,7 +127,7 @@ func (e *Paracross) Exec_ParaBindMiner(payload *pt.ParaBindMinerCmd, tx *types.T
}
//Exec_SupervisionNodeConfig exec Supervision node config
func
(
e
*
Paracross
)
Exec_SupervisionNodeConfig
(
payload
*
pt
.
ParaNode
Addr
Config
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
func
(
e
*
Paracross
)
Exec_SupervisionNodeConfig
(
payload
*
pt
.
ParaNode
Group
Config
,
tx
*
types
.
Transaction
,
index
int
)
(
*
types
.
Receipt
,
error
)
{
a
:=
newAction
(
e
,
tx
)
return
a
.
SupervisionNodeConfig
(
payload
)
}
plugin/dapp/paracross/executor/exec_del_local.go
View file @
dd1a0d39
...
...
@@ -137,22 +137,22 @@ func (e *Paracross) ExecDelLocal_NodeGroupConfig(payload *pt.ParaNodeGroupConfig
return
&
set
,
nil
}
func
(
e
*
Paracross
)
ExecDelLocal_SupervisionNodeConfig
(
payload
*
pt
.
ParaNode
Addr
Config
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
func
(
e
*
Paracross
)
ExecDelLocal_SupervisionNodeConfig
(
payload
*
pt
.
ParaNode
Group
Config
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
var
set
types
.
LocalDBSet
for
_
,
log
:=
range
receiptData
.
Logs
{
if
log
.
Ty
==
pt
.
TyLogParaSupervisionNodeConfig
{
var
g
pt
.
ReceiptParaNodeConfig
var
g
pt
.
ReceiptParaNode
Group
Config
err
:=
types
.
Decode
(
log
.
Log
,
&
g
)
if
err
!=
nil
{
return
nil
,
err
}
if
g
.
Prev
!=
nil
{
set
.
KV
=
append
(
set
.
KV
,
&
types
.
KeyValue
{
Key
:
calcLocalSupervisionNodeStatusTitle
(
g
.
Current
.
Title
,
g
.
Prev
.
Status
,
g
.
Current
.
TargetAddr
,
g
.
Current
.
Id
),
Value
:
types
.
Encode
(
g
.
Prev
)})
Key
:
calcLocalSupervisionNodeStatusTitle
(
g
.
Current
.
Title
,
g
.
Prev
.
Status
,
g
.
Current
.
TargetAddr
s
,
g
.
Current
.
Id
),
Value
:
types
.
Encode
(
g
.
Prev
)})
}
set
.
KV
=
append
(
set
.
KV
,
&
types
.
KeyValue
{
Key
:
calcLocalSupervisionNodeStatusTitle
(
g
.
Current
.
Title
,
g
.
Current
.
Status
,
g
.
Current
.
TargetAddr
,
g
.
Current
.
Id
),
Value
:
nil
})
Key
:
calcLocalSupervisionNodeStatusTitle
(
g
.
Current
.
Title
,
g
.
Current
.
Status
,
g
.
Current
.
TargetAddr
s
,
g
.
Current
.
Id
),
Value
:
nil
})
}
}
return
&
set
,
nil
...
...
plugin/dapp/paracross/executor/exec_local.go
View file @
dd1a0d39
...
...
@@ -141,22 +141,22 @@ func (e *Paracross) ExecLocal_NodeGroupConfig(payload *pt.ParaNodeGroupConfig, t
return
&
set
,
nil
}
func
(
e
*
Paracross
)
ExecLocal_SupervisionNodeConfig
(
payload
*
pt
.
ParaNode
Addr
Config
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
func
(
e
*
Paracross
)
ExecLocal_SupervisionNodeConfig
(
payload
*
pt
.
ParaNode
Group
Config
,
tx
*
types
.
Transaction
,
receiptData
*
types
.
ReceiptData
,
index
int
)
(
*
types
.
LocalDBSet
,
error
)
{
var
set
types
.
LocalDBSet
for
_
,
log
:=
range
receiptData
.
Logs
{
if
log
.
Ty
==
pt
.
TyLogParaSupervisionNodeConfig
{
var
g
pt
.
ReceiptParaNodeConfig
var
g
pt
.
ReceiptParaNode
Group
Config
err
:=
types
.
Decode
(
log
.
Log
,
&
g
)
if
err
!=
nil
{
return
nil
,
err
}
if
g
.
Prev
!=
nil
{
set
.
KV
=
append
(
set
.
KV
,
&
types
.
KeyValue
{
Key
:
calcLocalSupervisionNodeStatusTitle
(
g
.
Current
.
Title
,
g
.
Prev
.
Status
,
g
.
Current
.
TargetAddr
,
g
.
Current
.
Id
),
Value
:
nil
})
Key
:
calcLocalSupervisionNodeStatusTitle
(
g
.
Current
.
Title
,
g
.
Prev
.
Status
,
g
.
Current
.
TargetAddr
s
,
g
.
Current
.
Id
),
Value
:
nil
})
}
set
.
KV
=
append
(
set
.
KV
,
&
types
.
KeyValue
{
Key
:
calcLocalSupervisionNodeStatusTitle
(
g
.
Current
.
Title
,
g
.
Current
.
Status
,
g
.
Current
.
TargetAddr
,
g
.
Current
.
Id
),
Value
:
types
.
Encode
(
g
.
Current
)})
Key
:
calcLocalSupervisionNodeStatusTitle
(
g
.
Current
.
Title
,
g
.
Current
.
Status
,
g
.
Current
.
TargetAddr
s
,
g
.
Current
.
Id
),
Value
:
types
.
Encode
(
g
.
Current
)})
}
}
return
&
set
,
nil
...
...
plugin/dapp/paracross/executor/query.go
View file @
dd1a0d39
...
...
@@ -281,12 +281,12 @@ func (p *Paracross) Query_ListSupervisionNodeStatusInfo(in *pt.ReqParacrossNodeI
prefix
=
calcLocalSupervisionNodeStatusTitlePrefix
(
in
.
Title
,
in
.
Status
)
}
resp
,
err
:=
listNodeStatus
(
p
.
GetLocalDB
(),
prefix
)
resp
,
err
:=
listNode
Group
Status
(
p
.
GetLocalDB
(),
prefix
)
if
err
!=
nil
{
return
resp
,
err
}
addrs
:=
resp
.
(
*
pt
.
RespParacrossNode
Addr
s
)
addrs
:=
resp
.
(
*
pt
.
RespParacrossNode
Group
s
)
for
_
,
id
:=
range
addrs
.
Ids
{
id
.
Id
=
getParaNodeIDSuffix
(
id
.
Id
)
}
...
...
plugin/dapp/paracross/executor/superaccount.go
View file @
dd1a0d39
...
...
@@ -957,28 +957,41 @@ func (a *action) nodeGroupApproveApply(config *pt.ParaNodeGroupConfig, apply *pt
return
receipt
,
nil
}
func
(
a
*
action
)
checkApproveOp
(
config
*
pt
.
ParaNodeGroupConfig
)
error
{
cfg
:=
a
.
api
.
GetConfig
()
//fork之后采用 autonomy 检查模式
confManager
:=
types
.
ConfSub
(
cfg
,
manager
.
ManageX
)
autonomyExec
:=
confManager
.
GStr
(
types
.
AutonomyCfgKey
)
if
cfg
.
IsDappFork
(
a
.
height
,
pt
.
ParaX
,
pt
.
ForkParaAutonomySuperGroup
)
&&
len
(
autonomyExec
)
>
0
{
//去autonomy 合约检验是否id approved, 成功 err返回nil
_
,
err
:=
a
.
api
.
QueryChain
(
&
types
.
ChainExecutor
{
Driver
:
autonomyExec
,
FuncName
:
"IsAutonomyApprovedItem"
,
Param
:
types
.
Encode
(
&
types
.
ReqMultiStrings
{
Datas
:
[]
string
{
config
.
AutonomyItemID
,
config
.
Id
}}),
})
if
err
!=
nil
{
return
errors
.
Wrapf
(
err
,
"query autonomy,approveid=%s,hashId=%s"
,
config
.
AutonomyItemID
,
config
.
Id
)
}
return
nil
}
//fork之前检查是否from superManager
if
!
isSuperManager
(
cfg
,
a
.
fromaddr
)
{
return
errors
.
Wrapf
(
types
.
ErrNotAllow
,
"node group approve not super manager:%s"
,
a
.
fromaddr
)
}
return
nil
}
// NodeGroupApprove super addr approve the node group apply
func
(
a
*
action
)
nodeGroupApprove
(
config
*
pt
.
ParaNodeGroupConfig
)
(
*
types
.
Receipt
,
error
)
{
cfg
:=
a
.
api
.
GetConfig
()
//只在主链检查, 主链检查失败不会同步到平行链,主链成功,平行链默认成功
if
!
cfg
.
IsPara
()
{
//fork之后采用 autonomy 检查模式
confManager
:=
types
.
ConfSub
(
cfg
,
manager
.
ManageX
)
autonomyExec
:=
confManager
.
GStr
(
types
.
AutonomyCfgKey
)
if
cfg
.
IsDappFork
(
a
.
height
,
pt
.
ParaX
,
pt
.
ForkParaAutonomySuperGroup
)
&&
len
(
autonomyExec
)
>
0
{
//去autonomy 合约检验是否id approved, 成功 err返回nil
_
,
err
:=
a
.
api
.
QueryChain
(
&
types
.
ChainExecutor
{
Driver
:
autonomyExec
,
FuncName
:
"IsAutonomyApprovedItem"
,
Param
:
types
.
Encode
(
&
types
.
ReqMultiStrings
{
Datas
:
[]
string
{
config
.
AutonomyItemID
,
config
.
Id
}}),
})
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"query autonomy,approveid=%s,hashId=%s"
,
config
.
AutonomyItemID
,
config
.
Id
)
}
}
else
if
!
isSuperManager
(
cfg
,
a
.
fromaddr
)
{
return
nil
,
errors
.
Wrapf
(
types
.
ErrNotAllow
,
"node group approve not super manager:%s"
,
a
.
fromaddr
)
err
:=
a
.
checkApproveOp
(
config
)
if
err
!=
nil
{
return
nil
,
err
}
}
...
...
plugin/dapp/paracross/executor/supervisionaccount.go
View file @
dd1a0d39
This diff is collapsed.
Click to expand it.
plugin/dapp/paracross/executor/supervisionaccount_test.go
View file @
dd1a0d39
...
...
@@ -7,7 +7,7 @@ import (
)
// createRawSupervisionNodeConfigTx create raw tx for node config
func
createRawSupervisionNodeConfigTx
(
config
*
pt
.
ParaNode
Addr
Config
)
*
types
.
Transaction
{
func
createRawSupervisionNodeConfigTx
(
config
*
pt
.
ParaNode
Group
Config
)
*
types
.
Transaction
{
action
:=
&
pt
.
ParacrossAction
{
Ty
:
pt
.
ParacrossActionSupervisionNodeConfig
,
Value
:
&
pt
.
ParacrossAction_SupervisionNodeConfig
{
SupervisionNodeConfig
:
config
},
...
...
@@ -32,10 +32,10 @@ func (suite *NodeManageTestSuite) testSupervisionExec() {
func
(
suite
*
NodeManageTestSuite
)
testSupervisionNodeConfigCancel
(
addr
,
privKey
string
)
{
// Apply
config
:=
&
pt
.
ParaNode
Addr
Config
{
config
:=
&
pt
.
ParaNode
Group
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Op
:
pt
.
ParacrossSupervisionNodeApply
,
Addr
:
addr
,
Addr
s
:
addr
,
}
tx
:=
createRawSupervisionNodeConfigTx
(
config
)
receipt
:=
nodeCommit
(
suite
,
privKey
,
tx
)
...
...
@@ -46,7 +46,7 @@ func (suite *NodeManageTestSuite) testSupervisionNodeConfigCancel(addr, privKey
suite
.
Nil
(
err
)
// cancel
config
=
&
pt
.
ParaNode
Addr
Config
{
config
=
&
pt
.
ParaNode
Group
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Op
:
pt
.
ParacrossSupervisionNodeCancel
,
Id
:
getParaNodeIDSuffix
(
g
.
Current
.
Id
),
...
...
@@ -57,10 +57,10 @@ func (suite *NodeManageTestSuite) testSupervisionNodeConfigCancel(addr, privKey
}
func
(
suite
*
NodeManageTestSuite
)
testSupervisionNodeConfigApprove
(
addr
,
privKey
string
)
{
config
:=
&
pt
.
ParaNode
Addr
Config
{
config
:=
&
pt
.
ParaNode
Group
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Op
:
pt
.
ParacrossSupervisionNodeApply
,
Addr
:
addr
,
Addr
s
:
addr
,
}
tx
:=
createRawSupervisionNodeConfigTx
(
config
)
receipt
:=
nodeCommit
(
suite
,
privKey
,
tx
)
...
...
@@ -70,7 +70,7 @@ func (suite *NodeManageTestSuite) testSupervisionNodeConfigApprove(addr, privKey
err
:=
types
.
Decode
(
receipt
.
Logs
[
0
]
.
Log
,
&
g
)
suite
.
Nil
(
err
)
config
=
&
pt
.
ParaNode
Addr
Config
{
config
=
&
pt
.
ParaNode
Group
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Id
:
getParaNodeIDSuffix
(
g
.
Current
.
Id
),
Op
:
pt
.
ParacrossSupervisionNodeApprove
,
...
...
@@ -81,20 +81,20 @@ func (suite *NodeManageTestSuite) testSupervisionNodeConfigApprove(addr, privKey
}
func
(
suite
*
NodeManageTestSuite
)
testSupervisionNodeError
()
{
config
:=
&
pt
.
ParaNode
Addr
Config
{
config
:=
&
pt
.
ParaNode
Group
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Op
:
pt
.
ParacrossSupervisionNodeApply
,
Addr
:
Account1M3
,
Addr
s
:
Account1M3
,
}
tx
:=
createRawSupervisionNodeConfigTx
(
config
)
tx
,
_
=
signTx
(
suite
.
Suite
,
tx
,
PrivKey1M3
)
_
,
err
:=
suite
.
exec
.
Exec
(
tx
,
0
)
suite
.
NotNil
(
err
)
config
=
&
pt
.
ParaNode
Addr
Config
{
config
=
&
pt
.
ParaNode
Group
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Op
:
pt
.
ParacrossSupervisionNodeApply
,
Addr
:
"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"
,
Addr
s
:
"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"
,
}
tx
=
createRawSupervisionNodeConfigTx
(
config
)
tx
,
_
=
signTx
(
suite
.
Suite
,
tx
,
PrivKey1KS
)
...
...
@@ -103,10 +103,10 @@ func (suite *NodeManageTestSuite) testSupervisionNodeError() {
}
func
(
suite
*
NodeManageTestSuite
)
testSupervisionNodeQuit
()
{
config
:=
&
pt
.
ParaNode
Addr
Config
{
config
:=
&
pt
.
ParaNode
Group
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Op
:
pt
.
ParacrossSupervisionNodeQuit
,
Addr
:
Account1Ku
,
Addr
s
:
Account1Ku
,
}
tx
:=
createRawSupervisionNodeConfigTx
(
config
)
receipt
:=
nodeCommit
(
suite
,
PrivKey1Ku
,
tx
)
...
...
@@ -123,11 +123,11 @@ func (suite *NodeManageTestSuite) testSupervisionNodeQuit() {
}
func
(
suite
*
NodeManageTestSuite
)
testSupervisionNodeModify
()
{
config
:=
&
pt
.
ParaNode
Addr
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Op
:
pt
.
ParacrossSupervisionNodeModify
,
Addr
:
Account14K
,
BlsPubKey
:
Bls14K
,
config
:=
&
pt
.
ParaNode
Group
Config
{
Title
:
chain33TestCfg
.
GetTitle
(),
Op
:
pt
.
ParacrossSupervisionNodeModify
,
Addr
s
:
Account14K
,
BlsPubKey
s
:
Bls14K
,
}
tx
:=
createRawSupervisionNodeConfigTx
(
config
)
receipt
:=
nodeCommit
(
suite
,
PrivKey14K
,
tx
)
...
...
plugin/dapp/paracross/proto/paracross.proto
View file @
dd1a0d39
...
...
@@ -357,7 +357,7 @@ message ParacrossAction {
ParaStageConfig
selfStageConfig
=
11
;
CrossAssetTransfer
crossAssetTransfer
=
12
;
ParaBindMinerCmd
paraBindMiner
=
13
;
ParaNode
AddrConfig
supervisionNodeConfig
=
14
;
ParaNode
GroupConfig
supervisionNodeConfig
=
14
;
}
int32
ty
=
2
;
}
...
...
plugin/dapp/paracross/types/paracross.pb.go
View file @
dd1a0d39
This diff is collapsed.
Click to expand it.
plugin/dapp/paracross/types/type.go
View file @
dd1a0d39
...
...
@@ -19,14 +19,13 @@ var (
// ForkCommitTx main chain support paracross commit tx
ForkCommitTx
=
"ForkParacrossCommitTx"
// MainForkParacrossCommitTx 平行链配置项对应主链的ForkCommitTx 高度
// 同一个fork,同一份代码在主链和平行链需要执行高度一致,需要平行链配置主链fork高度
MainForkParacrossCommitTx
=
"mainForkParacrossCommitTx"
// ForkLoopCheckCommitTxDone 循环检查共识交易done的fork
ForkLoopCheckCommitTxDone
=
"ForkLoopCheckCommitTxDone"
// MainLoopCheckCommitTxDoneForkHeight 平行链的配置项,对应主链的ForkLoopCheckCommitTxDone高度
MainLoopCheckCommitTxDoneForkHeight
=
"mainLoopCheckCommitTxDoneForkHeight"
//MainForkParaSupervision = "mainForkParaSupervision"
// ForkParaAssetTransferRbk 平行链资产转移平行链失败主链回滚
ForkParaAssetTransferRbk
=
"ForkParaAssetTransferRbk"
// ForkParaSupervision 平行链新增监督节点
...
...
@@ -128,7 +127,7 @@ func (p *ParacrossType) GetLogMap() map[int64]*types.LogInfo {
TyLogParaStageGroupUpdate
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptSelfConsStagesUpdate
{}),
Name
:
"LogParaSelfConfStagesUpdate"
},
TyLogParaBindMinerAddr
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaBindMinerInfo
{}),
Name
:
"TyLogParaBindMinerAddrUpdate"
},
TyLogParaBindMinerNode
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeBindListUpdate
{}),
Name
:
"TyLogParaBindNodeListUpdate"
},
TyLogParaSupervisionNodeConfig
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeConfig
{}),
Name
:
"LogParaSupervisionNodeConfig"
},
TyLogParaSupervisionNodeConfig
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNode
Group
Config
{}),
Name
:
"LogParaSupervisionNodeConfig"
},
TyLogParaSupervisionNodeGroupAddrsUpdate
:
{
Ty
:
reflect
.
TypeOf
(
types
.
ReceiptConfig
{}),
Name
:
"LogParaSupervisionNodeGroupAddrsUpdate"
},
TyLogParaSupervisionNodeStatusUpdate
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeAddrStatUpdate
{}),
Name
:
"LogParaSupervisionNodeStatusUpdate"
},
}
...
...
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