From 092c9fb4cad194936256f05215a926b27d7acfdc Mon Sep 17 00:00:00 2001 From: Manav Aggarwal Date: Wed, 7 Dec 2022 18:36:17 -0500 Subject: [PATCH] Fix commit nil issue --- block/manager.go | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/block/manager.go b/block/manager.go index f339fcbb9c..07ae77c5cb 100644 --- a/block/manager.go +++ b/block/manager.go @@ -402,6 +402,22 @@ func (m *Manager) getRemainingSleep(start time.Time) time.Duration { return sleepDuration } +func (m *Manager) getCommit(header types.Header) (*types.Commit, error) { + headerBytes, err := header.MarshalBinary() + if err != nil { + return nil, err + } + sign, err := m.proposerKey.Sign(headerBytes) + if err != nil { + return nil, err + } + return &types.Commit{ + Height: header.Height, + HeaderHash: header.Hash(), + Signatures: []types.Signature{sign}, + }, nil +} + func (m *Manager) publishBlock(ctx context.Context) error { var lastCommit *types.Commit var lastHeaderHash [32]byte @@ -438,19 +454,10 @@ func (m *Manager) publishBlock(ctx context.Context) error { block = m.executor.CreateBlock(newHeight, lastCommit, lastHeaderHash, m.lastState) m.logger.Debug("block info", "num_tx", len(block.Data.Txs)) - headerBytes, err := block.Header.MarshalBinary() + commit, err := m.getCommit(block.Header) if err != nil { return err } - sign, err := m.proposerKey.Sign(headerBytes) - if err != nil { - return err - } - commit = &types.Commit{ - Height: block.Header.Height, - HeaderHash: block.Header.Hash(), - Signatures: []types.Signature{sign}, - } // SaveBlock commits the DB tx err = m.store.SaveBlock(block, commit) @@ -466,6 +473,13 @@ func (m *Manager) publishBlock(ctx context.Context) error { return err } + if commit == nil { + commit, err = m.getCommit(block.Header) + if err != nil { + return err + } + } + // SaveBlock commits the DB tx err = m.store.SaveBlock(block, commit) if err != nil {