// SignBlockHeader signing the block if current node is consensus node
func (c *Chain) SignBlockHeader(blockHeader *types.BlockHeader) error {
c.cond.L.Lock()
+ defer c.cond.L.Unlock()
+
_, err := c.signBlockHeader(blockHeader)
- c.cond.L.Unlock()
- return err
+ if err != nil {
+ return err
+ }
+
+ return c.store.SaveBlockHeader(blockHeader)
}
func (c *Chain) applyBlockSign(blockHeader *types.BlockHeader) error {