Commit f11abc5b authored by mdj33's avatar mdj33 Committed by vipwzw

add group id op

parent 7ce3ee2b
...@@ -77,7 +77,7 @@ func getConfigManageNodes(db dbm.KV, title string) (map[string]struct{}, []strin ...@@ -77,7 +77,7 @@ func getConfigManageNodes(db dbm.KV, title string) (map[string]struct{}, []strin
} }
func getParacrossNodes(db dbm.KV, title string) (map[string]struct{}, []string, error) { func getParacrossNodes(db dbm.KV, title string) (map[string]struct{}, []string, error) {
key := calcParaNodeGroupKey(title) key := calcParaNodeGroupAddrsKey(title)
return getNodes(db, key) return getNodes(db, key)
} }
......
...@@ -91,7 +91,7 @@ func (e *Paracross) ExecLocal_NodeGroupConfig(payload *pt.ParaNodeGroupConfig, t ...@@ -91,7 +91,7 @@ func (e *Paracross) ExecLocal_NodeGroupConfig(payload *pt.ParaNodeGroupConfig, t
var set types.LocalDBSet var set types.LocalDBSet
for _, log := range receiptData.Logs { for _, log := range receiptData.Logs {
if log.Ty == pt.TyLogParaNodeGroupApply || log.Ty == pt.TyLogParaNodeGroupApprove || if log.Ty == pt.TyLogParaNodeGroupApply || log.Ty == pt.TyLogParaNodeGroupApprove ||
log.Ty == pt.TyLogParaNodeGroupQuit { log.Ty == pt.TyLogParaNodeGroupQuit || log.Ty == pt.TyLogParaNodeGroupModify {
var g pt.ReceiptParaNodeGroupConfig var g pt.ReceiptParaNodeGroupConfig
err := types.Decode(log.Log, &g) err := types.Decode(log.Log, &g)
if err != nil { if err != nil {
......
...@@ -16,7 +16,9 @@ var ( ...@@ -16,7 +16,9 @@ var (
managerConfigNodes string //manager 合约配置的nodes managerConfigNodes string //manager 合约配置的nodes
paraConfigNodes string //平行链自组织配置的nodes,最初是从manager同步过来 paraConfigNodes string //平行链自组织配置的nodes,最初是从manager同步过来
paraConfigNodeAddr string //平行链配置节点账户 paraConfigNodeAddr string //平行链配置节点账户
paraNodeGroupApplyAddrs string paraNodeGroupStatusAddrs string //正在申请的addrs
paraNodeId string
paraNodeGroupId string
localTx string localTx string
localTitle string localTitle string
localTitleHeight string localTitleHeight string
...@@ -32,7 +34,9 @@ func setPrefix() { ...@@ -32,7 +34,9 @@ func setPrefix() {
managerConfigNodes = "paracross-nodes-" managerConfigNodes = "paracross-nodes-"
paraConfigNodes = "mavl-paracross-nodes-title-" paraConfigNodes = "mavl-paracross-nodes-title-"
paraConfigNodeAddr = "mavl-paracross-nodes-titleAddr-" paraConfigNodeAddr = "mavl-paracross-nodes-titleAddr-"
paraNodeGroupApplyAddrs = "mavl-paracross-nodegroup-apply-title-" paraNodeGroupStatusAddrs = "mavl-paracross-nodegroup-apply-title-"
paraNodeId = "mavl-paracross-title-nodeid-"
paraNodeGroupId = "mavl-paracross-title-nodegroupid-"
localTx = "LODB-paracross-titleHeightAddr-" localTx = "LODB-paracross-titleHeightAddr-"
localTitle = "LODB-paracross-title-" localTitle = "LODB-paracross-title-"
localTitleHeight = "LODB-paracross-titleHeight-" localTitleHeight = "LODB-paracross-titleHeight-"
...@@ -62,7 +66,7 @@ func calcManageConfigNodesKey(title string) []byte { ...@@ -62,7 +66,7 @@ func calcManageConfigNodesKey(title string) []byte {
return []byte(types.ManageKey(key)) return []byte(types.ManageKey(key))
} }
func calcParaNodeGroupKey(title string) []byte { func calcParaNodeGroupAddrsKey(title string) []byte {
return []byte(fmt.Sprintf(paraConfigNodes+"%s", title)) return []byte(fmt.Sprintf(paraConfigNodes+"%s", title))
} }
...@@ -70,8 +74,16 @@ func calcParaNodeAddrKey(title string, addr string) []byte { ...@@ -70,8 +74,16 @@ func calcParaNodeAddrKey(title string, addr string) []byte {
return []byte(fmt.Sprintf(paraConfigNodeAddr+"%s-%s", title, addr)) return []byte(fmt.Sprintf(paraConfigNodeAddr+"%s-%s", title, addr))
} }
func calcParaNodeGroupApplyKey(title string) []byte { func calcParaNodeGroupStatusKey(title string) []byte {
return []byte(fmt.Sprintf(paraNodeGroupApplyAddrs+"%s", title)) return []byte(fmt.Sprintf(paraNodeGroupStatusAddrs+"%s", title))
}
func calcParaNodeIdKey(title, hash string) string {
return fmt.Sprintf(paraNodeId+"%s-%s", title, hash)
}
func calcParaNodeGroupIdKey(title, hash string) string {
return fmt.Sprintf(paraNodeGroupId+"%s-%s", title, hash)
} }
func calcLocalTxKey(title string, height int64, addr string) []byte { func calcLocalTxKey(title string, height int64, addr string) []byte {
......
...@@ -75,7 +75,7 @@ func (p *Paracross) Query_GetNodeGroupAddrs(in *pt.ReqParacrossNodeInfo) (types. ...@@ -75,7 +75,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(calcParaNodeGroupKey(in.GetTitle())) reply.Key = string(calcParaNodeGroupAddrsKey(in.GetTitle()))
reply.Value = fmt.Sprint(nodes) reply.Value = fmt.Sprint(nodes)
return &reply, nil return &reply, nil
} }
......
...@@ -74,7 +74,7 @@ func (suite *NodeManageTestSuite) SetupSuite() { ...@@ -74,7 +74,7 @@ func (suite *NodeManageTestSuite) SetupSuite() {
} }
func (suite *NodeManageTestSuite) TestSetup() { func (suite *NodeManageTestSuite) TestSetup() {
nodeConfigKey := calcParaNodeGroupKey(Title) nodeConfigKey := calcParaNodeGroupAddrsKey(Title)
suite.T().Log(string(nodeConfigKey)) suite.T().Log(string(nodeConfigKey))
_, err := suite.stateDB.Get(nodeConfigKey) _, err := suite.stateDB.Get(nodeConfigKey)
if err != nil { if err != nil {
...@@ -139,7 +139,7 @@ func checkJoinReceipt(suite *NodeManageTestSuite, receipt *types.Receipt) { ...@@ -139,7 +139,7 @@ func checkJoinReceipt(suite *NodeManageTestSuite, receipt *types.Receipt) {
assert.Nil(suite.T(), err, "decode ParaNodeAddrStatus failed") assert.Nil(suite.T(), err, "decode ParaNodeAddrStatus failed")
//suite.T().Log("titleHeight", titleHeight) //suite.T().Log("titleHeight", titleHeight)
assert.Equal(suite.T(), int32(pt.TyLogParaNodeConfig), receipt.Logs[0].Ty) assert.Equal(suite.T(), int32(pt.TyLogParaNodeConfig), receipt.Logs[0].Ty)
assert.Equal(suite.T(), int32(pt.ParacrossNodeAdding), stat.Status) assert.Equal(suite.T(), int32(pt.ParacrossNodeJoining), stat.Status)
assert.NotNil(suite.T(), stat.Votes) assert.NotNil(suite.T(), stat.Votes)
} }
...@@ -310,22 +310,22 @@ func (suite *NodeManageTestSuite) TearDownSuite() { ...@@ -310,22 +310,22 @@ func (suite *NodeManageTestSuite) TearDownSuite() {
func TestGetAddrGroup(t *testing.T) { func TestGetAddrGroup(t *testing.T) {
addrs := " 1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4, 1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR, 1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k, ,,, 1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs , " addrs := " 1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4, 1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR, 1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k, ,,, 1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs , "
retAddrs := getAddrGroup(addrs) retAddrs := getConfigAddrs(addrs)
expectAddrs := []string{"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4", "1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR", "1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k", "1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs"} expectAddrs := []string{"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4", "1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR", "1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k", "1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs"}
assert.Equal(t, expectAddrs, retAddrs) assert.Equal(t, expectAddrs, retAddrs)
addrs = " 1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4 , , " addrs = " 1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4 , , "
retAddrs = getAddrGroup(addrs) retAddrs = getConfigAddrs(addrs)
expectAddrs = []string{"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"} expectAddrs = []string{"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"}
assert.Equal(t, expectAddrs, retAddrs) assert.Equal(t, expectAddrs, retAddrs)
addrs = " , " addrs = " , "
ret := getAddrGroup(addrs) ret := getConfigAddrs(addrs)
assert.Equal(t, []string(nil), ret) assert.Equal(t, []string(nil), ret)
assert.Equal(t, 0, len(ret)) assert.Equal(t, 0, len(ret))
addrs = " " addrs = " "
ret = getAddrGroup(addrs) ret = getConfigAddrs(addrs)
assert.Equal(t, []string(nil), ret) assert.Equal(t, []string(nil), ret)
assert.Equal(t, 0, len(ret)) assert.Equal(t, 0, len(ret))
......
...@@ -50,9 +50,10 @@ message ParacrossConsensusStatus { ...@@ -50,9 +50,10 @@ message ParacrossConsensusStatus {
message ParaNodeAddrConfig{ message ParaNodeAddrConfig{
string title = 1; string title = 1;
string op = 2; string op = 2;
string addr = 3; string id = 3;
string value = 4; string addr = 4;
int64 coinsFrozen = 5; string value = 5;
int64 coinsFrozen = 6;
} }
...@@ -62,12 +63,13 @@ message ParaNodeVoteDetail{ ...@@ -62,12 +63,13 @@ message ParaNodeVoteDetail{
} }
message ParaNodeAddrStatus{ message ParaNodeAddrStatus{
int32 status = 1; string id = 1;
string title = 2; int32 status = 2;
string applyAddr = 3; string title = 3;
int64 coinsFrozen = 4; string applyAddr = 4;
ParaNodeVoteDetail votes = 5; int64 coinsFrozen = 5;
string fromAddr = 6; ParaNodeVoteDetail votes = 6;
string fromAddr = 7;
} }
...@@ -78,40 +80,38 @@ message ReceiptParaNodeConfig { ...@@ -78,40 +80,38 @@ message ReceiptParaNodeConfig {
ParaNodeAddrStatus current = 4; ParaNodeAddrStatus current = 4;
} }
message ReceiptParaNodeVoteRecord {
string fromAddr = 1;
string voteAddr = 2;
int32 value = 3;
}
message ReceiptParaNodeVoteDone { message ReceiptParaNodeVoteDone {
string title = 1; string id = 1;
string targetAddr = 2; string title = 2;
int32 totalNodes = 3; string targetAddr = 3;
int32 totalVote = 4; int32 totalNodes = 4;
int32 mostVote = 5; int32 totalVote = 5;
string voteRst = 6; int32 mostVote = 6;
int32 doneStatus = 7; string voteRst = 7;
int32 doneStatus = 8;
} }
message ParaNodeGroupConfig { message ParaNodeGroupConfig {
string title = 1; string title = 1;
uint32 op = 2; uint32 op = 2;
string addrs = 3; string id = 3;
int64 coinsFrozen = 4; string addrs = 4;
uint32 emptyBlockInterval = 5; int64 coinsFrozen = 5;
uint32 emptyBlockInterval = 6;
} }
message ParaNodeGroupStatus { message ParaNodeGroupStatus {
int32 status = 1; string id = 1;
string title = 2; int32 status = 2;
string applyAddr = 3; string title = 3;
int64 coinsFrozen = 4; string applyAddrs = 4;
uint32 emptyBlockInterval = 5; int64 coinsFrozen = 5;
int64 mainHeight = 6; uint32 emptyBlockInterval = 6;
string fromAddr = 7; int64 mainHeight = 7;
string fromAddr = 8;
} }
message ReceiptParaNodeGroupConfig { message ReceiptParaNodeGroupConfig {
......
...@@ -47,8 +47,6 @@ var ( ...@@ -47,8 +47,6 @@ var (
ErrParaNodeGroupFrozenCoinsNotEnough = errors.New("ErrParaNodeGroupFrozenCoinsNotEnough") ErrParaNodeGroupFrozenCoinsNotEnough = errors.New("ErrParaNodeGroupFrozenCoinsNotEnough")
//ErrParaNodeGroupStatusWrong node group process wrong status //ErrParaNodeGroupStatusWrong node group process wrong status
ErrParaNodeGroupStatusWrong = errors.New("ErrParaNodeGroupStatusWrong") ErrParaNodeGroupStatusWrong = errors.New("ErrParaNodeGroupStatusWrong")
//ErrParaNodeGroupAddrNotMatch group addrs not match with apply
ErrParaNodeGroupAddrNotMatch = errors.New("ErrParaNodeGroupAddrNotMatch")
//ErrParaConsensStopBlocksNotReach consensus stop blocks not reach //ErrParaConsensStopBlocksNotReach consensus stop blocks not reach
ErrParaConsensStopBlocksNotReach = errors.New("ErrParaConsensStopBlocksNotReach") ErrParaConsensStopBlocksNotReach = errors.New("ErrParaConsensStopBlocksNotReach")
) )
...@@ -39,10 +39,12 @@ const ( ...@@ -39,10 +39,12 @@ const (
// TyLogParaNodeConfig config super node log key // TyLogParaNodeConfig config super node log key
TyLogParaNodeConfig = 657 TyLogParaNodeConfig = 657
TyLogParaNodeVoteDone = 658 TyLogParaNodeVoteDone = 658
TyLogParaNodeGroupUpdate = 659 TyLogParaNodeGroupAddrsUpdate = 659
TyLogParaNodeGroupApply = 660 TyLogParaNodeGroupApply = 660
TyLogParaNodeGroupApprove = 661 TyLogParaNodeGroupApprove = 661
TyLogParaNodeGroupQuit = 662 TyLogParaNodeGroupQuit = 662
TyLogParaNodeGroupModify = 663
TyLogParaNodeGroupStatusUpdate = 664
) )
type paracrossCommitTx struct { type paracrossCommitTx struct {
...@@ -99,10 +101,10 @@ const ( ...@@ -99,10 +101,10 @@ const (
) )
const ( const (
// ParacrossNodeAdding apply for adding group // ParacrossNodeJoining apply for adding group
ParacrossNodeAdding = iota + 1 ParacrossNodeJoining = iota + 1
// ParacrossNodeAdded pass to add by votes // ParacrossNodeJoined pass to add by votes
ParacrossNodeAdded ParacrossNodeJoined
// ParacrossNodeQuiting apply for quiting // ParacrossNodeQuiting apply for quiting
ParacrossNodeQuiting ParacrossNodeQuiting
// ParacrossNodeQuited pass to quite by votes // ParacrossNodeQuited pass to quite by votes
...@@ -116,6 +118,8 @@ const ( ...@@ -116,6 +118,8 @@ const (
ParacrossNodeGroupApprove ParacrossNodeGroupApprove
//ParacrossNodeGroupQuit applyer quit the apply when not be approved //ParacrossNodeGroupQuit applyer quit the apply when not be approved
ParacrossNodeGroupQuit ParacrossNodeGroupQuit
//ParacrossNodeGroupModify applyer modify some parameters
ParacrossNodeGroupModify
) )
var ( var (
......
...@@ -62,11 +62,13 @@ func (p *ParacrossType) GetLogMap() map[int64]*types.LogInfo { ...@@ -62,11 +62,13 @@ func (p *ParacrossType) GetLogMap() map[int64]*types.LogInfo {
TyLogParaAssetDeposit: {Ty: reflect.TypeOf(types.ReceiptAccountTransfer{}), Name: "LogParaAssetDeposit"}, TyLogParaAssetDeposit: {Ty: reflect.TypeOf(types.ReceiptAccountTransfer{}), Name: "LogParaAssetDeposit"},
TyLogParacrossMiner: {Ty: reflect.TypeOf(ReceiptParacrossMiner{}), Name: "LogParacrossMiner"}, TyLogParacrossMiner: {Ty: reflect.TypeOf(ReceiptParacrossMiner{}), Name: "LogParacrossMiner"},
TyLogParaNodeConfig: {Ty: reflect.TypeOf(ReceiptParaNodeConfig{}), Name: "LogParaNodeConfig"}, TyLogParaNodeConfig: {Ty: reflect.TypeOf(ReceiptParaNodeConfig{}), Name: "LogParaNodeConfig"},
TyLogParaNodeGroupUpdate: {Ty: reflect.TypeOf(types.ReceiptConfig{}), Name: "LogParaNodeGroupUpdate"}, TyLogParaNodeGroupAddrsUpdate: {Ty: reflect.TypeOf(types.ReceiptConfig{}), Name: "LogParaNodeGroupAddrsUpdate"},
TyLogParaNodeVoteDone: {Ty: reflect.TypeOf(ReceiptParaNodeVoteDone{}), Name: "LogParaNodeVoteDone"}, TyLogParaNodeVoteDone: {Ty: reflect.TypeOf(ReceiptParaNodeVoteDone{}), Name: "LogParaNodeVoteDone"},
TyLogParaNodeGroupApply: {Ty: reflect.TypeOf(ReceiptParaNodeGroupConfig{}), Name: "LogParaNodeGroupApply"}, TyLogParaNodeGroupApply: {Ty: reflect.TypeOf(ReceiptParaNodeGroupConfig{}), Name: "LogParaNodeGroupApply"},
TyLogParaNodeGroupApprove: {Ty: reflect.TypeOf(ReceiptParaNodeGroupConfig{}), Name: "LogParaNodeGroupApprove"}, TyLogParaNodeGroupApprove: {Ty: reflect.TypeOf(ReceiptParaNodeGroupConfig{}), Name: "LogParaNodeGroupApprove"},
TyLogParaNodeGroupQuit: {Ty: reflect.TypeOf(ReceiptParaNodeGroupConfig{}), Name: "LogParaNodeGroupQuit"}, TyLogParaNodeGroupQuit: {Ty: reflect.TypeOf(ReceiptParaNodeGroupConfig{}), Name: "LogParaNodeGroupQuit"},
TyLogParaNodeGroupModify: {Ty: reflect.TypeOf(ReceiptParaNodeGroupConfig{}), Name: "LogParaNodeGroupModify"},
TyLogParaNodeGroupStatusUpdate: {Ty: reflect.TypeOf(ReceiptParaNodeGroupConfig{}), Name: "LogParaNodeGroupStatusUpdate"},
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment