log.Info("Loaded most recent local header","number",currentHeader.Number,"hash",currentHeader.Hash(),"td",headerTd,"age",common.PrettyAge(time.Unix(int64(currentHeader.Time),0)))
log.Info("Loaded most recent local full block","number",currentBlock.Number(),"hash",currentBlock.Hash(),"td",blockTd,"age",common.PrettyAge(time.Unix(int64(currentBlock.Time()),0)))
log.Info("Loaded most recent local fast block","number",currentFastBlock.Number(),"hash",currentFastBlock.Hash(),"td",fastTd,"age",common.PrettyAge(time.Unix(int64(currentFastBlock.Time()),0)))
log.Info("Loaded most recent local finalized block","number",currentFinalizedBlock.Number(),"hash",currentFinalizedBlock.Hash(),"td",finalTd,"age",common.PrettyAge(time.Unix(int64(currentFinalizedBlock.Time()),0)))
log.Trace("Engine API request received","method","ForkchoiceUpdated","head",update.HeadBlockHash,"finalized",update.FinalizedBlockHash,"safe",update.SafeBlockHash)
ifupdate.HeadBlockHash==(common.Hash{}){
log.Warn("Forkchoice requested update to zero hash")
returnbeacon.STATUS_INVALID,nil// TODO(karalabe): Why does someone send us this?
}
// Check whether we have the block yet in our database or not. If not, we'll
// need to either trigger a sync, or to reject this forkchoice update for a
// reason.
@ -154,7 +161,7 @@ func (api *ConsensusAPI) ForkchoiceUpdatedV1(update beacon.ForkchoiceStateV1, pa