• R/O
  • HTTP
  • SSH
  • HTTPS

vapor: 提交

Golang implemented sidechain for Bytom


Commit MetaInfo

修订版4ab3112189db0f9a50a6fb41971318be69d176e5 (tree)
时间2019-12-24 21:10:04
作者shenao78 <shenao.78@163....>
Commitershenao78

Log Message

Merge branch 'master' into mov

更改概述

差异

--- a/database/store.go
+++ b/database/store.go
@@ -331,14 +331,18 @@ func (s *Store) SaveChainStatus(blockHeader, irrBlockHeader *types.BlockHeader,
331331 return err
332332 }
333333
334- for _, result := range consensusResults {
334+ var clearCacheFuncs []func()
335+ for _, consensusResult := range consensusResults {
336+ result := consensusResult
335337 bytes, err := json.Marshal(result)
336338 if err != nil {
337339 return err
338340 }
339341
340342 batch.Set(calcConsensusResultKey(result.Seq), bytes)
341- s.cache.removeConsensusResult(result)
343+ clearCacheFuncs = append(clearCacheFuncs, func() {
344+ s.cache.removeConsensusResult(result)
345+ })
342346 }
343347
344348 blockHash := blockHeader.Hash()
@@ -355,7 +359,8 @@ func (s *Store) SaveChainStatus(blockHeader, irrBlockHeader *types.BlockHeader,
355359 batch.Set([]byte{blockStore}, bytes)
356360
357361 // save main chain blockHeaders
358- for _, bh := range mainBlockHeaders {
362+ for _, blockHeader := range mainBlockHeaders {
363+ bh := blockHeader
359364 blockHash := bh.Hash()
360365 binaryBlockHash, err := blockHash.MarshalText()
361366 if err != nil {
@@ -363,15 +368,24 @@ func (s *Store) SaveChainStatus(blockHeader, irrBlockHeader *types.BlockHeader,
363368 }
364369
365370 batch.Set(calcMainChainIndexPrefix(bh.Height), binaryBlockHash)
366- s.cache.removeMainChainHash(bh.Height)
371+ clearCacheFuncs = append(clearCacheFuncs, func() {
372+ s.cache.removeMainChainHash(bh.Height)
373+ })
367374 }
368375
369376 if currentStatus != nil {
370377 for i := blockHeader.Height + 1; i <= currentStatus.Height; i++ {
371- batch.Delete(calcMainChainIndexPrefix(i))
372- s.cache.removeMainChainHash(i)
378+ index := i
379+ batch.Delete(calcMainChainIndexPrefix(index))
380+ clearCacheFuncs = append(clearCacheFuncs, func() {
381+ s.cache.removeMainChainHash(index)
382+ })
373383 }
374384 }
375385 batch.Write()
386+
387+ for _, clearCacheFunc := range clearCacheFuncs {
388+ clearCacheFunc()
389+ }
376390 return nil
377391 }
Show on old repository browser