diff --git a/beacon-chain/blockchain/log.go b/beacon-chain/blockchain/log.go index 62fd55e64705..63c5fb46352d 100644 --- a/beacon-chain/blockchain/log.go +++ b/beacon-chain/blockchain/log.go @@ -7,6 +7,7 @@ import ( ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1" "github.com/prysmaticlabs/prysm/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/shared/params" + "github.com/prysmaticlabs/prysm/shared/timeutils" "github.com/sirupsen/logrus" ) @@ -23,13 +24,19 @@ func logStateTransitionData(b *ethpb.BeaconBlock) { }).Info("Finished applying state transition") } -func logBlockSyncStatus(block *ethpb.BeaconBlock, blockRoot [32]byte, finalized *ethpb.Checkpoint) { +func logBlockSyncStatus(block *ethpb.BeaconBlock, blockRoot [32]byte, finalized *ethpb.Checkpoint, genesisTime uint64) error { + startTime, err := helpers.SlotToTime(genesisTime, block.Slot) + if err != nil { + return err + } log.WithFields(logrus.Fields{ - "slot": block.Slot, - "slotInEpoch": block.Slot % params.BeaconConfig().SlotsPerEpoch, - "block": fmt.Sprintf("0x%s...", hex.EncodeToString(blockRoot[:])[:8]), - "epoch": helpers.SlotToEpoch(block.Slot), - "finalizedEpoch": finalized.Epoch, - "finalizedRoot": fmt.Sprintf("0x%s...", hex.EncodeToString(finalized.Root)[:8]), + "slot": block.Slot, + "slotInEpoch": block.Slot % params.BeaconConfig().SlotsPerEpoch, + "block": fmt.Sprintf("0x%s...", hex.EncodeToString(blockRoot[:])[:8]), + "epoch": helpers.SlotToEpoch(block.Slot), + "finalizedEpoch": finalized.Epoch, + "finalizedRoot": fmt.Sprintf("0x%s...", hex.EncodeToString(finalized.Root)[:8]), + "timeSinceSlotStart": timeutils.Now().Sub(startTime), }).Info("Synced new block") + return nil } diff --git a/beacon-chain/blockchain/receive_block.go b/beacon-chain/blockchain/receive_block.go index ffc786fc3c95..e098f9fc6256 100644 --- a/beacon-chain/blockchain/receive_block.go +++ b/beacon-chain/blockchain/receive_block.go @@ -76,8 +76,9 @@ func (s *Service) ReceiveBlock(ctx context.Context, block *ethpb.SignedBeaconBlo reportSlotMetrics(blockCopy.Block.Slot, s.HeadSlot(), s.CurrentSlot(), s.finalizedCheckpt) // Log block sync status. - logBlockSyncStatus(blockCopy.Block, blockRoot, s.finalizedCheckpt) - + if err := logBlockSyncStatus(blockCopy.Block, blockRoot, s.finalizedCheckpt, uint64(s.genesisTime.Unix())); err != nil { + return err + } // Log state transition data. logStateTransitionData(blockCopy.Block)