var (
orphanBlockTTL = 60 * time.Minute
orphanExpireWorkInterval = 3 * time.Minute
+ numOrphanBlockLimit = 256
)
type orphanBlock struct {
return
}
+ if len(o.orphan) >= numOrphanBlockLimit {
+ log.WithFields(log.Fields{"module": logModule, "hash": blockHash.String(), "height": block.Height}).Info("the number of orphan blocks exceeds the limit")
+ return
+ }
+
o.orphan[blockHash] = &orphanBlock{block, time.Now().Add(orphanBlockTTL)}
o.prevOrphans[block.PreviousBlockHash] = append(o.prevOrphans[block.PreviousBlockHash], &blockHash)
- log.WithFields(log.Fields{"hash": blockHash.String(), "height": block.Height}).Info("add block to orphan")
+ log.WithFields(log.Fields{"module": logModule, "hash": blockHash.String(), "height": block.Height}).Info("add block to orphan")
}
// Delete will delete the block from OrphanManage