Skip to content

Commit

Permalink
Sepolia (Beta 2) Releases (#2045)
Browse files Browse the repository at this point in the history
* Block -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* Blockchain -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* Common -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* Devp2p -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* Ethash -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* EVM -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* RLP -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* StateManager -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* Trie -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* Tx -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* Util -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* VM -> Beta 2 Release: updated CHANGELOG, bumped version, updated upstream dependency versions

* Client -> Release: bumped version to v0.6.0, added CHANGELOG entry, updated README

* Client: Minor Merge README updates

* Apply suggestions from code review

Co-authored-by: acolytec3 <[email protected]>

* Devp2p, Trie: added missing CHANGELOG entries

Co-authored-by: acolytec3 <[email protected]>
  • Loading branch information
holgerd77 and acolytec3 authored Jul 17, 2022
1 parent 12fa537 commit 2dd63b9
Show file tree
Hide file tree
Showing 28 changed files with 610 additions and 72 deletions.
42 changes: 42 additions & 0 deletions packages/block/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,48 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
(modification: no type change headlines) and this project adheres to
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## 4.0.0-beta.2 - 2022-07-15

Beta 2 release for the upcoming breaking release round on the [EthereumJS monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) libraries, see the Beta 1 release notes ([CHANGELOG](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/CHANGELOG.md)) for the main change set description.

### Removed Default Exports

The change with the biggest effect on UX since the last Beta 1 releases is for sure that we have removed default exports all accross the monorepo, see PR [#2018](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2018), we even now added a new linting rule that completely dissalows using.

Default exports were a common source of error and confusion when using our libraries in a CommonJS context, leading to issues like Issue [#978](https://github.com/ethereumjs/ethereumjs-monorepo/issues/978).

Now every import is a named import and we think the long term benefits will very much outweigh the one-time hassle of some import adoptions.

#### Common Library Import Updates

Since our [@ethereumjs/common](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/common) library is used all accross our libraries for chain and HF instantiation this will likely be the one being the most prevalent regarding the need for some import updates.

So Common import and usage is changing from:

```typescript
import Common, { Chain, Hardfork } from '@ethereumjs/common'

const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge })
```

to:

```typescript
import { Common, Chain, Hardfork } from '@ethereumjs/common'

const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge })
```

### Removed Default Imports in this Library

- `blockFromRpc()` function
- `blockHeaderFromRpc()` function

## Other Changes

- Added `ESLint` strict boolean expressions linting rule, PR [#2030](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2030)
- Validate consensus format after block is sealed (if applicable) so `extraData` checks will pass, PR [#2031](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2031)

## 4.0.0-beta.1 - 2022-06-30

This release is part of a larger breaking release round where all [EthereumJS monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) libraries (VM, Tx, Trie, other) get major version upgrades. This round of releases has been prepared for a long time and we are really pleased with and proud of the result, thanks to all team members and contributors who worked so hard and made this possible! 🙂 ❤️
Expand Down
12 changes: 6 additions & 6 deletions packages/block/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ethereumjs/block",
"version": "4.0.0-beta.1",
"version": "4.0.0-beta.2",
"description": "Provides Block serialization and help functions",
"license": "MPL-2.0",
"author": "mjbecze ([email protected])",
Expand Down Expand Up @@ -29,12 +29,12 @@
"test:browser": "karma start karma.conf.js"
},
"dependencies": {
"@ethereumjs/common": "3.0.0-beta.1",
"@ethereumjs/trie": "5.0.0-beta.1",
"@ethereumjs/tx": "4.0.0-beta.1",
"@ethereumjs/util": "8.0.0-beta.1",
"@ethereumjs/common": "3.0.0-beta.2",
"@ethereumjs/trie": "5.0.0-beta.2",
"@ethereumjs/tx": "4.0.0-beta.2",
"@ethereumjs/util": "8.0.0-beta.2",
"ethereum-cryptography": "^1.1.2",
"rlp": "4.0.0-beta.1"
"rlp": "4.0.0-beta.2"
},
"devDependencies": {
"@types/lru-cache": "^5.1.0",
Expand Down
54 changes: 54 additions & 0 deletions packages/blockchain/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,60 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
(modification: no type change headlines) and this project adheres to
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## 6.0.0-beta.2 - 2022-07-15

Beta 2 release for the upcoming breaking release round on the [EthereumJS monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) libraries, see the Beta 1 release notes ([CHANGELOG](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/blockchain/CHANGELOG.md)) for the main change set description.

### Removed Default Exports

The change with the biggest effect on UX since the last Beta 1 releases is for sure that we have removed default exports all accross the monorepo, see PR [#2018](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2018), we even now added a new linting rule that completely dissalows using.

Default exports were a common source of error and confusion when using our libraries in a CommonJS context, leading to issues like Issue [#978](https://github.com/ethereumjs/ethereumjs-monorepo/issues/978).

Now every import is a named import and we think the long term benefits will very much outweigh the one-time hassle of some import adoptions.

#### Common Library Import Updates

Since our [@ethereumjs/common](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/common) library is used all accross our libraries for chain and HF instantiation this will likely be the one being the most prevalent regarding the need for some import updates.

So Common import and usage is changing from:

```typescript
import Common, { Chain, Hardfork } from '@ethereumjs/common'

const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge })
```

to:

```typescript
import { Common, Chain, Hardfork } from '@ethereumjs/common'

const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge })
```

### Removed Default Imports in this Library

The main `Blockchain` class import has been updated, so import changes from:

```typescript
import Blockchain from '@ethereumjs/blockchain'
```

to:

```typescript
import { Blockchain } from '@ethereumjs/blockchain'
```

## Blockchain Consensus Option

The Blockchain library now has a new optional `consensus` constructor options parameter which can be used to pass in a customized or own consensus class respectively implementation, e.g. a modfifed Ethash version or a Clique implementation with adopted parameters or the like, see PR [#2002](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2002) to get a grasp on the integration.

## Other Changes

- Added `ESLint` strict boolean expressions linting rule, PR [#2030](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2030)

## 6.0.0-beta.1 - 2022-06-30

This release is part of a larger breaking release round where all [EthereumJS monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) libraries (VM, Tx, Trie, other) get major version upgrades. This round of releases has been prepared for a long time and we are really pleased with and proud of the result, thanks to all team members and contributors who worked so hard and made this possible! 🙂 ❤️
Expand Down
14 changes: 7 additions & 7 deletions packages/blockchain/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ethereumjs/blockchain",
"version": "6.0.0-beta.1",
"version": "6.0.0-beta.2",
"description": "A module to store and interact with blocks",
"license": "MPL-2.0",
"keywords": [
Expand Down Expand Up @@ -29,18 +29,18 @@
},
"author": "mjbecze <[email protected]>",
"dependencies": {
"@ethereumjs/block": "4.0.0-beta.1",
"@ethereumjs/common": "3.0.0-beta.1",
"@ethereumjs/ethash": "2.0.0-beta.1",
"@ethereumjs/trie": "5.0.0-beta.1",
"@ethereumjs/util": "8.0.0-beta.1",
"@ethereumjs/block": "4.0.0-beta.2",
"@ethereumjs/common": "3.0.0-beta.2",
"@ethereumjs/ethash": "2.0.0-beta.2",
"@ethereumjs/trie": "5.0.0-beta.2",
"@ethereumjs/util": "8.0.0-beta.2",
"abstract-level": "^1.0.3",
"debug": "^4.3.3",
"ethereum-cryptography": "^1.1.2",
"level": "^8.0.0",
"lru-cache": "^5.1.1",
"memory-level": "^1.0.0",
"rlp": "4.0.0-beta.1",
"rlp": "4.0.0-beta.2",
"semaphore-async-await": "^1.5.1"
},
"devDependencies": {
Expand Down
30 changes: 30 additions & 0 deletions packages/client/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,36 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
(modification: no type change headlines) and this project adheres to
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## 0.6.0 - 2022-07-15

### Sepolia Merge Support

This is the first client release which supports the Merge transition in conjunction with a consensus layer client (we recommend [Lodestar](https://github.com/ChainSafe/lodestar)), but are excited to see other combinations being tested too) on one of the official public Ethereum testnets, with [Sepolia](https://sepolia.dev/) being a good candidate here since the network is relatively new and has not yet grown so extensively.

Client instructions have been updated accordingly [here](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client/merge) and you can use these instructions to start-up both clients, see them syncing first both the separate networks and then joining forces at Sepolia Merge block [1450409](https://sepolia.etherscan.io/block/1450409)! 🐼 ❤️

### EthereumJS Beta Releases Integration

This is the first client release which works with the next generation EthereumJS libraries being published as [Beta releases](https://github.com/ethereumjs/ethereumjs-monorepo/releases) right now. The client is a first test bed for these releases which include heavy structural changes (e.g. the VM separated into three different packages VM, EVM and StateManager). In return the client benefits directly from some of the integrations being done, e.g. the complete switch to native JavaScript BigInts which leads to a substantially better VM execution performance.

### DB Format Changes

Note that DB format has changed along with this release and it is therefore necessary to delete the old chain and state data directories. If this is causing you substantial hazzle please ask in our monorepo or Discord server on a migration script. While this will cause us some extra work it might actually be possible to provide one if there is some demand.

## Default Receipt Saving

With the transition to PoS chains running the client in a CL/EL setup the activation of receipt saving often gets necessary, since some CL clients (e.g. Lodestar) rely on the `eth_getLogs` RPC call to be activated to be able to properly work with the EthereumJS client.

Since the EthereumJS client is still mainly used in not-that-much-grown testnets and environments (so the additional disk space requirements are not that grave) we have therefore decided to turn the respective option `--saveReceipts` on by default, see PR [#2040](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2040).

You can use `--saveReceipts=false` if you would rather want to deactive again.

### Other Changes

- Miscellaneous fixes for beacon sync in reverseblockfetcher, skeleton, merge forkhash, PR [#1951](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1951)
- The underlying blockchain (chain) and Trie (state) databases have been upgraded from Level 6 to Level 8, PR [#1949](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1949)
- Activated Sepolia DNS discovery, PR [#2034](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2034)

## 0.5.0 - 2022-06-02

### Merge: Kiln v2.1 Support
Expand Down
2 changes: 1 addition & 1 deletion packages/client/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ There are dedicated instructions on how to setup for running the client in conju

Testnet Instructions:

- [Kiln v2.1 Public Testnet](./kiln/)
- [Merge Testnet Setup](./merge/)

#### Sync Scenarios

Expand Down
6 changes: 3 additions & 3 deletions packages/client/merge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ You may now do appropriate directory/file mounts for `data` dir and `jwtsecret`
This the the bare minimum command required for interop with the CL `lodestar`. You may add further args to expose functionality for your use case.

```shell
npm run client:start -- --network sepolia --datadir /path/to/sepolia/data/dir --rpcEngine --jwt-secret /path/to/jwtsecret/file
npm run client:start -- --network sepolia --rpcEngine --jwt-secret /path/to/jwtsecret/file
```

This will start `ethereumjs` client on `sepolia` network and expose `engine` endpoints at `8551`(default port, can be modified see cli help via `--help`).
Expand All @@ -76,8 +76,8 @@ In case you want to host `engine_*` without auth (not recommended, only for debu

#### Beacon

1. Use lodestar branch `unstable` and run `yarn && yarn build`
2. Run cmd: `./lodestar beacon --network sepolia --rootDir /path/to/sepolia/data/dir --jwt-secret /path/to/jwtsecret/file`
1. Use lodestar branch `stable` and run `yarn && yarn build`
2. Run cmd: `./lodestar beacon --network sepolia --jwt-secret /path/to/jwtsecret/file`

This will by default try reaching out `ethereumjs` over the endpoint `8551`. (You may customize this in conjuction with `ethereumjs`, see lodestar cli help via `--help`).

Expand Down
26 changes: 13 additions & 13 deletions packages/client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ethereumjs/client",
"version": "0.5.0",
"version": "0.6.0",
"description": "EthereumJS client implementation",
"license": "MPL-2.0",
"author": "Vinay Pulim ([email protected])",
Expand Down Expand Up @@ -50,17 +50,17 @@
},
"dependencies": {
"@chainsafe/libp2p-noise": "^4.1.1",
"@ethereumjs/block": "4.0.0-beta.1",
"@ethereumjs/blockchain": "6.0.0-beta.1",
"@ethereumjs/common": "3.0.0-beta.1",
"@ethereumjs/devp2p": "5.0.0-beta.1",
"@ethereumjs/evm": "1.0.0-beta.1",
"@ethereumjs/ethash": "2.0.0-beta.1",
"@ethereumjs/statemanager": "1.0.0-beta.1",
"@ethereumjs/trie": "5.0.0-beta.1",
"@ethereumjs/tx": "4.0.0-beta.1",
"@ethereumjs/util": "8.0.0-beta.1",
"@ethereumjs/vm": "6.0.0-beta.1",
"@ethereumjs/block": "4.0.0-beta.2",
"@ethereumjs/blockchain": "6.0.0-beta.2",
"@ethereumjs/common": "3.0.0-beta.2",
"@ethereumjs/devp2p": "5.0.0-beta.2",
"@ethereumjs/evm": "1.0.0-beta.2",
"@ethereumjs/ethash": "2.0.0-beta.2",
"@ethereumjs/statemanager": "1.0.0-beta.2",
"@ethereumjs/trie": "5.0.0-beta.2",
"@ethereumjs/tx": "4.0.0-beta.2",
"@ethereumjs/util": "8.0.0-beta.2",
"@ethereumjs/vm": "6.0.0-beta.2",
"abstract-level": "^1.0.3",
"body-parser": "^1.19.2",
"chalk": "^4.1.2",
Expand All @@ -85,7 +85,7 @@
"multiaddr": "^10.0.1",
"peer-id": "^0.14.3",
"qheap": "^1.4.0",
"rlp": "4.0.0-beta.1",
"rlp": "4.0.0-beta.2",
"winston": "^3.3.3",
"winston-daily-rotate-file": "^4.5.5",
"yargs": "^17.2.1"
Expand Down
37 changes: 37 additions & 0 deletions packages/common/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,43 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
(modification: no type change headlines) and this project adheres to
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## 3.0.0-beta.2 - 2022-07-15

Beta 2 release for the upcoming breaking release round on the [EthereumJS monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) libraries, see the Beta 1 release notes ([CHANGELOG](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/common/CHANGELOG.md)) for the main change set description.

### Removed Default Exports

The change with the biggest effect on UX since the last Beta 1 releases is for sure that we have removed default exports all accross the monorepo, see PR [#2018](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2018), we even now added a new linting rule that completely disallows using.

Default exports were a common source of error and confusion when using our libraries in a CommonJS context, leading to issues like Issue [#978](https://github.com/ethereumjs/ethereumjs-monorepo/issues/978).

Now every import is a named import and we think the long term benefits will very much outweigh the one-time hassle of some import adoptions.

#### Import Updates

Since our [@ethereumjs/common](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/common) library is used all accross our libraries for chain and HF instantiation this will likely be the one being the most prevalent regarding the need for some import updates.

So Common import and usage is changing from:

```typescript
import Common, { Chain, Hardfork } from '@ethereumjs/common'

const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge })
```

to:

```typescript
import { Common, Chain, Hardfork } from '@ethereumjs/common'

const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge })
```

## Other Changes

- Added `ESLint` strict boolean expressions linting rule, PR [#2030](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2030)
- Added `sepolia` DNS discovery config, PR [#2034](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2034)

## 3.0.0-beta.1 - 2022-06-30

This release is part of a larger breaking release round where all [EthereumJS monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) libraries (VM, Tx, Trie, other) get major version upgrades. This round of releases has been prepared for a long time and we are really pleased with and proud of the result, thanks to all team members and contributors who worked so hard and made this possible! 🙂 ❤️
Expand Down
4 changes: 2 additions & 2 deletions packages/common/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ethereumjs/common",
"version": "3.0.0-beta.1",
"version": "3.0.0-beta.2",
"description": "Resources common to all Ethereum implementations",
"license": "MIT",
"keywords": [
Expand Down Expand Up @@ -34,7 +34,7 @@
},
"dependencies": {
"crc-32": "^1.2.0",
"@ethereumjs/util": "8.0.0-beta.1"
"@ethereumjs/util": "8.0.0-beta.2"
},
"devDependencies": {
"@types/node": "^16.11.7",
Expand Down
41 changes: 41 additions & 0 deletions packages/devp2p/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,47 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
(modification: no type change headlines) and this project adheres to
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## 5.0.0-beta.2 - 2022-07-15

Beta 2 release for the upcoming breaking release round on the [EthereumJS monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) libraries, see the Beta 1 release notes ([CHANGELOG](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/devp2p/CHANGELOG.md)) for the main change set description.

### Removed Default Exports

The change with the biggest effect on UX since the last Beta 1 releases is for sure that we have removed default exports all accross the monorepo, see PR [#2018](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2018), we even now added a new linting rule that completely disallows using.

Default exports were a common source of error and confusion when using our libraries in a CommonJS context, leading to issues like Issue [#978](https://github.com/ethereumjs/ethereumjs-monorepo/issues/978).

Now every import is a named import and we think the long term benefits will very much outweigh the one-time hassle of some import adoptions.

#### Common Library Import Updates

Since our [@ethereumjs/common](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/common) library is used all accross our libraries for chain and HF instantiation this will likely be the one being the most prevalent regarding the need for some import updates.

So Common import and usage is changing from:

```typescript
import Common, { Chain, Hardfork } from '@ethereumjs/common'

const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge })
```

to:

```typescript
import { Common, Chain, Hardfork } from '@ethereumjs/common'

const common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Merge })
```

## SNAP Protocol Support

[Ethereum Snapshot Protocol](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) (SNAP) support has been added in PR [#1883](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1883). This allows to run the SNAP protocol as a side-protocol to the ETH protocol for exchanging state snapshots between peers.

## Other Changes

- Added `ESLint` strict boolean expressions linting rule, PR [#2030](https://github.com/ethereumjs/ethereumjs-monorepo/pull/2030)


## 5.0.0-beta.1 - 2022-06-30

This release is part of a larger breaking release round where all [EthereumJS monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) libraries (VM, Tx, Trie, other) get major version upgrades. This round of releases has been prepared for a long time and we are really pleased with and proud of the result, thanks to all team members and contributors who worked so hard and made this possible! 🙂 ❤️
Expand Down
Loading

0 comments on commit 2dd63b9

Please sign in to comment.