+
+func (c *Chain) processBlockSignature(signature, pubkey []byte, blockHeight uint64, blockHash *bc.Hash) error {
+ isBestIrreversible, err := c.bbft.ProcessBlockSignature(signature, pubkey, blockHeight, blockHash)
+ if err != nil {
+ return err
+ }
+
+ if isBestIrreversible {
+ bestIrreversibleNode := c.index.GetNode(blockHash)
+ if err := c.store.SaveChainNodeStatus(c.bestNode, bestIrreversibleNode); err != nil {
+ return err
+ }
+
+ c.bestIrreversibleNode = bestIrreversibleNode
+ }
+ return nil
+}