diff --git a/Dockerfile b/Dockerfile
index 78e6385e3ac..38e071e14b1 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,7 +1,7 @@
# SPDX-FileCopyrightText: 2022 Demerzel Solutions Limited
# SPDX-License-Identifier: LGPL-3.0-only
-FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-noble AS build
+FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0-noble AS build
ARG BUILD_CONFIG=release
ARG BUILD_TIMESTAMP
@@ -18,7 +18,7 @@ RUN arch=$([ "$TARGETARCH" = "amd64" ] && echo "x64" || echo "$TARGETARCH") && \
# A temporary symlink to support the old executable name
RUN ln -s -r /publish/nethermind /publish/Nethermind.Runner
-FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble
+FROM mcr.microsoft.com/dotnet/aspnet:9.0-noble
WORKDIR /nethermind
diff --git a/Dockerfile.chiseled b/Dockerfile.chiseled
index 3b677dcae78..a646cfb37d3 100644
--- a/Dockerfile.chiseled
+++ b/Dockerfile.chiseled
@@ -1,7 +1,7 @@
# SPDX-FileCopyrightText: 2024 Demerzel Solutions Limited
# SPDX-License-Identifier: LGPL-3.0-only
-FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-noble AS build
+FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0-noble AS build
ARG BUILD_CONFIG=release
ARG BUILD_TIMESTAMP
@@ -21,7 +21,7 @@ RUN cd /publish && \
mkdir logs && \
mkdir nethermind_db
-FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble-chiseled
+FROM mcr.microsoft.com/dotnet/aspnet:9.0-noble-chiseled
WORKDIR /nethermind
diff --git a/Dockerfile.diag b/Dockerfile.diag
index 8f19070d2cc..65013a4286c 100644
--- a/Dockerfile.diag
+++ b/Dockerfile.diag
@@ -1,7 +1,7 @@
# SPDX-FileCopyrightText: 2022 Demerzel Solutions Limited
# SPDX-License-Identifier: LGPL-3.0-only
-FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-noble AS build
+FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0-noble AS build
ARG BUILD_CONFIG=release
ARG BUILD_TIMESTAMP
@@ -22,7 +22,7 @@ RUN dotnet tool install -g dotnet-dump && \
dotnet tool install -g dotnet-trace && \
dotnet tool install -g JetBrains.dotTrace.GlobalTools
-FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble
+FROM mcr.microsoft.com/dotnet/aspnet:9.0-noble
WORKDIR /nethermind
diff --git a/global.json b/global.json
index c33ebd20493..38ab05dd0a5 100644
--- a/global.json
+++ b/global.json
@@ -1,7 +1,7 @@
{
"sdk": {
- "version": "8.0.0",
- "allowPrerelease": false,
+ "version": "9.0.0",
+ "allowPrerelease": true,
"rollForward": "latestFeature"
}
}
diff --git a/src/Nethermind/Directory.Build.props b/src/Nethermind/Directory.Build.props
index 5d2ad7cd802..5edb7ed6a78 100644
--- a/src/Nethermind/Directory.Build.props
+++ b/src/Nethermind/Directory.Build.props
@@ -4,8 +4,8 @@
Debug
true
latest
- net8.0
- true
+ net9.0
+
true
diff --git a/src/Nethermind/Directory.Packages.props b/src/Nethermind/Directory.Packages.props
index 7d129079f0f..f2ad2d6fde2 100644
--- a/src/Nethermind/Directory.Packages.props
+++ b/src/Nethermind/Directory.Packages.props
@@ -27,8 +27,8 @@
-
-
+
+
@@ -38,9 +38,9 @@
-
-
-
+
+
+
@@ -75,10 +75,10 @@
-
-
+
+
-
+
diff --git a/src/Nethermind/Nethermind.ExternalSigner.Plugin/Nethermind.ExternalSigner.Plugin.csproj b/src/Nethermind/Nethermind.ExternalSigner.Plugin/Nethermind.ExternalSigner.Plugin.csproj
index 31ecca4eede..59e2b3e5938 100644
--- a/src/Nethermind/Nethermind.ExternalSigner.Plugin/Nethermind.ExternalSigner.Plugin.csproj
+++ b/src/Nethermind/Nethermind.ExternalSigner.Plugin/Nethermind.ExternalSigner.Plugin.csproj
@@ -1,7 +1,6 @@
- net8.0
enable
enable
diff --git a/src/Nethermind/Nethermind.Runner/Dockerfile b/src/Nethermind/Nethermind.Runner/Dockerfile
index 026a7a7c4fb..ced7515b731 100644
--- a/src/Nethermind/Nethermind.Runner/Dockerfile
+++ b/src/Nethermind/Nethermind.Runner/Dockerfile
@@ -1,26 +1,45 @@
-#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
+# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
+
+# This stage is used when running from VS in fast mode (Default for Debug configuration)
+FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
+
+#USER app
-FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
VOLUME /data
EXPOSE 8545 8551 30303
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
+# This stage is used to build the service project
+FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+ARG BUILD_CONFIGURATION=Release
+
WORKDIR /src
+COPY Directory.*.props .
+COPY nuget.config .
COPY Nethermind.*/Nethermind.*.csproj Nethermind.*/
RUN dotnet restore Nethermind.Runner/Nethermind.Runner.csproj
+
COPY . .
+
WORKDIR /src/Nethermind.Runner
-RUN dotnet build Nethermind.Runner.csproj -c release -o /app/build
+RUN dotnet build Nethermind.Runner.csproj -c $BUILD_CONFIGURATION -o /app/build
+
+# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
-RUN dotnet publish Nethermind.Runner.csproj -c release -o /app/publish -p:UseAppHost=false
+ARG BUILD_CONFIGURATION=Release
+
+RUN dotnet publish Nethermind.Runner.csproj -c $BUILD_CONFIGURATION -o /app/publish -p:UseAppHost=false
+# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
+
WORKDIR /app
+
COPY --from=publish /app/publish .
+
ENTRYPOINT ["dotnet", "nethermind.dll"]
diff --git a/src/Nethermind/Nethermind.Runner/Properties/launchSettings.json b/src/Nethermind/Nethermind.Runner/Properties/launchSettings.json
index 7c43a7b79a7..d58400541f8 100644
--- a/src/Nethermind/Nethermind.Runner/Properties/launchSettings.json
+++ b/src/Nethermind/Nethermind.Runner/Properties/launchSettings.json
@@ -114,7 +114,7 @@
},
"Docker": {
"commandName": "Docker",
- "commandLineArgs": "-c holesky --data-dir .data /data --jsonrpc-enginehost 0.0.0.0 --jsonrpc-engineport 8551 --jsonrpc-host 0.0.0.0"
+ "commandLineArgs": "-c holesky --data-dir /data --jsonrpc-enginehost 0.0.0.0 --jsonrpc-engineport 8551 --jsonrpc-host 0.0.0.0"
}
}
}
diff --git a/src/Nethermind/Nethermind.State/PersistentStorageProvider.cs b/src/Nethermind/Nethermind.State/PersistentStorageProvider.cs
index 27f814222f8..5af8d6aa374 100644
--- a/src/Nethermind/Nethermind.State/PersistentStorageProvider.cs
+++ b/src/Nethermind/Nethermind.State/PersistentStorageProvider.cs
@@ -347,7 +347,7 @@ public void CommitTrees(IBlockCommitter blockCommitter)
}
}
- Task.WaitAll(commitTask.ToArray());
+ Task.WaitAll(commitTask);
_toUpdateRoots.Clear();
// only needed here as there is no control over cached storage size otherwise
diff --git a/src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs b/src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs
index f3781550d06..848a23ff7db 100644
--- a/src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs
+++ b/src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs
@@ -806,7 +806,7 @@ void TopLevelPersist(TrieNode tn, Hash256? address2, TreePath path)
{
(TrieNode trieNode, Hash256? address2, TreePath path2) = entry;
PersistNodeStartingFrom(trieNode, address2, path2, persistedNodeRecorder, writeFlags, disposeQueue);
- })).ToArray());
+ })));
disposeQueue.CompleteAdding();
Task.WaitAll(_disposeTasks);
diff --git a/tools/Directory.Build.props b/tools/Directory.Build.props
new file mode 100644
index 00000000000..1900f35c2c2
--- /dev/null
+++ b/tools/Directory.Build.props
@@ -0,0 +1,13 @@
+
+
+
+ Debug
+ latest
+ net9.0
+ enable
+ enable
+
+ true
+
+
+
diff --git a/tools/DocGen/DocGen.csproj b/tools/DocGen/DocGen.csproj
index bf97292bb15..2cb59f682c1 100644
--- a/tools/DocGen/DocGen.csproj
+++ b/tools/DocGen/DocGen.csproj
@@ -2,9 +2,6 @@
Exe
- net8.0
- enable
- enable
diff --git a/tools/HiveCompare/HiveCompare/HiveCompare.csproj b/tools/HiveCompare/HiveCompare.csproj
similarity index 65%
rename from tools/HiveCompare/HiveCompare/HiveCompare.csproj
rename to tools/HiveCompare/HiveCompare.csproj
index 61ac6a5d41c..4a87ef843db 100644
--- a/tools/HiveCompare/HiveCompare/HiveCompare.csproj
+++ b/tools/HiveCompare/HiveCompare.csproj
@@ -2,9 +2,6 @@
Exe
- net8.0
- enable
- enable
diff --git a/tools/HiveCompare/HiveCompare.sln b/tools/HiveCompare/HiveCompare.sln
index 185a56d11b6..6cbb5651689 100644
--- a/tools/HiveCompare/HiveCompare.sln
+++ b/tools/HiveCompare/HiveCompare.sln
@@ -1,9 +1,9 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
+# 17
VisualStudioVersion = 17.4.33122.133
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HiveCompare", "HiveCompare\HiveCompare.csproj", "{D4F2D91C-F015-4070-BE34-C98C0E930279}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HiveCompare", "HiveCompare.csproj", "{FCFD5C39-B554-4AA5-98F7-6539A950F8EE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +11,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D4F2D91C-F015-4070-BE34-C98C0E930279}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D4F2D91C-F015-4070-BE34-C98C0E930279}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D4F2D91C-F015-4070-BE34-C98C0E930279}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D4F2D91C-F015-4070-BE34-C98C0E930279}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FCFD5C39-B554-4AA5-98F7-6539A950F8EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FCFD5C39-B554-4AA5-98F7-6539A950F8EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FCFD5C39-B554-4AA5-98F7-6539A950F8EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FCFD5C39-B554-4AA5-98F7-6539A950F8EE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/tools/HiveCompare/HiveCompare/Models/HiveTestResult.cs b/tools/HiveCompare/Models/HiveTestResult.cs
similarity index 100%
rename from tools/HiveCompare/HiveCompare/Models/HiveTestResult.cs
rename to tools/HiveCompare/Models/HiveTestResult.cs
diff --git a/tools/HiveCompare/HiveCompare/Program.cs b/tools/HiveCompare/Program.cs
similarity index 100%
rename from tools/HiveCompare/HiveCompare/Program.cs
rename to tools/HiveCompare/Program.cs
diff --git a/tools/HiveConsensusWorkflowGenerator/HiveConsensusWorkflowGenerator.csproj b/tools/HiveConsensusWorkflowGenerator/HiveConsensusWorkflowGenerator.csproj
index 217877d9884..03a20e3003b 100644
--- a/tools/HiveConsensusWorkflowGenerator/HiveConsensusWorkflowGenerator.csproj
+++ b/tools/HiveConsensusWorkflowGenerator/HiveConsensusWorkflowGenerator.csproj
@@ -2,9 +2,6 @@
Exe
- net8.0
- enable
- enable
HiveConsensusWorkflowGenerator
diff --git a/tools/Nethermind.Tools.Kute/Nethermind.Tools.Kute.csproj b/tools/Nethermind.Tools.Kute/Nethermind.Tools.Kute.csproj
index 32fb32af4b3..5acd865395d 100644
--- a/tools/Nethermind.Tools.Kute/Nethermind.Tools.Kute.csproj
+++ b/tools/Nethermind.Tools.Kute/Nethermind.Tools.Kute.csproj
@@ -2,9 +2,6 @@
Exe
- net8.0
- enable
- enable
diff --git a/tools/SendBlobs/SendBlobs.csproj b/tools/SendBlobs/SendBlobs.csproj
index df746e10d83..a122dec45f6 100644
--- a/tools/SendBlobs/SendBlobs.csproj
+++ b/tools/SendBlobs/SendBlobs.csproj
@@ -1,11 +1,7 @@
-
Exe
- net8.0
- enable
- enable
true
true
*.pdb
diff --git a/tools/TxParser/TxParser.csproj b/tools/TxParser/TxParser.csproj
index 08e4356ef34..828a5ae38f1 100644
--- a/tools/TxParser/TxParser.csproj
+++ b/tools/TxParser/TxParser.csproj
@@ -1,5 +1,9 @@
+
+ Exe
+
+
@@ -9,11 +13,4 @@
-
- Exe
- net8.0
- enable
- enable
-
-