From a07b2838ab9f136d2c6f1d42f67356420faf53cb Mon Sep 17 00:00:00 2001
From: thedevbirb <lorenzo.feroleto.dev@gmail.com>
Date: Tue, 12 Nov 2024 16:53:31 +0100
Subject: [PATCH 1/2] fix(cli): builder.verify_constraints flag incorrectly
 propagated

Co-authored-by: benhenryhunter <benhenryhunter@gmail.com>
---
 builder/service.go | 17 +++++++++--------
 cmd/geth/main.go   |  1 +
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/builder/service.go b/builder/service.go
index 09be2c6..13b41a7 100644
--- a/builder/service.go
+++ b/builder/service.go
@@ -290,20 +290,21 @@ func Register(stack *node.Node, backend *eth.Ethereum, cfg *Config) error {
 	}
 
 	builderArgs := BuilderArgs{
-		sk:                            builderSk,
+		beaconClient:                  beaconClient,
 		blockConsumer:                 blockConsumer,
-		ds:                            ds,
+		builderBlockResubmitInterval:  builderRateLimitInterval,
+		builderSigningDomain:          builderSigningDomain,
+		discardRevertibleTxOnErr:      cfg.DiscardRevertibleTxOnErr,
 		dryRun:                        cfg.DryRun,
+		ds:                            ds,
 		eth:                           ethereumService,
+		ignoreLatePayloadAttributes:   cfg.IgnoreLatePayloadAttributes,
+		limiter:                       limiter,
 		relay:                         relay,
-		builderSigningDomain:          builderSigningDomain,
-		builderBlockResubmitInterval:  builderRateLimitInterval,
+		sk:                            builderSk,
 		submissionOffsetFromEndOfSlot: submissionOffset,
-		discardRevertibleTxOnErr:      cfg.DiscardRevertibleTxOnErr,
-		ignoreLatePayloadAttributes:   cfg.IgnoreLatePayloadAttributes,
 		validator:                     validator,
-		beaconClient:                  beaconClient,
-		limiter:                       limiter,
+		verifyConstraints:             cfg.VerifyConstraints,
 	}
 
 	builderBackend, err := NewBuilder(builderArgs)
diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index 0520205..f5a00b9 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -183,6 +183,7 @@ var (
 		utils.BuilderDiscardRevertibleTxOnErr,
 		utils.BuilderEnableCancellations,
 		utils.BuilderBlockProcessorURL,
+		utils.BuilderVerifyConstraints,
 	}
 
 	rpcFlags = []cli.Flag{

From 282a48138bc64a04fe05c8d25bfcc23a8b60b1e3 Mon Sep 17 00:00:00 2001
From: thedevbirb <lorenzo.feroleto.dev@gmail.com>
Date: Tue, 12 Nov 2024 17:02:00 +0100
Subject: [PATCH 2/2] fix(constraints-sse): on any error reading response body,
 try to reconnect to avoid infinite loop

---
 builder/builder.go | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/builder/builder.go b/builder/builder.go
index a35ee1b..8da7a8a 100644
--- a/builder/builder.go
+++ b/builder/builder.go
@@ -341,17 +341,17 @@ func (b *Builder) subscribeToRelayForConstraints(relayBaseEndpoint string) error
 		for {
 			line, err := bufReader.ReadString('\n')
 			if err != nil {
-				// If we encounter an EOF or another serious error, break out to reconnect
-				isEOF := err == io.EOF || strings.Contains(err.Error(), "EOF")
-				if isEOF {
-					log.Error("Encountered EOF. Connection to relay lost, attempting to reconnect...", "relayBaseEndpoint", relayBaseEndpoint)
-					time.Sleep(retryInterval)
-					break // Break to reconnect by restarting the main `for` loop
-				}
-
-				// Log other errors but continue reading if recoverable
-				log.Error(fmt.Sprintf("Error reading from response body: %v", err))
-				continue
+				// It is better to break and trying to reconnect (by restarting
+				// the main loop), otherwise there is an high change we might run into
+				// an infinite loop because the error isn't recoverable.
+				log.Error(
+					fmt.Sprintf("Error reading from response body from relay %s: %v. Connection might be lost. Attempting to reconnect in %d seconds...",
+						relayBaseEndpoint,
+						err,
+						retryInterval,
+					))
+				time.Sleep(retryInterval)
+				break
 			}
 
 			if !strings.HasPrefix(line, "data: ") {