Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
62dca08
wip
james-prysm Feb 21, 2025
91754b9
refactoring functions for easier readability
james-prysm Feb 21, 2025
8a2dc57
allow ssz for register validator
james-prysm Feb 21, 2025
0cb1807
Merge branch 'develop' into builder-ssz
james-prysm Feb 21, 2025
0a677c9
changelog
james-prysm Feb 21, 2025
750abf3
adding in blinded block submission tests
james-prysm Feb 21, 2025
17338be
adding in tests for header ssz
james-prysm Feb 21, 2025
b1a8036
fixing linting and tests
james-prysm Feb 24, 2025
6399b5a
Merge branch 'develop' into builder-ssz
james-prysm Feb 24, 2025
33adbf6
adding in custom errors and fixing ssz validator registration
james-prysm Feb 24, 2025
490409d
Merge branch 'develop' into builder-ssz
james-prysm Feb 26, 2025
dd7d22c
Merge branch 'develop' into builder-ssz
james-prysm Feb 27, 2025
d954d4c
Merge branch 'develop' into builder-ssz
james-prysm Mar 3, 2025
d032738
Update api/client/builder/client.go
james-prysm Mar 4, 2025
325b6b5
Update api/client/builder/client.go
james-prysm Mar 4, 2025
863553b
Merge branch 'develop' into builder-ssz
james-prysm Mar 4, 2025
5a792a6
manu's feedback
james-prysm Mar 4, 2025
dceb51b
Merge branch 'develop' into builder-ssz
james-prysm Mar 4, 2025
8047191
linting
james-prysm Mar 4, 2025
1932f79
Merge branch 'develop' into builder-ssz
james-prysm Mar 5, 2025
69c8168
Merge branch 'develop' into builder-ssz
james-prysm Mar 11, 2025
86b83cd
adding in info log to notify that this setting was turned on
james-prysm Mar 11, 2025
46dbe67
fixing linting
james-prysm Mar 12, 2025
e726fd6
manu's feedback
james-prysm Mar 14, 2025
ce21af6
Merge branch 'develop' into builder-ssz
james-prysm Mar 14, 2025
aebf5ad
fixing import
james-prysm Mar 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
445 changes: 363 additions & 82 deletions api/client/builder/client.go

Large diffs are not rendered by default.

724 changes: 678 additions & 46 deletions api/client/builder/client_test.go

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions api/client/builder/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ var ErrBadRequest = errors.Wrap(ErrNotOK, "recv 400 BadRequest response from API
// ErrNoContent specifically means that a '204 - No Content' response was received from the API.
// Typically, a 204 is a success but in this case for the Header API means No header is available
var ErrNoContent = errors.New("recv 204 no content response from API, No header is available")

// ErrUnsupportedMediaType specifically means that a '415 - Unsupported Media Type' was received from the API.
var ErrUnsupportedMediaType = errors.Wrap(ErrNotOK, "The media type in \"Content-Type\" header is unsupported, and the request has been rejected. This occurs when a HTTP request supplies a payload in a content-type that the server is not able to handle.")

// ErrNotAcceptable specifically means that a '406 - Not Acceptable' was received from the API.
var ErrNotAcceptable = errors.Wrap(ErrNotOK, "The accept header value is not acceptable")
1 change: 1 addition & 0 deletions beacon-chain/builder/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ load("@prysm//tools/go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"log.go",
"metric.go",
"option.go",
"service.go",
Expand Down
5 changes: 5 additions & 0 deletions beacon-chain/builder/log.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package builder

import "github.com/sirupsen/logrus"

var log = logrus.WithField("prefix", "builder")
8 changes: 7 additions & 1 deletion beacon-chain/builder/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,16 @@ type Option func(s *Service) error
// FlagOptions for builder service flag configurations.
func FlagOptions(c *cli.Context) ([]Option, error) {
endpoint := c.String(flags.MevRelayEndpoint.Name)
sszEnabled := c.Bool(flags.EnableBuilderSSZ.Name)
var client *builder.Client
if endpoint != "" {
var opts []builder.ClientOpt
if sszEnabled {
log.Info("Using APIs with SSZ enabled")
opts = append(opts, builder.WithSSZ())
}
var err error
client, err = builder.NewClient(endpoint)
client, err = builder.NewClient(endpoint, opts...)
if err != nil {
return nil, err
}
Expand Down
1 change: 0 additions & 1 deletion beacon-chain/builder/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import (
"github.com/prysmaticlabs/prysm/v5/monitoring/tracing/trace"
v1 "github.com/prysmaticlabs/prysm/v5/proto/engine/v1"
ethpb "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1"
log "github.com/sirupsen/logrus"
)

// ErrNoBuilder is used when builder endpoint is not configured.
Expand Down
3 changes: 3 additions & 0 deletions changelog/james-prysm_builder-ssz.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Added

- enable SSZ for builder API calls
8 changes: 8 additions & 0 deletions cmd/beacon-chain/flags/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,14 @@ var (
Usage: "A MEV builder relay string http endpoint, this will be used to interact MEV builder network using API defined in: https://ethereum.github.io/builder-specs/#/Builder",
Value: "",
}

// EnableBuilderSSZ enables Builder APIs to send and receive in SSZ format
EnableBuilderSSZ = &cli.BoolFlag{
Name: "enable-builder-ssz",
Aliases: []string{"builder-ssz"},
Usage: "Enables Builder APIs to send and receive in SSZ format",
}

MaxBuilderConsecutiveMissedSlots = &cli.IntFlag{
Name: "max-builder-consecutive-missed-slots",
Usage: "Number of consecutive skip slot to fallback from using relay/builder to local execution engine for block construction",
Expand Down
1 change: 1 addition & 0 deletions cmd/beacon-chain/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ var appFlags = []cli.Flag{
flags.MinBuilderDiff,
flags.BeaconDBPruning,
flags.PrunerRetentionEpochs,
flags.EnableBuilderSSZ,
cmd.BackupWebhookOutputDir,
cmd.MinimalConfigFlag,
cmd.E2EConfigFlag,
Expand Down
1 change: 1 addition & 0 deletions cmd/beacon-chain/usage.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ var appHelpFlagGroups = []flagGroup{
flags.MinBuilderBid,
flags.MinBuilderDiff,
flags.SuggestedFeeRecipient,
flags.EnableBuilderSSZ,
},
},
{ // Flags relevant to syncing the beacon chain.
Expand Down
1 change: 1 addition & 0 deletions proto/engine/v1/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ ssz_gen_marshal(
"ExecutionPayloadHeaderCapella",
"ExecutionPayloadHeaderDeneb",
"ExecutionPayloadDeneb",
'ExecutionPayloadDenebAndBlobsBundle',
"BlindedBlobsBundle",
"BlobsBundle",
"Withdrawal",
Expand Down
128 changes: 128 additions & 0 deletions proto/engine/v1/engine.ssz.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading