Merge branch 'hotfix/0.9.34-1'
This commit is contained in:
commit
a2ce7b9950
|
@ -364,14 +364,12 @@ func (bc *ChainManager) insert(block *types.Block) {
|
|||
func (bc *ChainManager) write(block *types.Block) {
|
||||
tstart := time.Now()
|
||||
|
||||
go func() {
|
||||
enc, _ := rlp.EncodeToBytes((*types.StorageBlock)(block))
|
||||
key := append(blockHashPre, block.Hash().Bytes()...)
|
||||
err := bc.blockDb.Put(key, enc)
|
||||
if err != nil {
|
||||
glog.Fatal("db write fail:", err)
|
||||
}
|
||||
}()
|
||||
enc, _ := rlp.EncodeToBytes((*types.StorageBlock)(block))
|
||||
key := append(blockHashPre, block.Hash().Bytes()...)
|
||||
err := bc.blockDb.Put(key, enc)
|
||||
if err != nil {
|
||||
glog.Fatal("db write fail:", err)
|
||||
}
|
||||
|
||||
if glog.V(logger.Debug) {
|
||||
glog.Infof("wrote block #%v %s. Took %v\n", block.Number(), common.PP(block.Hash().Bytes()), time.Since(tstart))
|
||||
|
@ -555,7 +553,8 @@ const (
|
|||
sideStatTy
|
||||
)
|
||||
|
||||
func (self *ChainManager) WriteBlock(block *types.Block) (status writeStatus, err error) {
|
||||
// WriteBlock writes the block to the chain (or pending queue)
|
||||
func (self *ChainManager) WriteBlock(block *types.Block, queued bool) (status writeStatus, err error) {
|
||||
self.wg.Add(1)
|
||||
defer self.wg.Done()
|
||||
|
||||
|
@ -587,11 +586,15 @@ func (self *ChainManager) WriteBlock(block *types.Block) (status writeStatus, er
|
|||
status = sideStatTy
|
||||
}
|
||||
|
||||
// Write block to database. Eventually we'll have to improve on this and throw away blocks that are
|
||||
// not in the canonical chain.
|
||||
self.mu.Lock()
|
||||
self.enqueueForWrite(block)
|
||||
self.mu.Unlock()
|
||||
if queued {
|
||||
// Write block to database. Eventually we'll have to improve on this and throw away blocks that are
|
||||
// not in the canonical chain.
|
||||
self.mu.Lock()
|
||||
self.enqueueForWrite(block)
|
||||
self.mu.Unlock()
|
||||
} else {
|
||||
self.write(block)
|
||||
}
|
||||
// Delete from future blocks
|
||||
self.futureBlocks.Remove(block.Hash())
|
||||
|
||||
|
@ -693,7 +696,7 @@ func (self *ChainManager) InsertChain(chain types.Blocks) (int, error) {
|
|||
txcount += len(block.Transactions())
|
||||
|
||||
// write the block to the chain and get the status
|
||||
status, err := self.WriteBlock(block)
|
||||
status, err := self.WriteBlock(block, true)
|
||||
if err != nil {
|
||||
return i, err
|
||||
}
|
||||
|
|
|
@ -233,7 +233,7 @@ func (self *worker) wait() {
|
|||
continue
|
||||
}
|
||||
|
||||
_, err := self.chain.WriteBlock(block)
|
||||
_, err := self.chain.WriteBlock(block, false)
|
||||
if err != nil {
|
||||
glog.V(logger.Error).Infoln("error writing block to chain", err)
|
||||
continue
|
||||
|
|
Loading…
Reference in New Issue