Releases: status-im/nimbus-eth2
v1.0.7
A release which provides additional protection against accidental slashings and further performance improvements across the board.
New additions:
-
New slashing protection mechanism (doppelganger detection) prevents your validator from contradicting itself if you have accidentally left it running on another machine(see the
--doppelganger-detectionoption). -
Optimized batching of BLS signature verification leading to faster sync speeds and reduced CPU load.
-
Further improvements to attestation subnet walking resulting in a reduction in both bandwidth and CPU usage.
-
A new
--subscribe-all-subnetsoption allowing the node to maintain peers from all attestation subnets (most suitable for bootstrap nodes). -
Official docker images published at https://hub.docker.com/r/statusim/nimbus-eth2
-
Official Windows binaries created from a reproducible build recipe.
-
An option to enable the automatic updating of IP:Port in the ENR (off by default, specify
--enr-auto-update:trueto turn it on)
We've fixed:
-
A bug that had the potential to completely halt all syncing activity.
-
Inefficient processing of blocks with Eth1 deposits which occassionally led to increased latencies when delivering attestations.
-
Outdated records in our bootstrap nodes list.
-
An Eth1 syncing issue which manifested itself as a "Corrupted deposits history detected" error.
-
Non-standard encoding of certain data types such as signatures and bit sequences within the results of JSON-RPC requests.
We've deprecated:
-
make beacon_nodewill no longer compile the beacon node. You'll need to runmake nimbus_beacon_nodefrom now on -
On monday we'll phase out the old
masterbranch. If you're still building Nimbus frommaster, please switch tostable.
v1.0.6
A release that brings reproducible precompiled binaries for ARM devices and
significant performance improvements.
New additions:
-
Reproducible build recipe for creating Nimbus Linux binaries intended for
ARM devices. -
Improved attestation subnet walking logic: this brings significant reductions
in bandwidth usage and CPU load. -
Better usage of the Sqlite3 checkpointing API (minor performance
improvement). -
Larger window for the candidate attestations included in blocks: this can lead
to higher block rewards.
We've fixed:
- Incorrect
attnetsvalue announced in ENR records.
Please note that the 1.0.5 release was retracted: it included an
optimization to the reproducible build scripts that turned out to be buggy
(specifically, the binary for AMD64 systems was affected). Manually built binaries (through Make) were not affected. This release (1.0.6) fixes the problem and contains the same release notes.
v1.0.4
A release that brings further stability improvements and minor performance
optimisations.
New additions:
-
Nimbus can now be safely shut down with the SIGTERM signal on POSIX systems.
-
Discovery IP limits greatly increase the cost of eclipse attacks.
-
A
make benchmarkstarget for obtaining a performance score for your system. -
An upgrade of the BLST library bringing minor performance improvements.
We've fixed:
-
Gossipsub resource leaks that were reducing the quality of the gossipsub mesh and
the attestation effectiveness of the client. -
Incomplete validation of forwarded attestations that may have been negatively affecting peer scores.
-
An issue halting the activity of the Eth1 monitor.
-
An incorrect zero validator balance displayed while the node is syncing.
-
A regression preventing Nimbus from being used with custom testnet metadata files.
v1.0.3
This release fixes issues that have been responsible for Nimbus' lower peer scores on the network.
New additions:
-
New metrics to track the syncing progress of the Eth1 deposit contract
monitor. -
A new
web3 testcommand to test the compatibility of a web3 provider
before using it. Example usage:build/nimbus_beacon_node web3 test ws://localhost:1000
We've fixed:
-
An incorrect timing error that occurred when sending aggregated attestations.
-
Stale ENR records that didn't take into account the dynamic attestation subnet
hopping. -
An invalid error message (validator
state unknown) produced by thedeposits exitcommand.
v1.0.2
A release that fixes an issue regarding the occasional missed block proposal.
Proposing a block is arguably the most important duty you have as a validator. So we recommend updating at your earliest convenience.
New additions:
- 8 new JSON-RPC calls that bring us to feature parity with the official beacon node API.
We've fixed:
-
A deposit merkle proofs generation issue which occasionally resulting in missed block proposals shortly after a new Eth1 head was selected.
-
Slow status bar updates in the absence of logging messages.
v1.0.1
A release with a number of important fixes and optimisations.
Please update at your earliest convenience.
In order to minimise downtime, we recommend updating and rebuilding the beacon node before restarting.
New additions:
- More conservative Eth1 syncing requests to reduce the likelihood of going over the maximum allowed burst rates under the Infura free plan (predominantly aimed at those running Nimbus on resource-restricted device like Raspberry Pi's) + more resiliency in case of errors.
We've fixed:
-
A "Only one concurrent read allowed" crash reported by multiple users.
-
An error in the default configuration preventing the node from discovering peers on mainnet unless the
--network=mainnetflag was passed (note, this did not affect users starting their node with the./run-mainnet-beacon-nodecommand). -
The fractional part of the ETH balance in the Nimbus status bar (the value displayed should now be correct).
-
An issue that occasionally caused the Eth1 syncing process to get stuck before reaching the head of the chain.
-
Unnecessary network traffic related to GossipSub
IHAVE. -
Incorrect gossipsub pruning which occasionally resulted in messages getting lost.
-
An issue where an excessively long graffiti string could cause a crash on startup.
-
A Linux-only issue that resulted in the
deposits importcommand ignoring its supplied arguments.
Stay Updated 🙏
If you're building Nimbus from source, to update (from master) run:
git pull && make update
Followed by
make nimbus_beacon_node
✨
Stateofus (v1.0.0)
As promised, a slightly more polished release before Mainnet launch ✨
Please make sure you update to this release before Eth2 genesis on
Tuesday (December 1 12:00:23 UTC), as it contains some important improvements.
We recommend monitoring the release channels (Discord, here) for new releases over the next 48 hours (i.e until genesis is over and things are stable).
New additions:
-
Updated list of bootstrap nodes for Mainnet.
-
Prometheus metrics for validator balances. The beacon node will also
display the total balance of all attached validators in the status
footer by default. -
deposits importnow automagically finds thevalidator_keysdirectory
produced by theeth2.0-deposit-cliif it is located in the same working
directory. -
A
deposits exitcommand for submitting a voluntary validator exit. -
A
recordCLI command for inspecting and creating ENR records. -
An
--agent-stringoption for specifying how Nimbus will present itself
in LibP2P messages. The default value is nownimbus. -
New RPC calls to track node and config status. Specifically, a JSON-RCP
call for inspecting the active config preset (get_v1_config_spec).
We've fixed:
-
Inaccurate peer counts (an occasional mismatch between the number of
syncing peers and GossipSub peers) -- the default peer limit has been
increased to maintain a healthy gossip mesh. -
High bandwidth usage of GossipSub (due to sub-optimal caching and lack
of limits in the IWANT/IHAVE exchange messages) -- we're now using the
latest spec GossipSub parameters. -
High sync memory footprint -- we've reduced the number of sync workers
from 20 to 10 (note, this should not affect sync speed).
Stay updated 🙏
If you're building Nimbus from source, to update (from master) run:
git pull && make update
Followed by
make nimbus_beacon_node
As usual, see the Nimbus book for the latest documentation updates. In particular we've pushed a significant update to our Raspberry Pi guide (we now recommend using a 64-bit OS and an Enterprise grade SSD), added a page on Mainnet recommendations for Pi users, a page on voluntary exits, and documented our new simplified key-importing process.
v0.6.6 (hope)
New additions:
- New RPC APIs for inspecting the internal state of the Eth1 monitor.
We've fixed:
-
A fork-choice issue causing Nimbus to get stuck on a particular slot.
-
A logic error causing Nimbus to vote for an incorrect Eth1 block.
-
A crash during initialization when the web3 provider refuses
to serve data (for example, when a request quota has been exceeded).
Notes:
-
This release takes a bit longer to start than usual - this will be addressed in the next release
-
To update to the latest version, run:
git pull && make update
Followed by
make nimbus_beacon_node
(If your beacon node is already running, you'll need to disconnect -- Ctrl+C -- and reconnect for the changes to take effect)
Seen the Nimbus book for more.
v0.6.4 (hope)
New additions:
-
Support for the Pyrmont testnet.
-
The PCRE library is no longer needed to build Nimbus.
-
Sensitive files such as keystores are now accessible only to the
user of the beacon node on POSIX systems (the group rights have
been dropped).
We've fixed:
-
An issue preventing blocks from being downloaded when the client goes
out of sync. -
Resource leaks that occasionally led to a reduction in network activity (caused by a build-up of malfunctioning peer connections).
v0.6.2 (hope)
A bugfix release addressing issues discovered in the Toledo network.
New features include:
-
GossipSub 1.1
-
The beacon node status bar (footer) now contains a
time-left-until-synced estimate. -
A JSON-RPC method
setLogLevelfor dynamically changing the
log level of selected components at run-time. -
The ability to launch Nimbus with a partially-synced Geth node.
We've fixed:
-
A bug preventing the node from proposing blocks when connected
to a web3 provider -
An invalid "corrupted database" error message appearing on start-up
-
Incorrectly set message-ids in gossip message causing other clients
to penalise and potentially disconnect our nodes from the network. -
An issue occuring when Nimbus is paired with a Geth node
that is not fully synced.