From 582777ae9cbaae5264c477fbe56b08ac758d67a3 Mon Sep 17 00:00:00 2001 From: advaita-saha Date: Sat, 13 Sep 2025 03:38:40 +0530 Subject: [PATCH 1/7] use the new nimbus-eth2 buildinfo --- execution_chain/version_info.nim | 49 ++++---------------------------- portal/version.nim | 7 ++++- vendor/nimbus-eth2 | 2 +- 3 files changed, 13 insertions(+), 45 deletions(-) diff --git a/execution_chain/version_info.nim b/execution_chain/version_info.nim index a66a328e29..68a19e8372 100644 --- a/execution_chain/version_info.nim +++ b/execution_chain/version_info.nim @@ -11,59 +11,20 @@ import std/[os, strutils, strformat], stew/byteutils, + beacon_chain/buildinfo, ./compile_info, ./version export version -# TODO: Unify and use the buildinfo from nimbus-eth2 -# For that it needs to be shifted to a template which takes in the -# source path of nimbus-eth1 as an input -const sourcePath = currentSourcePath.rsplit({DirSep, AltSep}, 1)[0] - -proc gitFolderExists(path: string): bool {.compileTime.} = - # walk up parent folder to find `.git` folder - var currPath = sourcePath - while true: - if dirExists(currPath & "/.git"): - return true - let parts = splitPath(currPath) - if parts.tail.len == 0: - break - currPath = parts.head - false - const NimbusName* = "nimbus-eth1" ## project name string - GitRevisionOverride {.strdefine.} = "" + #GitRevisionOverride {.strdefine.} = "" + sourcePath = currentSourcePath.rsplit({DirSep, AltSep}, 1)[0] - GitRevision* = - when GitRevisionOverride.len > 0: - static: - doAssert( - GitRevisionOverride.len == 8, - "GitRevisionOverride must consist of 8 characters", - ) - doAssert( - GitRevisionOverride.allIt(it in HexDigits), - "GitRevisionOverride should contains only hex chars", - ) - - GitRevisionOverride - else: - if gitFolderExists(sourcePath): - # only using git if the parent dir is a git repo. - strip( - staticExec( - "git -C " & strutils.escape(sourcePath) & " rev-parse --short=8 HEAD" - ) - ) - else: - # otherwise we use revision number given by build system. - # e.g. user download from release tarball, or Github zip download. - "00000000" + GitRevision* = generateGitRevision(sourcePath) # Please keep it 4 bytes long, used in `engine_ClientVersionV1` # https://github.com/ethereum/execution-apis/blob/v1.0.0-beta.4/src/engine/identification.md#clientversionv1 @@ -74,3 +35,5 @@ const ClientId* = &"{NimbusName}/{FullVersionStr}/{hostOS}-{hostCPU}/Nim-{NimVersion}" ShortClientId* = NimbusName & "/" & FullVersionStr + +echo ClientId \ No newline at end of file diff --git a/portal/version.nim b/portal/version.nim index 8ccceff27c..031393c313 100644 --- a/portal/version.nim +++ b/portal/version.nim @@ -7,7 +7,7 @@ {.push raises: [].} -import stew/byteutils, metrics, beacon_chain/buildinfo +import std/[os, strutils], stew/byteutils, metrics, beacon_chain/buildinfo export buildinfo @@ -18,6 +18,9 @@ const versionAsStr* = $versionMajor & "." & $versionMinor & "." & $versionBuild + sourcePath = currentSourcePath.rsplit({DirSep, AltSep}, 1)[0] + GitRevision = generateGitRevision(sourcePath) + fullVersionStr* = "v" & versionAsStr & "-" & GitRevision clientName* = "nimbus_portal_client" @@ -39,3 +42,5 @@ declareGauge versionGauge, ["version", "commit"], name = "nimbus_portal_client_version" versionGauge.set(1, labelValues = [fullVersionStr, GitRevision]) + +echo fullVersionStr \ No newline at end of file diff --git a/vendor/nimbus-eth2 b/vendor/nimbus-eth2 index 8d1f4d5a8e..0415ebc929 160000 --- a/vendor/nimbus-eth2 +++ b/vendor/nimbus-eth2 @@ -1 +1 @@ -Subproject commit 8d1f4d5a8e7b8c3f325416ca1c9b9f0a760cba1f +Subproject commit 0415ebc929ee8c41a1660a154cbec02152c3ce6b From 9de1b1dcc96f86af3e3722513585a838d8b7265e Mon Sep 17 00:00:00 2001 From: advaita-saha Date: Sat, 13 Sep 2025 03:46:50 +0530 Subject: [PATCH 2/7] use nimbus specific copyright --- execution_chain/config.nim | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/execution_chain/config.nim b/execution_chain/config.nim index eaff8476b1..26f39bd721 100644 --- a/execution_chain/config.nim +++ b/execution_chain/config.nim @@ -40,13 +40,16 @@ import export net, defs, jsdefs, jsnet, nimbus_binary_common const - + # e.g.: Copyright (c) 2018-2025 Status Research & Development GmbH + NimbusCopyright* = "Copyright (c) 2018-" & + CompileDate.split('-')[0] & + " Status Research & Development GmbH" # e.g.: # nimbus_execution_client/v0.1.0-abcdef/os-cpu/nim-a.b.c/emvc # Copyright (c) 2018-2025 Status Research & Development GmbH NimbusBuild* = "$#\p$#" % [ ClientId, - copyrights, + NimbusCopyright, ] NimbusHeader* = "$#\p\pNim version $#" % [ From 0ae829a7997faac4ec97d76a4b4898fe239679f2 Mon Sep 17 00:00:00 2001 From: advaita-saha Date: Sat, 13 Sep 2025 13:25:16 +0530 Subject: [PATCH 3/7] remove unwanted code --- execution_chain/version_info.nim | 2 -- 1 file changed, 2 deletions(-) diff --git a/execution_chain/version_info.nim b/execution_chain/version_info.nim index 68a19e8372..b6c578f122 100644 --- a/execution_chain/version_info.nim +++ b/execution_chain/version_info.nim @@ -35,5 +35,3 @@ const ClientId* = &"{NimbusName}/{FullVersionStr}/{hostOS}-{hostCPU}/Nim-{NimVersion}" ShortClientId* = NimbusName & "/" & FullVersionStr - -echo ClientId \ No newline at end of file From 687f76bd7dfa1b705d58cec0f550ce7e38a3002d Mon Sep 17 00:00:00 2001 From: advaita-saha Date: Sat, 13 Sep 2025 13:28:36 +0530 Subject: [PATCH 4/7] fix: lint --- portal/version.nim | 2 -- 1 file changed, 2 deletions(-) diff --git a/portal/version.nim b/portal/version.nim index 031393c313..042cf60080 100644 --- a/portal/version.nim +++ b/portal/version.nim @@ -42,5 +42,3 @@ declareGauge versionGauge, ["version", "commit"], name = "nimbus_portal_client_version" versionGauge.set(1, labelValues = [fullVersionStr, GitRevision]) - -echo fullVersionStr \ No newline at end of file From a05dfcb8c224cfefdcb3143b6c39d72101e82c42 Mon Sep 17 00:00:00 2001 From: advaita-saha Date: Sat, 13 Sep 2025 14:48:17 +0530 Subject: [PATCH 5/7] fix: portal tests --- .../tests/beacon_network_tests/test_beacon_content.nim | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/portal/tests/beacon_network_tests/test_beacon_content.nim b/portal/tests/beacon_network_tests/test_beacon_content.nim index 51a8bbf863..6eb475c822 100644 --- a/portal/tests/beacon_network_tests/test_beacon_content.nim +++ b/portal/tests/beacon_network_tests/test_beacon_content.nim @@ -191,14 +191,7 @@ suite "Beacon Content Keys and Values": # TODO: These tests are less useful now and should instead be altered to # use the consensus test vectors to simply test if encoding / decoding works # fine for the different forks. - const forkDigests = ForkDigests( - phase0: ForkDigest([0'u8, 0, 0, 1]), - altair: ForkDigest([0'u8, 0, 0, 2]), - bellatrix: ForkDigest([0'u8, 0, 0, 3]), - capella: ForkDigest([0'u8, 0, 0, 4]), - deneb: ForkDigest([0'u8, 0, 0, 5]), - electra: ForkDigest([0'u8, 0, 0, 6]), # TODO fulu: ForkDigest([0'u8, 0, 0, 7]), - ) + let forkDigests = ForkDigests.init(getMetadataForNetwork("mainnet").cfg, default(Eth2Digest)) test "LightClientBootstrap": let From e11d3c79286097246f6e2283b951b68142e6fc98 Mon Sep 17 00:00:00 2001 From: advaita-saha Date: Sat, 13 Sep 2025 14:51:26 +0530 Subject: [PATCH 6/7] fix: lint --- portal/tests/beacon_network_tests/test_beacon_content.nim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/portal/tests/beacon_network_tests/test_beacon_content.nim b/portal/tests/beacon_network_tests/test_beacon_content.nim index 6eb475c822..11a44841f8 100644 --- a/portal/tests/beacon_network_tests/test_beacon_content.nim +++ b/portal/tests/beacon_network_tests/test_beacon_content.nim @@ -191,7 +191,9 @@ suite "Beacon Content Keys and Values": # TODO: These tests are less useful now and should instead be altered to # use the consensus test vectors to simply test if encoding / decoding works # fine for the different forks. - let forkDigests = ForkDigests.init(getMetadataForNetwork("mainnet").cfg, default(Eth2Digest)) + let forkDigests = ForkDigests.init( + getMetadataForNetwork("mainnet").cfg, default(Eth2Digest) + ) test "LightClientBootstrap": let From 5d2f25a860356aa4643bb76927590af242dcdfe5 Mon Sep 17 00:00:00 2001 From: advaita-saha Date: Sat, 13 Sep 2025 14:55:35 +0530 Subject: [PATCH 7/7] fix: lint nph --- portal/tests/beacon_network_tests/test_beacon_content.nim | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/portal/tests/beacon_network_tests/test_beacon_content.nim b/portal/tests/beacon_network_tests/test_beacon_content.nim index 11a44841f8..91229e0867 100644 --- a/portal/tests/beacon_network_tests/test_beacon_content.nim +++ b/portal/tests/beacon_network_tests/test_beacon_content.nim @@ -191,9 +191,8 @@ suite "Beacon Content Keys and Values": # TODO: These tests are less useful now and should instead be altered to # use the consensus test vectors to simply test if encoding / decoding works # fine for the different forks. - let forkDigests = ForkDigests.init( - getMetadataForNetwork("mainnet").cfg, default(Eth2Digest) - ) + let forkDigests = + ForkDigests.init(getMetadataForNetwork("mainnet").cfg, default(Eth2Digest)) test "LightClientBootstrap": let