Skip to content

Commit 21317dc

Browse files
committed
update serviceChallenge
1 parent dcc43fa commit 21317dc

File tree

2 files changed

+60
-32
lines changed

2 files changed

+60
-32
lines changed

node/challenge.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ func (n *Node) ChallengeMgt(idleChallTaskCh chan bool, serviceChallTaskCh chan b
9696
challenge.ChallengeElement.ServiceParam.Index,
9797
challenge.ChallengeElement.ServiceParam.Value,
9898
uint32(challenge.ChallengeElement.Start),
99-
true,
10099
)
101100
}
102101
}
@@ -112,7 +111,6 @@ func (n *Node) ChallengeMgt(idleChallTaskCh chan bool, serviceChallTaskCh chan b
112111
challenge.ChallengeElement.ServiceParam.Index,
113112
challenge.ChallengeElement.ServiceParam.Value,
114113
uint32(challenge.ChallengeElement.Start),
115-
false,
116114
)
117115
}
118116
}

node/chlgservice.go

Lines changed: 60 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"github.com/CESSProject/cess-go-sdk/chain"
2222
sutils "github.com/CESSProject/cess-go-sdk/utils"
2323
"github.com/CESSProject/cess-miner/configs"
24-
"github.com/CESSProject/cess-miner/node/common"
2524
"github.com/CESSProject/cess-miner/pkg/com"
2625
"github.com/CESSProject/cess-miner/pkg/com/pb"
2726
"github.com/CESSProject/cess-miner/pkg/utils"
@@ -37,7 +36,7 @@ type challengedFile struct {
3736
Fragments []string
3837
}
3938

