Skip to content

@ethereumjs/devp2p v10.0.0-rc.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@holgerd77 holgerd77 released this 24 Mar 16:19
· 141 commits to master since this release
b1f8cbc

This is the first (and likely the last) round of RC releases for the upcoming breaking releases, following the alpha releases from October 2024 (see alpha release release notes for full/main change description). The releases are somewhat delayed (sorry for that), but final releases can now be expected very very soon, to be released once the Ethereum Pectra hardfork is scheduled for mainnet and all EIPs are fully finalized. Pectra will then also be the default hardfork setting for all EthereumJS libraries.

New Versioning Scheme

This breaking release round will come with a new versioning scheme (thanks to paulmillr for the suggestion), aligning the package numbers on breaking releases for all EthereumJS packages. This will make it easier to report bugs ("bug happened on EthereumJS version 10 releases"), reason about release series and make library compatibility more transparent and easier to grasp.

As a start we bump all major release versions to version 10, these RC releases are the first to be released with the new versioning scheme.

Native Node.js EventEmitter Replacement

We removed the last remaining internal Node.js utility dependency to make the packages more browser friendly and replace the native Node.js EventEmitter by using the eventemitter3 package as a replacement, see PR #3746.

The new package is meant to be more performant while remaining almost entirely API compatible with native Node.js event emitters.

If you directly import the Node.js event emitter, you need to switch your imports to:

import { EventEmitter } from 'events' // old
import { EventEmitter } from 'eventemitter3' // new

EthereumJS-wide Error Objects

We have done preparations to allow for handling specific error sub types in the future by introducing a monorepo-wide EthereumJSError error class in the @ethereumjs/util package, see PR #3879. This error is thrown for all error cases within the monorepo and can be specifically handled by comparing with instanceof EthereumJSError.

We will introduce a set of more specific sub error classes inheriting from this generic type in upcoming minor releases, and so keeping things fully backwards compatible. This will allow for a more specific and robust handling of errors thrown by EthereumJS libraries.

Other Changes

  • Add typing for events, PR #3753
  • Outdated LES support has been removed from the package, PR #3759