From 7f9ca3278146bf2af43e5de90047393c881213ea Mon Sep 17 00:00:00 2001 From: Sam Calder-Mason Date: Thu, 16 Oct 2025 13:20:42 +1000 Subject: [PATCH 1/4] fix(genesis): validate genesis file by checking BeaconConfig genesis validators root --- genesis/initialize.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/genesis/initialize.go b/genesis/initialize.go index e5690387dea8..8f8cf2732b64 100644 --- a/genesis/initialize.go +++ b/genesis/initialize.go @@ -78,7 +78,10 @@ func findGenesisFile(dir string) (GenesisData, error) { if err != nil { continue } - return gd, nil + // Only return genesis file if it matches the expected network GVR + if gd.ValidatorsRoot == params.BeaconConfig().GenesisValidatorsRoot { + return gd, nil + } } return GenesisData{}, ErrGenesisFileNotFound } From 4a0bd0de275df4cd9a315e0604af220bf022ddd0 Mon Sep 17 00:00:00 2001 From: Sam Calder-Mason Date: Thu, 16 Oct 2025 13:25:11 +1000 Subject: [PATCH 2/4] feat(changelog): add fix for genesis validation in changelog --- changelog/samcm_fix-genesis-validation.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 changelog/samcm_fix-genesis-validation.md diff --git a/changelog/samcm_fix-genesis-validation.md b/changelog/samcm_fix-genesis-validation.md new file mode 100644 index 000000000000..5ba13d94eeb8 --- /dev/null +++ b/changelog/samcm_fix-genesis-validation.md @@ -0,0 +1,3 @@ +### Fixed + +- Fixed genesis file validation by checking BeaconConfig genesis validators root to ensure correct genesis state is loaded. From 107668d3d351802f088fd2042fe5f85f9e3a6d93 Mon Sep 17 00:00:00 2001 From: Sam Calder-Mason Date: Thu, 16 Oct 2025 13:25:46 +1000 Subject: [PATCH 3/4] refactor(genesis): remove redundant comment and simplify filename splitting in initialize.go --- genesis/initialize.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/genesis/initialize.go b/genesis/initialize.go index 8f8cf2732b64..c0a98c15ee8d 100644 --- a/genesis/initialize.go +++ b/genesis/initialize.go @@ -78,7 +78,6 @@ func findGenesisFile(dir string) (GenesisData, error) { if err != nil { continue } - // Only return genesis file if it matches the expected network GVR if gd.ValidatorsRoot == params.BeaconConfig().GenesisValidatorsRoot { return gd, nil } @@ -91,7 +90,7 @@ func tryParseFname(dir string, f os.DirEntry) (GenesisData, error) { if f.IsDir() { return gd, ErrNotGenesisStateFile } - extParts := strings.Split(f.Name(), ".") + extParts := strings.Split(f.Name(), ".")ß if len(extParts) != 2 || extParts[1] != "ssz" { return gd, ErrNotGenesisStateFile } From dba171c3ab81389510c88231303fb57028d09f79 Mon Sep 17 00:00:00 2001 From: Sam Calder-Mason Date: Thu, 16 Oct 2025 13:26:15 +1000 Subject: [PATCH 4/4] fix(initialize.go): correct typo in string splitting logic for file extension parsing --- genesis/initialize.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genesis/initialize.go b/genesis/initialize.go index c0a98c15ee8d..af83d4b7fabd 100644 --- a/genesis/initialize.go +++ b/genesis/initialize.go @@ -90,7 +90,7 @@ func tryParseFname(dir string, f os.DirEntry) (GenesisData, error) { if f.IsDir() { return gd, ErrNotGenesisStateFile } - extParts := strings.Split(f.Name(), ".")ß + extParts := strings.Split(f.Name(), ".") if len(extParts) != 2 || extParts[1] != "ssz" { return gd, ErrNotGenesisStateFile }