mirror of
https://github.com/QuilibriumNetwork/ceremonyclient.git
synced 2026-02-21 18:37:26 +08:00
make proving check the prior landed
This commit is contained in:
parent
5679b19fdb
commit
cb0918212e
@ -546,6 +546,7 @@ func (e *DataClockConsensusEngine) Start() <-chan error {
|
||||
}
|
||||
}
|
||||
|
||||
var previousTreeFrame uint64
|
||||
var previousTree *mt.MerkleTree
|
||||
|
||||
for e.state < consensus.EngineStateStopping {
|
||||
@ -560,19 +561,33 @@ func (e *DataClockConsensusEngine) Start() <-chan error {
|
||||
}
|
||||
|
||||
frame = nextFrame
|
||||
_, triesAtFrame, err := e.clockStore.GetDataClockFrame(
|
||||
e.filter,
|
||||
frame.FrameNumber,
|
||||
false,
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
modulo := len(clients)
|
||||
|
||||
for i, trie := range triesAtFrame[1:] {
|
||||
outer:
|
||||
for i, trie := range e.GetFrameProverTries()[1:] {
|
||||
if trie.Contains(peerProvingKeyAddress) {
|
||||
if previousTree != nil {
|
||||
_, prfs, err := e.coinStore.GetPreCoinProofsForOwner(
|
||||
peerProvingKeyAddress,
|
||||
)
|
||||
if err != nil {
|
||||
e.logger.Error("error while fetching proofs", zap.Error(err))
|
||||
break
|
||||
}
|
||||
|
||||
for _, pr := range prfs {
|
||||
if len(pr.Commitment) == 40 &&
|
||||
!bytes.Equal(pr.Commitment[:32], previousTree.Root) {
|
||||
if frame.FrameNumber > previousTreeFrame+5 {
|
||||
previousTree = nil
|
||||
previousTreeFrame = 0
|
||||
}
|
||||
break outer
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
e.logger.Info("creating data shard ring proof", zap.Int("ring", i))
|
||||
outputs := e.PerformTimeProof(frame, frame.Difficulty, clients)
|
||||
proofTree, payload, output := tries.PackOutputIntoPayloadAndProof(
|
||||
@ -582,6 +597,7 @@ func (e *DataClockConsensusEngine) Start() <-chan error {
|
||||
previousTree,
|
||||
)
|
||||
previousTree = proofTree
|
||||
previousTreeFrame = frame.FrameNumber
|
||||
|
||||
sig, err := e.pubSub.SignMessage(
|
||||
payload,
|
||||
|
||||
@ -3,7 +3,6 @@ package application
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
"math/big"
|
||||
|
||||
"github.com/iden3/go-iden3-crypto/poseidon"
|
||||
@ -230,7 +229,6 @@ func (a *TokenApplication) handleMint(
|
||||
}
|
||||
|
||||
wesoProver := crypto.NewWesolowskiFrameProver(a.Logger)
|
||||
fmt.Printf("%x\n", individualChallenge)
|
||||
if bytes.Equal(leaf, bytes.Repeat([]byte{0x00}, 516)) ||
|
||||
!wesoProver.VerifyChallengeProof(
|
||||
individualChallenge,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user