advertise all forks

This commit is contained in:
MariusVanDerWijden 2026-06-16 10:49:22 +02:00
parent 85445ac3b6
commit afa27a4f59
No known key found for this signature in database
2 changed files with 11 additions and 3 deletions

View file

@ -40,7 +40,7 @@ func (rt *Router) handleCapabilities(w http.ResponseWriter, r *http.Request) {
return return
} }
resp := capabilitiesResponse{ resp := capabilitiesResponse{
SupportedForks: []string{"amsterdam"}, SupportedForks: []string{"paris", "shanghai", "cancun", "prague", "osaka", "amsterdam"},
ForkScopedEndpoints: []string{"payloads", "forkchoice", "bodies"}, ForkScopedEndpoints: []string{"payloads", "forkchoice", "bodies"},
IndependentlyVersioned: map[string][]string{ IndependentlyVersioned: map[string][]string{
"blobs": {"v1", "v2", "v3", "v4"}, "blobs": {"v1", "v2", "v3", "v4"},

View file

@ -245,8 +245,16 @@ func TestRouterCapabilities(t *testing.T) {
if err := json.NewDecoder(resp.Body).Decode(&c); err != nil { if err := json.NewDecoder(resp.Body).Decode(&c); err != nil {
t.Fatal(err) t.Fatal(err)
} }
if len(c.SupportedForks) == 0 || c.SupportedForks[0] != "amsterdam" { // Capabilities must advertise every fork the router routes, so a consensus
t.Errorf("supported forks: %v", c.SupportedForks) // client negotiates SSZ for all of them rather than falling back to JSON-RPC.
want := map[string]bool{"paris": true, "shanghai": true, "cancun": true, "prague": true, "osaka": true, "amsterdam": true}
if len(c.SupportedForks) != len(want) {
t.Errorf("supported forks: got %v, want all of %v", c.SupportedForks, want)
}
for _, f := range c.SupportedForks {
if !want[f] {
t.Errorf("unexpected fork advertised: %q", f)
}
} }
if got := c.Limits["blobs.max_versioned_hashes"]; got != sszt.MaxBlobsRequest { if got := c.Limits["blobs.max_versioned_hashes"]; got != sszt.MaxBlobsRequest {
t.Errorf("blobs limit: %d", got) t.Errorf("blobs limit: %d", got)