Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This preview brings Nimbus full circle to where it started all these years ago and allows running Ethereum in a single node / process, both as a wallet/web3 backend and as a validator.
Among interesting properies are:
Running ethereum and syncing mainnet is now as easy as:
The consensus chain will start from a checkpoint while the execution chain will still be synced via P2P.
You need about 500GB of space in total, but if you're buying a drive today, get 2 or 4 TB anyway.
Testnets like
hoodi
can reasonably be synced from P2P all the way (takes a bit more than a day at the time of writing), without the checkpoint sync:That's it! The node can now be used both for validators and as a web3 provider.
--rpc
gives you the web3 backend which allows connecting wallets while--rest
gives the beacon api that validator clients use.Of course, you can run your validators in the
node as well.
Here's a true maxi configuration that turns on (almost) everything:
The execution chain can also be imported from era files, downloading the history from https://mainnet.era.nimbus.team/ and https://mainnet.era1.nimbus.team/ and placing them in
era
andera1
in the data directory as the manual suggests, then running animport
- it takes a few days:If you were already running nimbus, you can reuse your existing data directory - use
--data-dir:/some/path
as usual with all the commands to specify where you want your data stored - if you had both eth1 and eth2 directories, just merge their contents.To get up and running more quickly, snapshots of the mainnet execution database are maintained here:
https://eth1-db.nimbus.team/
Together with checkpoint sync, you'll have a fully synced node in no time!
In future versions, this will be replaced by snap sync or an equivalent state sync mechanism.
To build the protoype:
In a single process binary, the beacon and execution chain are each running in their own thread, sharing data directory and common services, similar to running the two pieces separately with the same data dir.
One way to think about it is that the execution client and beacon nodes are stand-alone libraries that are being used together - this is not far from the truth and in fact, you can use either (or both!) as a library.
The binary supports the union of all functionality that
nimbus_execution_client
andnimbus_beacon_node
offers, including all the subcommands like checkpointsync and execution history
import, simply using the
nimbus
command instead.Prototype notes: