Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document a fast run of 1 single node for development (devnet) #7801

Open
Muhammad-Altabba opened this issue Nov 25, 2024 · 2 comments
Open
Assignees
Labels

Comments

@Muhammad-Altabba
Copy link

Muhammad-Altabba commented Nov 25, 2024

Is your feature request related to a problem? Please describe.
Need to simply run a single node for development. But could not find a documentation for that. There is only a documentation for runing a node on mainnet or testnet, or to run a private network using Kurtosis. But as a developer I do not need to have 3 nodes and setup and configure an additional application (Kurtosis) just to be able to try Nethermind. Or is it just not possible with the current configuration possibility to run only one stand alone node for development?

Describe the solution you'd like
To simply support an easy way to run a standalone devnet node and document this. For example, in geth, the developers just pass --dev flag.

Describe alternatives you've considered
Check please: https://geth.ethereum.org/docs/developers/dapp-developer/dev-mode

Thanks,

@MarekM25
Copy link
Contributor

Thanks for reporting, @Muhammad-Altabba.

The equivalence of dev mode in Geth in Nethermind is spaceneth. To run this, you can specify the config:
./nethermind -c spaceneth

However, thanks for your feedback about the docs. Indeed, this is missing.

@rubo, could you explore this topic whenever you have time?

@MarekM25 MarekM25 added the docs label Nov 29, 2024
@Muhammad-Altabba
Copy link
Author

Muhammad-Altabba commented Dec 2, 2024

The equivalence of dev mode in Geth in Nethermind is spaceneth. To run this, you can specify the config: ./nethermind -c spaceneth

Many thanks,
I tried nethermind -c spaceneth but that failed short with the following log:

2024-12-02 08-13-41.5866|Nethermind starting initialization.
2024-12-02 08-13-41.5984|Client version: Nethermind/v1.29.1+dfea5240/linux-x64/dotnet8.0.10
2024-12-02 08-13-41.6033|Loading embedded plugins
2024-12-02 08-13-41.6034| Found plugin type Nethermind.Consensus.AuRa.AuRaPlugin
2024-12-02 08-13-41.6034| Found plugin type Nethermind.Consensus.Clique.CliquePlugin
2024-12-02 08-13-41.6034| Found plugin type Nethermind.Consensus.Ethash.EthashPlugin
2024-12-02 08-13-41.6034| Found plugin type Nethermind.Consensus.Ethash.NethDevPlugin
2024-12-02 08-13-41.6034| Found plugin type Nethermind.Hive.HivePlugin
2024-12-02 08-13-41.6034| Found plugin type Nethermind.UPnP.Plugin.UPnPPlugin
Resolved executing directory as /usr/share/nethermind.
2024-12-02 08-13-41.6134|Loading 11 assemblies from /usr/share/nethermind/plugins
2024-12-02 08-13-41.6135|Loading assembly Nethermind.Optimism
2024-12-02 08-13-41.6165| Found plugin type Nethermind.Optimism
2024-12-02 08-13-41.6165|Loading assembly Nethermind.JsonRpc.TraceStore
2024-12-02 08-13-41.6171| Found plugin type Nethermind.JsonRpc.TraceStore
2024-12-02 08-13-41.6171|Loading assembly Nethermind.Merge.Plugin
2024-12-02 08-13-41.6187| Found plugin type Nethermind.Merge.Plugin
2024-12-02 08-13-41.6187|Loading assembly Nethermind.ExternalSigner.Plugin
2024-12-02 08-13-41.6189| Found plugin type Nethermind.ExternalSigner.Plugin
2024-12-02 08-13-41.6189|Loading assembly Nethermind.Init.Snapshot
2024-12-02 08-13-41.6191| Found plugin type Nethermind.Init.Snapshot
2024-12-02 08-13-41.6191|Loading assembly Nethermind.Api
2024-12-02 08-13-41.6193|Loading assembly Nethermind.Consensus.AuRa
2024-12-02 08-13-41.6204|Loading assembly Nethermind.HealthChecks
2024-12-02 08-13-41.6208| Found plugin type Nethermind.HealthChecks
2024-12-02 08-13-41.6208|Loading assembly Nethermind.Init
2024-12-02 08-13-41.6210|Loading assembly Nethermind.EthStats
2024-12-02 08-13-41.6212| Found plugin type Nethermind.EthStats
2024-12-02 08-13-41.6212|Loading assembly Nethermind.Merge.AuRa
2024-12-02 08-13-41.6214| Found plugin type Nethermind.Merge.AuRa
2024-12-02 08-13-41.6526|Loading standard NLog.config file from /usr/share/nethermind/NLog.config.
2024-12-02 08-13-41.6889|NLog.config loaded in 35ms.
2024-12-02 08-13-41.7008|Reading config file from /usr/share/nethermind/configs/spaceneth.cfg
2024-12-02 08-13-41.7146|Configuration initialized.
2024-12-02 08-13-41.7164|Critical file logging could not be instantiated! Sticking to console logging till config is loaded.

I tryed with sudo nethermind -c spaceneth which failed after logging:

2024-12-02 08-13-56.3270|Nethermind starting initialization.
2024-12-02 08-13-56.3389|Client version: Nethermind/v1.29.1+dfea5240/linux-x64/dotnet8.0.10
2024-12-02 08-13-56.3437|Loading embedded plugins
2024-12-02 08-13-56.3437| Found plugin type Nethermind.Consensus.AuRa.AuRaPlugin
2024-12-02 08-13-56.3438| Found plugin type Nethermind.Consensus.Clique.CliquePlugin
2024-12-02 08-13-56.3438| Found plugin type Nethermind.Consensus.Ethash.EthashPlugin
2024-12-02 08-13-56.3438| Found plugin type Nethermind.Consensus.Ethash.NethDevPlugin
2024-12-02 08-13-56.3438| Found plugin type Nethermind.Hive.HivePlugin
2024-12-02 08-13-56.3438| Found plugin type Nethermind.UPnP.Plugin.UPnPPlugin
Resolved executing directory as /usr/share/nethermind.
2024-12-02 08-13-56.3535|Loading 11 assemblies from /usr/share/nethermind/plugins
2024-12-02 08-13-56.3535|Loading assembly Nethermind.Optimism
2024-12-02 08-13-56.3686| Found plugin type Nethermind.Optimism
2024-12-02 08-13-56.3686|Loading assembly Nethermind.JsonRpc.TraceStore
2024-12-02 08-13-56.3693| Found plugin type Nethermind.JsonRpc.TraceStore
2024-12-02 08-13-56.3693|Loading assembly Nethermind.Merge.Plugin
2024-12-02 08-13-56.3709| Found plugin type Nethermind.Merge.Plugin
2024-12-02 08-13-56.3709|Loading assembly Nethermind.ExternalSigner.Plugin
2024-12-02 08-13-56.3711| Found plugin type Nethermind.ExternalSigner.Plugin
2024-12-02 08-13-56.3711|Loading assembly Nethermind.Init.Snapshot
2024-12-02 08-13-56.3713| Found plugin type Nethermind.Init.Snapshot
2024-12-02 08-13-56.3713|Loading assembly Nethermind.Api
2024-12-02 08-13-56.3715|Loading assembly Nethermind.Consensus.AuRa
2024-12-02 08-13-56.3726|Loading assembly Nethermind.HealthChecks
2024-12-02 08-13-56.3731| Found plugin type Nethermind.HealthChecks
2024-12-02 08-13-56.3731|Loading assembly Nethermind.Init
2024-12-02 08-13-56.3733|Loading assembly Nethermind.EthStats
2024-12-02 08-13-56.3735| Found plugin type Nethermind.EthStats
2024-12-02 08-13-56.3735|Loading assembly Nethermind.Merge.AuRa
2024-12-02 08-13-56.3737| Found plugin type Nethermind.Merge.AuRa
2024-12-02 08-13-56.4050|Loading standard NLog.config file from /usr/share/nethermind/NLog.config.
2024-12-02 08-13-56.4410|NLog.config loaded in 35ms.
2024-12-02 08-13-56.4590|Reading config file from /usr/share/nethermind/configs/spaceneth.cfg
2024-12-02 08-13-56.4790|Configuration initialized.
02 Dec 08:13:56 | RocksDb Version: 9.4.0
02 Dec 08:13:56 | Loading chainspec from embedded resources: /usr/share/nethermind/chainspec/spaceneth.json
02 Dec 08:13:56 | CPU: (CT)
02 Dec 08:13:56 | Using http://ipv4.icanhazip.com to get external ip
02 Dec 08:13:56 | Setting up memory allowances
02 Dec 08:13:56 | Memory hint: 64 MB
02 Dec 08:13:56 | General memory: 32 MB
02 Dec 08:13:56 | Peers memory: 4 MB
02 Dec 08:13:56 | Netty memory: 4 MB
02 Dec 08:13:56 | Mempool memory: 6 MB
02 Dec 08:13:56 | Fast blocks memory: 0 MB
02 Dec 08:13:56 | Trie memory: 3 MB
02 Dec 08:13:56 | DB memory: 13 MB
02 Dec 08:13:56 | Generating private key for the node (no node key in configuration) - stored in plain + key store for JSON RPC unlocking
02 Dec 08:13:57 | Store this password for unlocking the node key for JSON RPC - this is not secure - this log message will be in your log files. Use only in DEV contexts.
02 Dec 08:13:57 | Block tree initialized, last processed is 0, best queued is 0, best known is 0, lowest inserted header , body , lowest sync inserted block number
02 Dec 08:13:57 | Address 0xc81f0759e8a73040e436a83e65b53d28347df70d is configured for signing blocks.
02 Dec 08:13:57 | Initializing 14 plugins
02 Dec 08:13:57 | Clique by Nethermind
02 Dec 08:13:57 | Clique by Nethermind initialized in 0ms
02 Dec 08:13:57 | AuRa by Nethermind
02 Dec 08:13:57 | AuRa by Nethermind initialized in 0ms
02 Dec 08:13:57 | Ethash by Nethermind
02 Dec 08:13:57 | Ethash by Nethermind initialized in 0ms
02 Dec 08:13:57 | Optimism by Nethermind
02 Dec 08:13:57 | Optimism by Nethermind initialized in 0ms
02 Dec 08:13:57 | NethDev by Nethermind
02 Dec 08:13:57 | NethDev by Nethermind initialized in 0ms
02 Dec 08:13:57 | AuRaMerge by Nethermind
02 Dec 08:13:57 | AuRaMerge by Nethermind initialized in 0ms
02 Dec 08:13:57 | Merge by Nethermind
02 Dec 08:13:57 | Merge by Nethermind initialized in 1ms
02 Dec 08:13:57 | HealthChecks by Nethermind
02 Dec 08:13:57 | HealthChecks by Nethermind initialized in 0ms
02 Dec 08:13:57 | Hive by Nethermind
02 Dec 08:13:57 | Hive by Nethermind initialized in 0ms
02 Dec 08:13:57 | Clef signer by Nethermind
02 Dec 08:13:57 | Clef signer by Nethermind initialized in 0ms
02 Dec 08:13:57 | EthStats by Nethermind
02 Dec 08:13:57 | EthStats by Nethermind initialized in 0ms
02 Dec 08:13:57 | Snapshot by Nethermind
02 Dec 08:13:57 | Snapshot by Nethermind initialized in 0ms
02 Dec 08:13:57 | TraceStore by Nethermind
02 Dec 08:13:57 | TraceStore by Nethermind initialized in 0ms
02 Dec 08:13:57 | UPnP by Nethermind
02 Dec 08:13:57 | UPnP by Nethermind initialized in 0ms
02 Dec 08:13:57 | No current state db key scheme.
02 Dec 08:13:57 | Snap serving enabled, but PruningBoundary is less than 128. Setting to 128.
02 Dec 08:13:57 | Loaded 0 static nodes from file: /usr/share/nethermind/Data/static-nodes.json
02 Dec 08:13:57 | Skipping connecting to peers due to NetworkingEnabled set to false
02 Dec 08:13:57 | Skipping discovery init due to DiscoveryEnabled set to false
02 Dec 08:13:57 | Skipping peer manager init due to PeerManagerEnabled set to false
02 Dec 08:13:57 | Found no blocks to load from DB
02 Dec 08:13:57 | Numbers resolved, level = Max(0, 0), header = Max(0, 0), body = Max(0, 0)
02 Dec 08:13:57 | Beacon Numbers resolved, level = 0, header = 0, body = 0
02 Dec 08:13:57 | Loading fork choice info
02 Dec 08:13:57 | Grafana / Prometheus metrics are disabled in configuration
02 Dec 08:13:57 | System.Diagnostics.Metrics disabled
02 Dec 08:13:57 | Starting Neth Dev block producer & sealer
02 Dec 08:13:57 | Starting NethDev block producer & sealer
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at Nethermind.HealthChecks.NodeHealthService.CheckClAlive()
at Nethermind.HealthChecks.HealthChecksPlugin.ClHealthLogger.ReportClStatus(Object _)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool)
at System.Threading.TimerQueue.FireNextTimers()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
Aborted