40-
func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chain.Random, chlgStart uint32, isSubmitProof bool) {
39+
func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chain.Random, chlgStart uint32) {
4140
defer func() {
4241
ch <- true
4342
n.SetServiceChallenging(false)
@@ -47,13 +46,41 @@ func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chai
4746
}()
4847

4948
var err error
50-
if isSubmitProof {
51-
err = n.checkServiceProofRecord(chlgStart)
52-
if err == nil {
49+
50+
serviceProofRecord, err := n.LoadServiceProve()
51+
if err == nil {
52+
if serviceProofRecord.Start != chlgStart {
53+
os.Remove(n.GetServiceProve())
54+
n.Del("info", n.GetServiceProve())
55+
}
56+
57+
if !serviceProofRecord.CanSubmitProof {
58+
if serviceProofRecord.CanSubmitResult {
59+
if serviceProofRecord.SignatureHex != "" {
60+
teeSignBytes, err := hex.DecodeString(serviceProofRecord.SignatureHex)
61+
if err != nil {
62+
return
63+
}
64+
err = n.submitServiceResult(types.Bool(serviceProofRecord.Result), teeSignBytes, serviceProofRecord.BloomFilter, serviceProofRecord.TeePublicKey)
65+
if err != nil {
66+
n.Schal("err", err.Error())
67+
}
68+
serviceProofRecord.CanSubmitResult = false
69+
n.SaveServiceProve(serviceProofRecord)
70+
return
71+
}
72+
}
5373
return
5474
}
5575
}
5676

77+
//if isSubmitProof {
78+
//err = n.checkServiceProofRecord(chlgStart)
79+
//if err == nil {
80+
// return
81+
//}
82+
//}
83+
5784
n.SetServiceChallenging(true)
5885

5986
n.Schal("info", fmt.Sprintf("service file chain challenge: %v", chlgStart))
@@ -71,35 +98,35 @@ func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chai
7198
n.Schal("err", fmt.Sprintf("Save service file challenge random err: %v", err))
7299
}
73100

74-
var serviceProofRecord common.ServiceProofInfo
101+
//var serviceProofRecord common.ServiceProofInfo
75102
serviceProofRecord.Start = chlgStart
76103
serviceProofRecord.CanSubmitProof = true
77104
serviceProofRecord.CanSubmitResult = true
78105

79106
if totalChallengedLength <= 0 {
80-
err = n.submitServiceProof([]types.U8{})
107+
teePuk, teeSign, bloomFilter, result, err := n.verifyEmpty(rndIndex, rnd)
81108
if err != nil {
82109
n.Schal("err", err.Error())
83110
return
84111
}
85112

86-
serviceProofRecord.Proof = []types.U8{}
87-
serviceProofRecord.CanSubmitProof = false
88-
n.SaveServiceProve(serviceProofRecord)
89-
90-
time.Sleep(chain.BlockInterval * 2)
91-
teePuk, teeSign, bloomFilter, result, err := n.verifyEmpty(rndIndex, rnd)
113+
err = n.submitServiceProof([]types.U8{})
92114
if err != nil {
93115
n.Schal("err", err.Error())
94-
return
116+
//return
95117
}
96118

119+
serviceProofRecord.Proof = []types.U8{}
120+
serviceProofRecord.CanSubmitProof = false
121+
//n.SaveServiceProve(serviceProofRecord)
122+
97123
serviceProofRecord.Result = result
98124
serviceProofRecord.BloomFilter = bloomFilter
99125
serviceProofRecord.TeePublicKey = teePuk
100126
serviceProofRecord.SignatureHex = hex.EncodeToString(teeSign)
101127
n.SaveServiceProve(serviceProofRecord)
102128

129+
time.Sleep(chain.BlockInterval * 2)
103130
err = n.submitServiceResult(types.Bool(result), teeSign, bloomFilter, teePuk)
104131
if err != nil {
105132
n.Schal("err", err.Error())
@@ -129,7 +156,7 @@ func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chai
129156
err = n.submitServiceProof(proof)
130157
if err != nil {
131158
n.Schal("err", err.Error())
132-
return
159+
//return
133160
}
134161

135162
serviceProofRecord.CanSubmitProof = false
@@ -162,7 +189,7 @@ func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chai
162189
err = n.submitServiceProof(proof)
163190
if err != nil {
164191
n.Schal("err", err.Error())
165-
return
192+
//return
166193
}
167194

168195
serviceProofRecord.CanSubmitProof = false
@@ -329,24 +356,27 @@ func (n *Node) checkServiceProofRecord(challStart uint32) error {
329356
return errors.New("Local service file challenge record is outdated")
330357
}
331358

332-
if !serviceProofRecord.CanSubmitResult {
333-
return nil
359+
if serviceProofRecord.CanSubmitProof {
360+
return errors.New("not submit proof")
334361
}
335362

336-
n.Schal("info", fmt.Sprintf("local service proof file challenge: %v", serviceProofRecord.Start))
363+
if serviceProofRecord.CanSubmitResult {
337364

338-
if serviceProofRecord.SignatureHex != "" {
339-
teeSignBytes, err := hex.DecodeString(serviceProofRecord.SignatureHex)
340-
if err != nil {
341-
return err
342-
}
343-
err = n.submitServiceResult(types.Bool(serviceProofRecord.Result), teeSignBytes, serviceProofRecord.BloomFilter, serviceProofRecord.TeePublicKey)
344-
if err != nil {
345-
n.Schal("err", err.Error())
365+
n.Schal("info", fmt.Sprintf("local service proof file challenge: %v", serviceProofRecord.Start))
366+
367+
if serviceProofRecord.SignatureHex != "" {
368+
teeSignBytes, err := hex.DecodeString(serviceProofRecord.SignatureHex)
369+
if err != nil {
370+
return err
371+
}
372+
err = n.submitServiceResult(types.Bool(serviceProofRecord.Result), teeSignBytes, serviceProofRecord.BloomFilter, serviceProofRecord.TeePublicKey)
373+
if err != nil {
374+
n.Schal("err", err.Error())
375+
}
376+
serviceProofRecord.CanSubmitResult = false
377+
n.SaveServiceProve(serviceProofRecord)
378+
return nil
346379
}
347-
serviceProofRecord.CanSubmitResult = false
348-
n.SaveServiceProve(serviceProofRecord)
349-
return nil
350380
}
351381

352382
return errors.New("Service proof result not submited")

0 commit comments

Comments
 (0)