Skip to content

Releases: status-im/nimbus-eth2

v1.1.0

09 Apr 19:39
Compare
Choose a tag to compare

This release brings planned reforms to our database schema that provide substantial performance improvements and pave the way for an improved pause-free doppelganger detection (reserved for a future release).

Please be aware that, while we are committed to maintaining backwards compatibility between releases, this release does not support seamlessly downgrading back to any previous 1.0.x release. While you shouldn't need to downgrade, if for some reason you do, please get in touch with us before.

Even though we've tested this release extensively, as an extra safety precaution we advise you to **backup your Nimbus database (nbc.sqlite3) before upgrading -- the best way to do this is to simply copy it over (you'll find it either in build/data/shared_mainnet_0/db/, or the directory you supplied to the --data-dir argument when you launched Nimbus).

New features:

  • More efficient state storage format ==> reduced I/O load and lower storage requirements.

  • More efficient in-memory cache for non-finalized states ==> significant reduction in memory
    usage.

  • More efficient slashing database schema ==> scales better to a larger number of validators.

  • The metrics support is now compiled by default thanks to a new and more secure HTTP back-end.

  • setGraffiti JSON-RPC call for modifying the graffiti bytes of the client at run-time.

  • next_action_wait metric indicating the time until the next scheduled
    attestation or block proposal.

  • More convenient command-line help messages providing information regarding the default
    values of all parameters.

  • --direct-peer gives you the ability to specify gossip nodes to automatically connect to.

  • Official docker images for ARM and ARM64.

  • Support for fallback --web3-url providers.

We've fixed:

  • Long processing delays induced by database pruning.

  • File descriptor leaks (which manifested after failures of the selected web3 provider).

  • The validator APIs now return precise actual balances instead of rounded effective balances.

  • A connection tracking problem which produced failed outgoing connection attempts.

Breaking changes:

  • Nimbus-specific JSON-RPCs intended for debug purposes now have the debug_ prefix:

    • getGossipSubPeers is now debug_getGossipSubPeers
    • getChronosFutures is now debug_getChronosFutures

SHA512 checksums:

# Linux AMD64
8d553ea5422645b5f06001e7f47051706ae5cffd8d88c45e4669939f3abb6caf41a2477431fce3e647265cdb4f8671fa360d392f423ac68ffb9459607eaab462  nimbus_beacon_node
# Linux ARM64
93ffd03a0ce67f7d035e3dc45e97de3c2c9a05a8dd0c6d5f45402ddb04404dc3cf15b80fee972f34152ef171ce97c40f794448bc779ca056081c945f71f19788  nimbus_beacon_node
# Linux ARM
f2e75f3fae2aea0a9f8d45861d52b0e2546c3990f453b509fab538692d18c64e65f58441c5492064fc371e0bc77de6bab970e05394cfd124417601b55cb4a825  nimbus_beacon_node
# Windows AMD64
fd68c8792ea60c2c72e9c2201745f9698bfd1dae4af4fa9e1683f082109045efebd1d80267f13cafeb1cd7414dc0f589a8a73f12161ac2758779369289d5a832  nimbus_beacon_node

v1.0.12

24 Mar 21:38
8391d3f
Compare
Choose a tag to compare

This is a bugfix release correcting a minor error in the built-in Prater testnet configuration (an error which led to incorrect eth1 voting).

You can find the binary executable files under assets below.

v1.0.11

22 Mar 21:14
25695d1
Compare
Choose a tag to compare

This is a minor release adding support for connecting to the Prater testnet.

v1.0.10

11 Mar 07:56
77ee210
Compare
Choose a tag to compare

This release contains important security and performance improvements.

Note: You may have noticed that we've skipped a release version. While we did push v1.0.9 to the stable branch, we didn't make an official release or publish any binaries for it. v1.0.10 differs from v1.0.9 only in that it keep tracks of your attestations in both the old and the new database formats. This ensures you are able to safely rollback should you need to do so. If you're already running v1.0.9, upgrading to v1.0.10 is safe (we recommend you upgrade at your convenience); in order to be extra safe, please do not switch off doppelganger detection (it should be on by default).


Upgraded:

We've fixed:

  • A frequent crash occurring on certain hardware configurations after
    building Nimbus from source.

  • Long processing delays triggered by the reception of attestations that
    reference already pruned states.

  • LibP2P peer management issue which led to an accumulation of inactive
    connections.

  • A false-positive in doppelganger detection triggered by rebroadcasted
    older attestations arriving with a significant delay.

New features:

  • A new improved format of the slashing protection database:

    • Significantly reduces the disk load with a large number of validators (1000+).

    • Makes it possible to enhance our doppelganger detection in the future ---
      waiting for 2 epochs before attesting on launch will no longer be necessary.

    • To ensure a smooth upgrade and the possibility for emergency rollbacks between older and future Nimbus versions, v1.0.10 will keep track of your attestations in both the old and the new database formats. This extra load should be negligible for home stakers.

  • Automatic configuration of external IP address when a public IP address is used or when a public IP address is provided as a listener address. This is active by default (--nat:any) and with the option --nat:none. It is deactivated when you pass in --nat:upnp, --nat:pmp or --nat:extip:<ip address>. In practice this means that if you run your node and are not behind NAT (e.g. cloud setups without docker), you should no longer need to provide --nat:extip:<ip address>

v1.0.8

22 Feb 15:27
5f62a39
Compare
Choose a tag to compare

This release includes important JSON-RPC stability improvements and compatibility fixes, which make it possible to use Nimbus as a RocketPool operator.


New features:

  • RocketPool integration ready: see rocket-pool/smartnode#89 and rocket-pool/smartnode-install@da720ac

  • Next attestation time displayed on every Slot end log message (helps you select the best time for restarting the node)

  • libp2p scoring: disconnect from badly performing peers and prioritise peers with better latency and throughput

We've fixed:

  • A rare crash triggered when connecting to a web3 provider using a secure web socket

  • JSON-RPC spec violations (we fixed a bug in the json module used to read eth1 data which could have allowed a malicious eth1 provider to crash Nimbus)

  • Two stale bootstrap node addresses

v1.0.7

04 Feb 19:36
596b8c6
Compare
Choose a tag to compare

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-detection option).

  • 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-subnets option 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:true to 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_node will no longer compile the beacon node. You'll need to run make nimbus_beacon_node from now on

  • On monday we'll phase out the old master branch. If you're still building Nimbus from master, please switch to stable.

v1.0.6

10 Jan 15:41
87955f2
Compare
Choose a tag to compare

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 attnets value 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

16 Dec 20:37
f06e6d4
Compare
Choose a tag to compare

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 benchmarks target 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

10 Dec 01:15
9174132
Compare
Choose a tag to compare

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 test command 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 the deposits exit command.

v1.0.2

03 Dec 18:15
d302c1d
Compare
Choose a tag to compare

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.