From df6241be554b041365eacb4d3c7d7cea3c32544d Mon Sep 17 00:00:00 2001 From: Alexander Tesfamichael Date: Mon, 24 Feb 2025 17:28:39 +0100 Subject: [PATCH] Add HeaderDateMilliseconds for improved request timing tracking - Introduce new HeaderDateMilliseconds constant in constants.go - Add HeaderDateMilliseconds to getHeader and processPayload methods - Mark HeaderStartTimeUnixMS as deprecated with a comment --- server/constants.go | 8 ++++++-- server/get_header.go | 1 + server/get_payload.go | 5 +++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/server/constants.go b/server/constants.go index c49dd637..d7db30a2 100644 --- a/server/constants.go +++ b/server/constants.go @@ -6,8 +6,12 @@ const ( HeaderEthConsensusVersion = "Eth-Consensus-Version" HeaderKeySlotUID = "X-MEVBoost-SlotID" HeaderKeyVersion = "X-MEVBoost-Version" - HeaderStartTimeUnixMS = "X-MEVBoost-StartTimeUnixMS" - HeaderUserAgent = "User-Agent" + // Deprecated: replaced by HeaderDateMilliseconds below. + HeaderStartTimeUnixMS = "X-MEVBoost-StartTimeUnixMS" + HeaderUserAgent = "User-Agent" + // Header which communicates when a request was sent. Used to measure latency. + // Replaces HeaderStartTimeUnixMS above which may be dropped in a future release. + HeaderDateMilliseconds = "Date-Milliseconds" MediaTypeJSON = "application/json" MediaTypeOctetStream = "application/octet-stream" diff --git a/server/get_header.go b/server/get_header.go index a5cba4e8..ccc03043 100644 --- a/server/get_header.go +++ b/server/get_header.go @@ -89,6 +89,7 @@ func (m *BoostService) getHeader(log *logrus.Entry, slot phase0.Slot, pubkey, pa req.Header.Set(HeaderKeySlotUID, slotUID.String()) req.Header.Set(HeaderStartTimeUnixMS, startTime) req.Header.Set(HeaderUserAgent, userAgent) + req.Header.Set(HeaderDateMilliseconds, startTime) // Send the request log.Debug("requesting header") diff --git a/server/get_payload.go b/server/get_payload.go index 34aded2e..dc79bd9b 100644 --- a/server/get_payload.go +++ b/server/get_payload.go @@ -79,8 +79,9 @@ func processPayload[P Payload](m *BoostService, log *logrus.Entry, ua UserAgent, // Add request headers headers := map[string]string{ - HeaderKeySlotUID: currentSlotUID, - HeaderStartTimeUnixMS: fmt.Sprintf("%d", time.Now().UTC().UnixMilli()), + HeaderKeySlotUID: currentSlotUID, + HeaderStartTimeUnixMS: fmt.Sprintf("%d", time.Now().UTC().UnixMilli()), + HeaderDateMilliseconds: fmt.Sprintf("%d", time.Now().UTC().UnixMilli()), } // Prepare for requests