mirror of
https://github.com/QuilibriumNetwork/ceremonyclient.git
synced 2026-02-21 18:37:26 +08:00
resolve frame cache issue
This commit is contained in:
parent
9a099009e1
commit
765fe9feda
@ -158,7 +158,7 @@ func (e *DataClockConsensusEngine) runLoop() {
|
||||
}
|
||||
e.frameProverTriesMx.Unlock()
|
||||
|
||||
e.dataTimeReel.Insert(nextFrame, false)
|
||||
e.dataTimeReel.Insert(nextFrame, true)
|
||||
|
||||
if err = e.publishProof(nextFrame); err != nil {
|
||||
e.logger.Error("could not publish", zap.Error(err))
|
||||
@ -268,7 +268,7 @@ func (e *DataClockConsensusEngine) runLoop() {
|
||||
}
|
||||
e.frameProverTriesMx.Unlock()
|
||||
|
||||
e.dataTimeReel.Insert(nextFrame, false)
|
||||
e.dataTimeReel.Insert(nextFrame, true)
|
||||
|
||||
if err = e.publishProof(nextFrame); err != nil {
|
||||
e.logger.Error("could not publish", zap.Error(err))
|
||||
|
||||
@ -51,9 +51,7 @@ type MasterClockConsensusEngine struct {
|
||||
syncingTarget []byte
|
||||
engineMx sync.Mutex
|
||||
seenFramesMx sync.Mutex
|
||||
historicFramesMx sync.Mutex
|
||||
seenFrames []*protobufs.ClockFrame
|
||||
historicFrames []*protobufs.ClockFrame
|
||||
|
||||
clockStore store.ClockStore
|
||||
masterTimeReel *qtime.MasterTimeReel
|
||||
@ -185,14 +183,6 @@ func (e *MasterClockConsensusEngine) Start() <-chan error {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
frame, err := e.masterTimeReel.Head()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
e.logger.Info("building historic frame cache")
|
||||
e.buildHistoricFrameCache(frame)
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
@ -360,43 +350,6 @@ func (
|
||||
return e.frameChan
|
||||
}
|
||||
|
||||
func (e *MasterClockConsensusEngine) buildHistoricFrameCache(
|
||||
latestFrame *protobufs.ClockFrame,
|
||||
) {
|
||||
e.historicFrames = []*protobufs.ClockFrame{}
|
||||
|
||||
if latestFrame.FrameNumber != 0 {
|
||||
min := uint64(0)
|
||||
if latestFrame.FrameNumber-255 > min && latestFrame.FrameNumber > 255 {
|
||||
min = latestFrame.FrameNumber - 255
|
||||
}
|
||||
|
||||
iter, err := e.clockStore.RangeMasterClockFrames(
|
||||
e.filter,
|
||||
min,
|
||||
latestFrame.FrameNumber-1,
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
for iter.First(); iter.Valid(); iter.Next() {
|
||||
frame, err := iter.Value()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
e.historicFrames = append(e.historicFrames, frame)
|
||||
}
|
||||
|
||||
if err = iter.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
e.historicFrames = append(e.historicFrames, latestFrame)
|
||||
}
|
||||
|
||||
func (e *MasterClockConsensusEngine) addPeerManifestReport(
|
||||
peerId []byte,
|
||||
report *protobufs.SelfTestReport,
|
||||
|
||||
@ -35,7 +35,7 @@ func (e *MasterClockConsensusEngine) Sync(
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if masterFrame.FrameNumber < from || len(e.historicFrames) == 0 {
|
||||
if masterFrame.FrameNumber < from {
|
||||
e.logger.Debug(
|
||||
"peer asked for undiscovered frame",
|
||||
zap.Uint64("frame_number", request.FramesRequest.FromFrameNumber),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user