So, I tryed doing this with docker (docker is well configured on my machine and I use it for many other stuff).
And, I run docker run -v /nethermind/ipc:/ipc nethermind/nethermind -c spaceneth. Which gave:

2024-12-02 07-06-41.2379|Nethermind starting initialization.
2024-12-02 07-06-41.2464|Client version: Nethermind/v1.29.1+dfea5240/linux-x64/dotnet8.0.10
2024-12-02 07-06-41.2524|Loading embedded plugins
2024-12-02 07-06-41.2524| Found plugin type Nethermind.Consensus.AuRa.AuRaPlugin
2024-12-02 07-06-41.2525| Found plugin type Nethermind.Consensus.Clique.CliquePlugin
2024-12-02 07-06-41.2525| Found plugin type Nethermind.Consensus.Ethash.EthashPlugin
2024-12-02 07-06-41.2525| Found plugin type Nethermind.Consensus.Ethash.NethDevPlugin
2024-12-02 07-06-41.2525| Found plugin type Nethermind.Hive.HivePlugin
2024-12-02 07-06-41.2525| Found plugin type Nethermind.UPnP.Plugin.UPnPPlugin
Resolved executing directory as /nethermind.
2024-12-02 07-06-41.2634|Loading 11 assemblies from /nethermind/plugins
2024-12-02 07-06-41.2634|Loading assembly Nethermind.Optimism
2024-12-02 07-06-41.2919| Found plugin type Nethermind.Optimism
2024-12-02 07-06-41.2920|Loading assembly Nethermind.JsonRpc.TraceStore
2024-12-02 07-06-41.2926| Found plugin type Nethermind.JsonRpc.TraceStore
2024-12-02 07-06-41.2927|Loading assembly Nethermind.Merge.Plugin
2024-12-02 07-06-41.2986| Found plugin type Nethermind.Merge.Plugin
2024-12-02 07-06-41.2987|Loading assembly Nethermind.ExternalSigner.Plugin
2024-12-02 07-06-41.2989| Found plugin type Nethermind.ExternalSigner.Plugin
2024-12-02 07-06-41.2989|Loading assembly Nethermind.Init.Snapshot
2024-12-02 07-06-41.2991| Found plugin type Nethermind.Init.Snapshot
2024-12-02 07-06-41.2991|Loading assembly Nethermind.Api
2024-12-02 07-06-41.2994|Loading assembly Nethermind.Consensus.AuRa
2024-12-02 07-06-41.3006|Loading assembly Nethermind.HealthChecks
2024-12-02 07-06-41.3042| Found plugin type Nethermind.HealthChecks
2024-12-02 07-06-41.3042|Loading assembly Nethermind.Init
2024-12-02 07-06-41.3045|Loading assembly Nethermind.EthStats
2024-12-02 07-06-41.3047| Found plugin type Nethermind.EthStats
2024-12-02 07-06-41.3047|Loading assembly Nethermind.Merge.AuRa
2024-12-02 07-06-41.3050| Found plugin type Nethermind.Merge.AuRa
2024-12-02 07-06-41.3393|Loading standard NLog.config file from /nethermind/NLog.config.
2024-12-02 07-06-41.4024|NLog.config loaded in 62ms.
2024-12-02 07-06-41.4033|Reading config file from /nethermind/configs/spaceneth.cfg
2024-12-02 07-06-41.4182|Configuration initialized.
02 Dec 07:06:41 | RocksDb Version: 9.4.0
02 Dec 07:06:41 | ChainSpecPath matched an embedded resource inside the binary. Loading chainspec from embedded resources instead of file!
02 Dec 07:06:41 | CPU: (CT)
02 Dec 07:06:41 | Using http://ipv4.icanhazip.com to get external ip
02 Dec 07:06:41 | Setting up memory allowances
02 Dec 07:06:41 | Memory hint: 64 MB
02 Dec 07:06:41 | General memory: 32 MB
02 Dec 07:06:41 | Peers memory: 4 MB
02 Dec 07:06:41 | Netty memory: 4 MB
02 Dec 07:06:41 | Mempool memory: 6 MB
02 Dec 07:06:41 | Fast blocks memory: 0 MB
02 Dec 07:06:41 | Trie memory: 3 MB
02 Dec 07:06:41 | DB memory: 13 MB
02 Dec 07:06:41 | Generating private key for the node (no node key in configuration) - stored in plain + key store for JSON RPC unlocking
02 Dec 07:06:42 | Store this password for unlocking the node key for JSON RPC - this is not secure - this log message will be in your log files. Use only in DEV contexts.
02 Dec 07:06:42 | Block tree initialized, last processed is 0, best queued is 0, best known is 0, lowest inserted header , body , lowest sync inserted block number
02 Dec 07:06:42 | Address 0x1ca832270c884a3bf090fb35e9f0029a4bb1f3dd is configured for signing blocks.
02 Dec 07:06:42 | Initializing 14 plugins
02 Dec 07:06:42 | Clique by Nethermind
02 Dec 07:06:42 | Clique by Nethermind initialized in 0ms
02 Dec 07:06:42 | AuRa by Nethermind
02 Dec 07:06:42 | AuRa by Nethermind initialized in 0ms
02 Dec 07:06:42 | Ethash by Nethermind
02 Dec 07:06:42 | Ethash by Nethermind initialized in 0ms
02 Dec 07:06:42 | Optimism by Nethermind
02 Dec 07:06:42 | Optimism by Nethermind initialized in 0ms
02 Dec 07:06:42 | NethDev by Nethermind
02 Dec 07:06:42 | NethDev by Nethermind initialized in 0ms
02 Dec 07:06:42 | AuRaMerge by Nethermind
02 Dec 07:06:42 | AuRaMerge by Nethermind initialized in 0ms
02 Dec 07:06:42 | Merge by Nethermind
02 Dec 07:06:42 | Merge by Nethermind initialized in 1ms
02 Dec 07:06:42 | HealthChecks by Nethermind
02 Dec 07:06:42 | HealthChecks by Nethermind initialized in 1ms
02 Dec 07:06:42 | Hive by Nethermind
02 Dec 07:06:42 | Hive by Nethermind initialized in 0ms
02 Dec 07:06:42 | Clef signer by Nethermind
02 Dec 07:06:42 | Clef signer by Nethermind initialized in 0ms
02 Dec 07:06:42 | EthStats by Nethermind
02 Dec 07:06:42 | EthStats by Nethermind initialized in 0ms
02 Dec 07:06:42 | Snapshot by Nethermind
02 Dec 07:06:42 | Snapshot by Nethermind initialized in 0ms
02 Dec 07:06:42 | TraceStore by Nethermind
02 Dec 07:06:42 | TraceStore by Nethermind initialized in 0ms
02 Dec 07:06:42 | UPnP by Nethermind
02 Dec 07:06:42 | UPnP by Nethermind initialized in 0ms
02 Dec 07:06:42 | No current state db key scheme.
02 Dec 07:06:42 | Snap serving enabled, but PruningBoundary is less than 128. Setting to 128.
02 Dec 07:06:42 | Loaded 0 static nodes from file: /nethermind/Data/static-nodes.json
02 Dec 07:06:42 | Skipping connecting to peers due to NetworkingEnabled set to false
02 Dec 07:06:42 | Skipping discovery init due to DiscoveryEnabled set to false
02 Dec 07:06:42 | Skipping peer manager init due to PeerManagerEnabled set to false
02 Dec 07:06:42 | Found no blocks to load from DB
02 Dec 07:06:42 | Numbers resolved, level = Max(0, 0), header = Max(0, 0), body = Max(0, 0)
02 Dec 07:06:42 | Beacon Numbers resolved, level = 0, header = 0, body = 0
02 Dec 07:06:42 | Loading fork choice info
02 Dec 07:06:42 | Grafana / Prometheus metrics are disabled in configuration
02 Dec 07:06:42 | System.Diagnostics.Metrics disabled
02 Dec 07:06:42 | Starting Neth Dev block producer & sealer
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at Nethermind.HealthChecks.NodeHealthService.CheckClAlive() in /src/Nethermind/Nethermind.HealthChecks/NodeHealthService.cs:line 173
at Nethermind.HealthChecks.HealthChecksPlugin.ClHealthLogger.ReportClStatus(Object _) in /src/Nethermind/Nethermind.HealthChecks/HealthChecksPlugin.cs:line 211
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool)
at System.Threading.TimerQueue.FireNextTimers()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

I followed https://docs.nethermind.io/get-started/installing-nethermind/#standalone-downloads and https://docs.nethermind.io/get-started/installing-nethermind/#docker-container to install Nethermind local and using docker.
I am using Linux Mint v21.3. And Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants