Skip to content

Commit 48f714b

Browse files
committed
update ChallengeMgt
1 parent c1ad66d commit 48f714b

File tree

5 files changed

+38
-33
lines changed

5 files changed

+38
-33
lines changed

configs/system.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const (
2222
// Name is the name of the program
2323
Name = "miner"
2424
// version
25-
Version = "v0.8.2 2502111357-1739253444"
25+
Version = "v0.8.2 2502131402-1739426530376"
2626
// Description is the description of the program
2727
Description = "Storage miner implementation in CESS networks"
2828
// NameSpace is the cached namespace

node/challenge.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,16 @@ import (
1111
"fmt"
1212

1313
"github.com/CESSProject/cess-go-sdk/chain"
14+
"github.com/CESSProject/cess-miner/pkg/utils"
1415
)
1516

1617
func (n *Node) ChallengeMgt(idleChallTaskCh chan bool, serviceChallTaskCh chan bool) {
18+
defer func() {
19+
if err := recover(); err != nil {
20+
n.Pnc(utils.RecoverError(err))
21+
}
22+
}()
23+
1724
haveChall, challenge, err := n.QueryChallengeSnapShot(n.GetSignatureAccPulickey(), -1)
1825
if err != nil {
1926
if err.Error() != chain.ERR_Empty {

node/chlgidle.go

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -143,15 +143,9 @@ func (n *Node) idleChallenge(
143143
var previousHash []byte
144144
if minerChallFront == minerChallRear {
145145
idleProofRecord.IdleProof = []types.U8{}
146-
for i := 0; i < 3; i++ {
147-
txhash, err := n.SubmitIdleProof([]types.U8{})
148-
if err != nil {
149-
n.Ichal("err", fmt.Sprintf("[SubmitIdleProof] %v", err))
150-
time.Sleep(time.Minute)
151-
continue
152-
}
153-
n.Ichal("info", fmt.Sprintf("SubmitIdleProof: %s", txhash))
154-
break
146+
err = n.submitIdleProof([]types.U8{}, slip)
147+
if err != nil {
148+
n.Ichal("err", fmt.Sprintf("[SubmitIdleProof] %v", err))
155149
}
156150
idleProofRecord.CanSubmintProof = false
157151
idleProofRecord.CanSubmintResult = false
@@ -273,6 +267,10 @@ func (n *Node) idleChallenge(
273267
err = n.submitIdleProof(idleProofChain, slip)
274268
if err != nil {
275269
n.Ichal("err", err.Error())
270+
idleProofRecord.CanSubmintProof = false
271+
idleProofRecord.CanSubmintResult = false
272+
n.SaveIdleProve(idleProofRecord)
273+
return
276274
}
277275

278276
idleProofRecord.CanSubmintProof = false
@@ -305,18 +303,15 @@ func (n *Node) submitIdleProof(idleProof []types.U8, slip uint32) error {
305303
latestBlock, err := n.GetSubstrateAPI().RPC.Chain.GetBlockLatest()
306304
if err == nil {
307305
if slip < uint32(latestBlock.Block.Header.Number) {
308-
return nil
306+
return fmt.Errorf("challenge expired")
309307
}
310308
}
311309
for i := 0; i < 3; i++ {
312310
n.Ichal("info", fmt.Sprintf("[start sub] %v", time.Now()))
313311
blockHash, err = n.SubmitIdleProof(idleProof)
314-
n.Ichal("info", fmt.Sprintf("[end sub]: %s", blockHash))
315-
if err == nil && blockHash != "" {
316-
return nil
317-
}
312+
n.Ichal("info", fmt.Sprintf("[end sub] hash: %s err: %v", blockHash, err))
318313

319-
time.Sleep(chain.BlockInterval * 3)
314+
time.Sleep(chain.BlockInterval)
320315

321316
_, challInfo, err = n.QueryChallengeSnapShot(n.GetSignatureAccPulickey(), -1)
322317
if err != nil {
@@ -327,10 +322,7 @@ func (n *Node) submitIdleProof(idleProof []types.U8, slip uint32) error {
327322
}
328323

329324
if challInfo.ProveInfo.IdleProve.HasValue() {
330-
_, idleProve := challInfo.ProveInfo.IdleProve.Unwrap()
331-
if len(idleProve.IdleProve) > 0 {
332-
return nil
333-
}
325+
return nil
334326
}
335327
}
336328
return fmt.Errorf("submitIdleProof failed: %v", err)

node/chlgservice.go

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chai
118118
err = n.submitServiceProof([]types.U8{}, slip)
119119
if err != nil {
120120
n.Schal("err", err.Error())
121+
serviceProofRecord.CanSubmitProof = false
122+
serviceProofRecord.CanSubmitResult = false
123+
n.SaveServiceProve(serviceProofRecord)
124+
return
121125
}
122126

123127
serviceProofRecord.CanSubmitProof = false
@@ -154,6 +158,10 @@ func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chai
154158
err = n.submitServiceProof(proof, slip)
155159
if err != nil {
156160
n.Schal("err", err.Error())
161+
serviceProofRecord.CanSubmitProof = false
162+
serviceProofRecord.CanSubmitResult = false
163+
n.SaveServiceProve(serviceProofRecord)
164+
return
157165
}
158166

159167
serviceProofRecord.CanSubmitProof = false
@@ -184,6 +192,10 @@ func (n *Node) serviceChallenge(ch chan<- bool, rndIndex []types.U32, rnd []chai
184192
err = n.submitServiceProof(proof, slip)
185193
if err != nil {
186194
n.Schal("err", err.Error())
195+
serviceProofRecord.CanSubmitProof = false
196+
serviceProofRecord.CanSubmitResult = false
197+
n.SaveServiceProve(serviceProofRecord)
198+
return
187199
}
188200

189201
serviceProofRecord.CanSubmitProof = false
@@ -221,7 +233,7 @@ func (n *Node) submitServiceResult(result types.Bool, sign []byte, bloomFilter c
221233
return nil
222234
}
223235
n.Schal("err", fmt.Sprintf("[SubmitServiceProofResult] hash: %s, err: %v", blockHash, err))
224-
time.Sleep(time.Minute)
236+
time.Sleep(time.Second * 6)
225237
continue
226238
}
227239
return fmt.Errorf("submitServiceProof failed: %v", err)
@@ -236,19 +248,16 @@ func (n *Node) submitServiceProof(serviceProof []types.U8, slip uint32) error {
236248
latestBlock, err := n.GetSubstrateAPI().RPC.Chain.GetBlockLatest()
237249
if err == nil {
238250
if slip < uint32(latestBlock.Block.Header.Number) {
239-
return nil
251+
return fmt.Errorf("challenge expired")
240252
}
241253
}
242254

243255
for i := 0; i < 3; i++ {
244256
n.Schal("info", fmt.Sprintf("[start SubmitServiceProof] %v", time.Now()))
245257
blockHash, err = n.SubmitServiceProof(serviceProof)
246-
n.Schal("info", fmt.Sprintf("[end SubmitServiceProof] %v %s", time.Now(), blockHash))
247-
if err == nil && blockHash != "" {
248-
return nil
249-
}
258+
n.Schal("info", fmt.Sprintf("[end SubmitServiceProof] hash: %s err: %v", blockHash, err))
250259

251-
time.Sleep(chain.BlockInterval * 3)
260+
time.Sleep(chain.BlockInterval)
252261

253262
_, challInfo, err = n.QueryChallengeSnapShot(n.GetSignatureAccPulickey(), -1)
254263
if err != nil {
@@ -259,10 +268,7 @@ func (n *Node) submitServiceProof(serviceProof []types.U8, slip uint32) error {
259268
}
260269

261270
if challInfo.ProveInfo.ServiceProve.HasValue() {
262-
_, serviceProve := challInfo.ProveInfo.ServiceProve.Unwrap()
263-
if len(serviceProve.ServiceProve) > 0 {
264-
return nil
265-
}
271+
return nil
266272
}
267273
}
268274
return fmt.Errorf("submitServiceProof failed: %v", err)

node/common/types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ type IdleProofInfo struct {
4040
Acc []byte `json:"acc"`
4141
TotalSignature []byte `json:"totalSignature"`
4242
ChallRandom []int64 `json:"challRandom"`
43-
FileBlockProofInfo []FileBlockProofInfo
44-
BlocksProof []*pb.BlocksProof
43+
FileBlockProofInfo []FileBlockProofInfo `json:"fileBlockProofInfo"`
44+
BlocksProof []*pb.BlocksProof `json:"blocksProof"`
4545
}
4646

4747
type ServiceProofInfo struct {

0 commit comments

Comments
 (0)