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
030bb98e
Commit
030bb98e
authored
Apr 25, 2019
by
mdj33
Committed by
vipwzw
May 05, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add ci case
parent
ed4cca1c
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
86 additions
and
32 deletions
+86
-32
testcase.sh
plugin/dapp/paracross/cmd/build/testcase.sh
+52
-11
paracross.go
plugin/dapp/paracross/commands/paracross.go
+9
-7
query.go
plugin/dapp/paracross/executor/query.go
+1
-1
superaccount.go
plugin/dapp/paracross/executor/superaccount.go
+15
-10
superaccount.md
plugin/dapp/paracross/executor/superaccount.md
+2
-1
rpc.go
plugin/dapp/paracross/rpc/rpc.go
+1
-1
type.go
plugin/dapp/paracross/types/type.go
+6
-1
No files found.
plugin/dapp/paracross/cmd/build/testcase.sh
View file @
030bb98e
...
@@ -90,8 +90,37 @@ function para_transfer() {
...
@@ -90,8 +90,37 @@ function para_transfer() {
para_transfer2account
"1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR"
para_transfer2account
"1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR"
para_transfer2account
"1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k"
para_transfer2account
"1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k"
para_transfer2account
"1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs"
para_transfer2account
"1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs"
block_wait
"
${
CLI
}
"
1
block_wait
"
${
CLI
}
"
2
echo
"=========== # main chain send to paracross ============="
para_transfer2paracross
"0x6da92a632ab7deb67d38c0f6560bcfed28167998f6496db64c258d5e8393a81b"
para_transfer2paracross
"0x19c069234f9d3e61135fefbeb7791b149cdf6af536f26bebb310d4cd22c3fee4"
para_transfer2paracross
"0x7a80a1f75d7360c6123c32a78ecf978c1ac55636f87892df38d8b85a9aeff115"
para_transfer2paracross
"0xcacb1f5d51700aea07fca2246ab43b0917d70405c65edea9b5063d72eb5c6b71"
para_create_manage_nodegroup
para_create_nodegroup
txhash
=
$(
para_configkey
"
${
PARA_CLI
}
"
"token-blacklist"
"BTY"
)
echo
"txhash=
$txhash
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
}
function
para_transfer2account
()
{
echo
"
${
1
}
"
hash1
=
$(${
CLI
}
send coins transfer
-a
100
-n
test
-t
"
${
1
}
"
-k
4257D8692EF7FE13C68B65D6A52F03933DB2FA5CE8FAF210B5B8B80C721CED01
)
echo
"
${
hash1
}
"
}
function
para_transfer2paracross
(){
echo
"
${
1
}
"
hash1
=
$(${
CLI
}
send coins send_exec
-a
20
-e
paracross
-k
"
${
1
}
"
)
echo
"
${
hash1
}
"
}
function
para_create_manage_nodegroup
(){
echo
"=========== # para chain send config ============="
echo
"=========== # para chain send config ============="
para_configkey
"
${
CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"
para_configkey
"
${
CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"
para_configkey
"
${
CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR"
para_configkey
"
${
CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR"
...
@@ -102,24 +131,36 @@ function para_transfer() {
...
@@ -102,24 +131,36 @@ function para_transfer() {
para_configkey
"
${
PARA_CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR"
para_configkey
"
${
PARA_CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR"
para_configkey
"
${
PARA_CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k"
para_configkey
"
${
PARA_CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k"
para_configkey
"
${
PARA_CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs"
para_configkey
"
${
PARA_CLI
}
"
"paracross-nodes-user.p.
${
PARANAME
}
."
"1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs"
block_wait
"
${
CLI
}
"
1
block_wait
"
${
CLI
}
"
1
txhash
=
$(
para_configkey
"
${
PARA_CLI
}
"
"token-blacklist"
"BTY"
)
}
echo
"txhash=
$txhash
"
function
para_create_nodegroup
(){
echo
"=========== # para chain create node group ============="
##apply
txhash
=
$(${
PARA_CLI
}
send para nodegroup
-o
1
-a
"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4,1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR,1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k,1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs"
-c
20
-k
0x6da92a632ab7deb67d38c0f6560bcfed28167998f6496db64c258d5e8393a81b
)
echo
"tx=
$txhash
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
status
=
$(${
PARA_CLI
}
para nodegroup_status
-t
user.p.para. | jq
-r
".status"
)
if
[
"
$status
"
!=
1
]
;
then
echo
"status not approve"
fi
echo
"=========== # para chain takeover node group ============="
##approve
txhash
=
$(${
PARA_CLI
}
send para node
-o
takeover
-k
0x6da92a632ab7deb67d38c0f6560bcfed28167998f6496db64c258d5e8393a81b
)
txhash
=
$(${
PARA_CLI
}
send para node
group
-o
2
-a
"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4, 1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR, 1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k, 1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs,"
-k
0xc34b5d9d44ac7b754806f761d3d4d2c4fe5214f6b074c19f069c4f5c2a29c8cc
)
echo
"tx=
$txhash
"
echo
"tx=
$txhash
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
query_tx
"
${
PARA_CLI
}
"
"
${
txhash
}
"
}
status
=
$(${
PARA_CLI
}
para nodegroup_status
-t
user.p.para. | jq
-r
".status"
)
if
[
"
$status
"
!=
2
]
;
then
echo
"status not approve"
fi
addrs
=
$(${
PARA_CLI
}
para nodegroup_addrs
-t
user.p.para. | jq
-r
".value"
)
if
[
"
$addrs
"
!=
"[1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4 1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR 1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k 1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs]"
]
;
then
echo
"para node group err"
fi
function
para_transfer2account
()
{
echo
"
${
1
}
"
hash1
=
$(${
CLI
}
send coins transfer
-a
10
-n
test
-t
"
${
1
}
"
-k
4257D8692EF7FE13C68B65D6A52F03933DB2FA5CE8FAF210B5B8B80C721CED01
)
echo
"
${
hash1
}
"
}
}
function
para_configkey
()
{
function
para_configkey
()
{
...
...
plugin/dapp/paracross/commands/paracross.go
View file @
030bb98e
...
@@ -39,6 +39,8 @@ func ParcCmd() *cobra.Command {
...
@@ -39,6 +39,8 @@ func ParcCmd() *cobra.Command {
GetNodeGroupCmd
(),
GetNodeGroupCmd
(),
GetNodeInfoCmd
(),
GetNodeInfoCmd
(),
GetNodeListCmd
(),
GetNodeListCmd
(),
NodeGroupStatusCmd
(),
NodeGroupListCmd
(),
IsSyncCmd
(),
IsSyncCmd
(),
GetHeightCmd
(),
GetHeightCmd
(),
GetBlockInfoCmd
(),
GetBlockInfoCmd
(),
...
@@ -256,14 +258,14 @@ func addNodeManageFlags(cmd *cobra.Command) {
...
@@ -256,14 +258,14 @@ func addNodeManageFlags(cmd *cobra.Command) {
cmd
.
MarkFlagRequired
(
"addrs"
)
cmd
.
MarkFlagRequired
(
"addrs"
)
cmd
.
Flags
()
.
StringP
(
"value"
,
"v"
,
""
,
"vote value: yes,no"
)
cmd
.
Flags
()
.
StringP
(
"value"
,
"v"
,
""
,
"vote value: yes,no"
)
cmd
.
Flags
()
.
In
t64P
(
"coins_frozen"
,
"c"
,
0
,
"join to frozen coins amount, not less config"
)
cmd
.
Flags
()
.
Floa
t64P
(
"coins_frozen"
,
"c"
,
0
,
"join to frozen coins amount, not less config"
)
}
}
func
createNodeTx
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
func
createNodeTx
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
op
,
_
:=
cmd
.
Flags
()
.
GetString
(
"operation"
)
op
,
_
:=
cmd
.
Flags
()
.
GetString
(
"operation"
)
opAddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"addr"
)
opAddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"addr"
)
val
,
_
:=
cmd
.
Flags
()
.
GetString
(
"value"
)
val
,
_
:=
cmd
.
Flags
()
.
GetString
(
"value"
)
coins
,
_
:=
cmd
.
Flags
()
.
Get
In
t64
(
"coins_frozen"
)
coins
,
_
:=
cmd
.
Flags
()
.
Get
Floa
t64
(
"coins_frozen"
)
if
op
!=
"vote"
&&
op
!=
"quit"
&&
op
!=
"join"
{
if
op
!=
"vote"
&&
op
!=
"quit"
&&
op
!=
"join"
{
fmt
.
Println
(
"operation should be one of join,quit,vote"
)
fmt
.
Println
(
"operation should be one of join,quit,vote"
)
...
@@ -278,7 +280,7 @@ func createNodeTx(cmd *cobra.Command, args []string) {
...
@@ -278,7 +280,7 @@ func createNodeTx(cmd *cobra.Command, args []string) {
return
return
}
}
payload
:=
&
pt
.
ParaNodeAddrConfig
{
Op
:
op
,
Value
:
val
,
Addr
:
opAddr
,
CoinsFrozen
:
coins
}
payload
:=
&
pt
.
ParaNodeAddrConfig
{
Op
:
op
,
Value
:
val
,
Addr
:
opAddr
,
CoinsFrozen
:
int64
(
math
.
Trunc
((
coins
+
0.0000001
)
*
1e4
))
*
1e4
}
params
:=
&
rpctypes
.
CreateTxIn
{
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
types
.
ExecName
(
pt
.
ParaX
),
Execer
:
types
.
ExecName
(
pt
.
ParaX
),
ActionName
:
"NodeConfig"
,
ActionName
:
"NodeConfig"
,
...
@@ -309,14 +311,14 @@ func addNodeGroupApplyCmdFlags(cmd *cobra.Command) {
...
@@ -309,14 +311,14 @@ func addNodeGroupApplyCmdFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringP
(
"addrs"
,
"a"
,
""
,
"addrs apply for super node,split by ',' "
)
cmd
.
Flags
()
.
StringP
(
"addrs"
,
"a"
,
""
,
"addrs apply for super node,split by ',' "
)
cmd
.
MarkFlagRequired
(
"addrs"
)
cmd
.
MarkFlagRequired
(
"addrs"
)
cmd
.
Flags
()
.
In
t64P
(
"coins_frozen"
,
"c"
,
0
,
"coins amount to frozen, not less config"
)
cmd
.
Flags
()
.
Floa
t64P
(
"coins_frozen"
,
"c"
,
0
,
"coins amount to frozen, not less config"
)
}
}
func
nodeGroupApply
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
func
nodeGroupApply
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
op
,
_
:=
cmd
.
Flags
()
.
GetUint32
(
"operation"
)
op
,
_
:=
cmd
.
Flags
()
.
GetUint32
(
"operation"
)
addrs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"addrs"
)
addrs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"addrs"
)
coins
,
_
:=
cmd
.
Flags
()
.
Get
In
t64
(
"coins_frozen"
)
coins
,
_
:=
cmd
.
Flags
()
.
Get
Floa
t64
(
"coins_frozen"
)
if
op
==
0
||
op
>
3
{
if
op
==
0
||
op
>
3
{
fmt
.
Println
(
"operation should be one of 1:apply,2:approve,3:quit"
)
fmt
.
Println
(
"operation should be one of 1:apply,2:approve,3:quit"
)
...
@@ -327,7 +329,7 @@ func nodeGroupApply(cmd *cobra.Command, args []string) {
...
@@ -327,7 +329,7 @@ func nodeGroupApply(cmd *cobra.Command, args []string) {
return
return
}
}
payload
:=
&
pt
.
ParaNodeGroupApply
{
Op
:
op
,
Addrs
:
addrs
,
CoinsFrozen
:
coins
}
payload
:=
&
pt
.
ParaNodeGroupApply
{
Op
:
op
,
Addrs
:
addrs
,
CoinsFrozen
:
int64
(
math
.
Trunc
((
coins
)
*
1e4
))
*
1e4
}
params
:=
&
rpctypes
.
CreateTxIn
{
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
types
.
ExecName
(
pt
.
ParaX
),
Execer
:
types
.
ExecName
(
pt
.
ParaX
),
ActionName
:
"NodeGroupApply"
,
ActionName
:
"NodeGroupApply"
,
...
@@ -557,7 +559,7 @@ func nodeGroup(cmd *cobra.Command, args []string) {
...
@@ -557,7 +559,7 @@ func nodeGroup(cmd *cobra.Command, args []string) {
title
,
_
:=
cmd
.
Flags
()
.
GetString
(
"title"
)
title
,
_
:=
cmd
.
Flags
()
.
GetString
(
"title"
)
var
res
types
.
ReplyConfig
var
res
types
.
ReplyConfig
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"paracross.GetNodeGroupAddrs"
,
types
.
ReqString
{
Data
:
title
},
&
res
)
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"paracross.GetNodeGroupAddrs"
,
pt
.
ReqParacrossNodeInfo
{
Title
:
title
},
&
res
)
ctx
.
Run
()
ctx
.
Run
()
}
}
...
...
plugin/dapp/paracross/executor/query.go
View file @
030bb98e
...
@@ -50,7 +50,7 @@ func (p *Paracross) Query_GetNodeGroupAddrs(in *pt.ReqParacrossNodeInfo) (types.
...
@@ -50,7 +50,7 @@ func (p *Paracross) Query_GetNodeGroupAddrs(in *pt.ReqParacrossNodeInfo) (types.
nodes
=
append
(
nodes
,
k
)
nodes
=
append
(
nodes
,
k
)
}
}
var
reply
types
.
ReplyConfig
var
reply
types
.
ReplyConfig
reply
.
Key
=
string
(
in
.
GetTitle
()
+
" all addrs"
)
reply
.
Key
=
string
(
key
)
reply
.
Value
=
fmt
.
Sprint
(
nodes
)
reply
.
Value
=
fmt
.
Sprint
(
nodes
)
return
&
reply
,
nil
return
&
reply
,
nil
}
}
...
...
plugin/dapp/paracross/executor/superaccount.go
View file @
030bb98e
...
@@ -15,6 +15,7 @@ import (
...
@@ -15,6 +15,7 @@ import (
"github.com/33cn/chain33/types"
"github.com/33cn/chain33/types"
pt
"github.com/33cn/plugin/plugin/dapp/paracross/types"
pt
"github.com/33cn/plugin/plugin/dapp/paracross/types"
"github.com/pkg/errors"
"github.com/pkg/errors"
"github.com/33cn/chain33/system/dapp"
)
)
var
(
var
(
...
@@ -552,18 +553,20 @@ func (a *action) checkNodeGroupExist(title string) error {
...
@@ -552,18 +553,20 @@ func (a *action) checkNodeGroupExist(title string) error {
func
(
a
*
action
)
nodeGroupCoinsFrozen
(
addrs
[]
string
,
configCoinsFrozen
int64
)
(
*
types
.
Receipt
,
error
)
{
func
(
a
*
action
)
nodeGroupCoinsFrozen
(
addrs
[]
string
,
configCoinsFrozen
int64
)
(
*
types
.
Receipt
,
error
)
{
receipt
:=
&
types
.
Receipt
{}
receipt
:=
&
types
.
Receipt
{}
confCoins
:=
conf
Manager
.
GInt
(
"nodeGroupFrozenCoins"
)
confCoins
:=
conf
.
GInt
(
"nodeGroupFrozenCoins"
)
if
configCoinsFrozen
<
confCoins
{
if
configCoinsFrozen
<
confCoins
{
return
nil
,
pt
.
ErrParaNodeGroupFrozenCoinsNotEnough
return
nil
,
pt
.
ErrParaNodeGroupFrozenCoinsNotEnough
}
}
var
logs
[]
*
types
.
ReceiptLog
var
logs
[]
*
types
.
ReceiptLog
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
realExec
:=
string
(
types
.
GetRealExecName
(
a
.
tx
.
Execer
))
realExecAddr
:=
dapp
.
ExecAddress
(
realExec
)
for
_
,
addr
:=
range
addrs
{
for
_
,
addr
:=
range
addrs
{
receipt
,
err
:=
a
.
coinsAccount
.
ExecFrozen
(
addr
,
a
.
execa
ddr
,
configCoinsFrozen
)
receipt
,
err
:=
a
.
coinsAccount
.
ExecFrozen
(
addr
,
realExecA
ddr
,
configCoinsFrozen
)
if
err
!=
nil
{
if
err
!=
nil
{
clog
.
Error
(
"node group apply"
,
"addr"
,
addr
,
"
execaddr"
,
a
.
execa
ddr
,
"amount"
,
configCoinsFrozen
)
clog
.
Error
(
"node group apply"
,
"addr"
,
addr
,
"
realExec"
,
realExec
,
"realAddr"
,
realExecA
ddr
,
"amount"
,
configCoinsFrozen
)
return
nil
,
err
return
nil
,
err
}
}
logs
=
append
(
logs
,
receipt
.
Logs
...
)
logs
=
append
(
logs
,
receipt
.
Logs
...
)
...
@@ -579,11 +582,13 @@ func (a *action) nodeGroupCoinsActive(addrs []string, configCoinsFrozen int64) (
...
@@ -579,11 +582,13 @@ func (a *action) nodeGroupCoinsActive(addrs []string, configCoinsFrozen int64) (
receipt
:=
&
types
.
Receipt
{}
receipt
:=
&
types
.
Receipt
{}
var
logs
[]
*
types
.
ReceiptLog
var
logs
[]
*
types
.
ReceiptLog
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
realExec
:=
string
(
types
.
GetRealExecName
(
a
.
tx
.
Execer
))
realExecAddr
:=
dapp
.
ExecAddress
(
realExec
)
for
_
,
addr
:=
range
addrs
{
for
_
,
addr
:=
range
addrs
{
receipt
,
err
:=
a
.
coinsAccount
.
ExecActive
(
addr
,
a
.
execa
ddr
,
configCoinsFrozen
)
receipt
,
err
:=
a
.
coinsAccount
.
ExecActive
(
addr
,
realExecA
ddr
,
configCoinsFrozen
)
if
err
!=
nil
{
if
err
!=
nil
{
clog
.
Error
(
"node group apply"
,
"addr"
,
addr
,
"
execaddr"
,
a
.
execa
ddr
,
"amount"
,
configCoinsFrozen
)
clog
.
Error
(
"node group apply"
,
"addr"
,
addr
,
"
realExec"
,
realExec
,
"realAddr"
,
realExecA
ddr
,
"amount"
,
configCoinsFrozen
)
return
nil
,
err
return
nil
,
err
}
}
logs
=
append
(
logs
,
receipt
.
Logs
...
)
logs
=
append
(
logs
,
receipt
.
Logs
...
)
...
@@ -597,7 +602,7 @@ func (a *action) nodeGroupCoinsActive(addrs []string, configCoinsFrozen int64) (
...
@@ -597,7 +602,7 @@ func (a *action) nodeGroupCoinsActive(addrs []string, configCoinsFrozen int64) (
// NodeGroupApply
// NodeGroupApply
func
(
a
*
action
)
nodeGroupApply
(
config
*
pt
.
ParaNodeGroupApply
)
(
*
types
.
Receipt
,
error
)
{
func
(
a
*
action
)
nodeGroupApply
(
config
*
pt
.
ParaNodeGroupApply
)
(
*
types
.
Receipt
,
error
)
{
key
:=
calcParaNodeGroupApplyKey
(
t
itle
)
key
:=
calcParaNodeGroupApplyKey
(
config
.
T
itle
)
status
,
err
:=
getNodeAddr
(
a
.
db
,
key
)
status
,
err
:=
getNodeAddr
(
a
.
db
,
key
)
if
err
!=
nil
&&
!
isNotFound
(
err
)
{
if
err
!=
nil
&&
!
isNotFound
(
err
)
{
return
nil
,
err
return
nil
,
err
...
@@ -633,7 +638,7 @@ func (a *action) nodeGroupApply(config *pt.ParaNodeGroupApply) (*types.Receipt,
...
@@ -633,7 +638,7 @@ func (a *action) nodeGroupApply(config *pt.ParaNodeGroupApply) (*types.Receipt,
}
}
func
(
a
*
action
)
nodeGroupQuit
(
config
*
pt
.
ParaNodeGroupApply
)
(
*
types
.
Receipt
,
error
)
{
func
(
a
*
action
)
nodeGroupQuit
(
config
*
pt
.
ParaNodeGroupApply
)
(
*
types
.
Receipt
,
error
)
{
key
:=
calcParaNodeGroupApplyKey
(
t
itle
)
key
:=
calcParaNodeGroupApplyKey
(
config
.
T
itle
)
status
,
err
:=
getNodeAddr
(
a
.
db
,
key
)
status
,
err
:=
getNodeAddr
(
a
.
db
,
key
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -709,7 +714,7 @@ func (a *action) nodeGroupApprove(config *pt.ParaNodeGroupApply) (*types.Receipt
...
@@ -709,7 +714,7 @@ func (a *action) nodeGroupApprove(config *pt.ParaNodeGroupApply) (*types.Receipt
return
nil
,
types
.
ErrNotAllow
return
nil
,
types
.
ErrNotAllow
}
}
key
:=
calcParaNodeGroupApplyKey
(
t
itle
)
key
:=
calcParaNodeGroupApplyKey
(
config
.
T
itle
)
status
,
err
:=
getNodeAddr
(
a
.
db
,
key
)
status
,
err
:=
getNodeAddr
(
a
.
db
,
key
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -753,11 +758,11 @@ func (a *action) nodeGroupCreate(title string, nodes []string, coinFrozen int64)
...
@@ -753,11 +758,11 @@ func (a *action) nodeGroupCreate(title string, nodes []string, coinFrozen int64)
arr
:=
types
.
ConfigItem_Arr
{
Arr
:
emptyValue
}
arr
:=
types
.
ConfigItem_Arr
{
Arr
:
emptyValue
}
item
.
Value
=
&
arr
item
.
Value
=
&
arr
copyItem
:=
item
item
.
GetArr
()
.
Value
=
append
(
item
.
GetArr
()
.
Value
,
nodes
...
)
item
.
GetArr
()
.
Value
=
append
(
item
.
GetArr
()
.
Value
,
nodes
...
)
item
.
Addr
=
a
.
fromaddr
item
.
Addr
=
a
.
fromaddr
a
.
db
.
Set
(
key
,
types
.
Encode
(
&
item
))
a
.
db
.
Set
(
key
,
types
.
Encode
(
&
item
))
receipt
:=
makeParaNodeGroupReiceipt
(
title
,
&
copyItem
,
&
item
)
receipt
:=
makeParaNodeGroupReiceipt
(
title
,
nil
,
&
item
)
//update addr status
//update addr status
for
_
,
addr
:=
range
nodes
{
for
_
,
addr
:=
range
nodes
{
...
...
plugin/dapp/paracross/executor/superaccount.md
View file @
030bb98e
# paracross 执行器 授权账户管理
# paracross 执行器 授权账户管理
## 场景
## 场景
1.
平行链申请开链之前申请几个授权账户,没有授权账户无法做跨链交易,目前没有押金机制
1.
平行链申请开链之前申请几个授权账户作为超级节点,没有授权账户无法做跨链交易
1.
申请超级节点需要在主链冻结一定资金,超级节点用户需要在主链先把一定的币转到paracross合约,再在平行链申请
1.
主链超级用户会分别向主链和平行链的manager合约发送账户添加tx,作为平行链的初始授权账户
1.
主链超级用户会分别向主链和平行链的manager合约发送账户添加tx,作为平行链的初始授权账户
1.
平行链开链后在做跨链tx之前需要任何一个初始授权账户在平行链上发送takeover tx把初始授权账户接管到平行链,
1.
平行链开链后在做跨链tx之前需要任何一个初始授权账户在平行链上发送takeover tx把初始授权账户接管到平行链,
由平行链自己管理,如果不发送接管tx,平行链跨链无法完成
由平行链自己管理,如果不发送接管tx,平行链跨链无法完成
...
...
plugin/dapp/paracross/rpc/rpc.go
View file @
030bb98e
...
@@ -251,7 +251,7 @@ func (c *Jrpc) GetNodeGroupStatus(req *pt.ReqParacrossNodeInfo, result *interfac
...
@@ -251,7 +251,7 @@ func (c *Jrpc) GetNodeGroupStatus(req *pt.ReqParacrossNodeInfo, result *interfac
//ListNodeStatus list super node by status
//ListNodeStatus list super node by status
func
(
c
*
channelClient
)
ListNodeGroupStatus
(
ctx
context
.
Context
,
req
*
pt
.
ReqParacrossNodeInfo
)
(
*
pt
.
RespParacrossNodeAddrs
,
error
)
{
func
(
c
*
channelClient
)
ListNodeGroupStatus
(
ctx
context
.
Context
,
req
*
pt
.
ReqParacrossNodeInfo
)
(
*
pt
.
RespParacrossNodeAddrs
,
error
)
{
r
:=
*
req
r
:=
*
req
data
,
err
:=
c
.
Query
(
pt
.
GetExecName
(),
"ListNodeGroupStatus
Info
"
,
&
r
)
data
,
err
:=
c
.
Query
(
pt
.
GetExecName
(),
"ListNodeGroupStatus"
,
&
r
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
plugin/dapp/paracross/types/type.go
View file @
030bb98e
...
@@ -64,6 +64,9 @@ func (p *ParacrossType) GetLogMap() map[int64]*types.LogInfo {
...
@@ -64,6 +64,9 @@ func (p *ParacrossType) GetLogMap() map[int64]*types.LogInfo {
TyLogParaNodeConfig
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeConfig
{}),
Name
:
"LogParaNodeConfig"
},
TyLogParaNodeConfig
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeConfig
{}),
Name
:
"LogParaNodeConfig"
},
TyLogParaNodeGroupUpdate
:
{
Ty
:
reflect
.
TypeOf
(
types
.
ReceiptConfig
{}),
Name
:
"LogParaNodeGroupUpdate"
},
TyLogParaNodeGroupUpdate
:
{
Ty
:
reflect
.
TypeOf
(
types
.
ReceiptConfig
{}),
Name
:
"LogParaNodeGroupUpdate"
},
TyLogParaNodeVoteDone
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeVoteDone
{}),
Name
:
"LogParaNodeVoteDone"
},
TyLogParaNodeVoteDone
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeVoteDone
{}),
Name
:
"LogParaNodeVoteDone"
},
TyLogParaNodeGroupApply
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeConfig
{}),
Name
:
"LogParaNodeGroupApply"
},
TyLogParaNodeGroupApprove
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeConfig
{}),
Name
:
"LogParaNodeGroupApprove"
},
TyLogParaNodeGroupQuit
:
{
Ty
:
reflect
.
TypeOf
(
ReceiptParaNodeConfig
{}),
Name
:
"LogParaNodeGroupQuit"
},
}
}
}
}
...
@@ -78,6 +81,7 @@ func (p *ParacrossType) GetTypeMap() map[string]int32 {
...
@@ -78,6 +81,7 @@ func (p *ParacrossType) GetTypeMap() map[string]int32 {
"Withdraw"
:
ParacrossActionWithdraw
,
"Withdraw"
:
ParacrossActionWithdraw
,
"TransferToExec"
:
ParacrossActionTransferToExec
,
"TransferToExec"
:
ParacrossActionTransferToExec
,
"NodeConfig"
:
ParacrossActionNodeConfig
,
"NodeConfig"
:
ParacrossActionNodeConfig
,
"NodeGroupConfig"
:
ParacrossActionNodeGroupApply
,
}
}
}
}
...
@@ -127,7 +131,8 @@ func (p ParacrossType) CreateTx(action string, message json.RawMessage) (*types.
...
@@ -127,7 +131,8 @@ func (p ParacrossType) CreateTx(action string, message json.RawMessage) (*types.
return
nil
,
types
.
ErrNotSupport
return
nil
,
types
.
ErrNotSupport
}
}
var
param
ParaNodeGroupApply
var
param
ParaNodeGroupApply
err
:=
json
.
Unmarshal
(
message
,
&
param
)
err
:=
types
.
JSONToPB
(
message
,
&
param
)
//err := json.Unmarshal(message, ¶m)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Error
(
"CreateTx.NodeGroupApply"
,
"Error"
,
err
)
glog
.
Error
(
"CreateTx.NodeGroupApply"
,
"Error"
,
err
)
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
...
...
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