Skip to content

Commit

Permalink
New Releases: Kiln v2 Testnet, EIP-3860, Extended VM Genesis (Code/St…
Browse files Browse the repository at this point in the history
…orage) (#1774)

* Client, VM, Block, Trie, Tx, Common -> New Releases: Added CHANGELOG

* Apply suggestions from code review

small changelog typos/grammar

* Common -> Release: bumped version to v2.6.3, updated README, updated upstream dependency versions

* Common -> Release: Rebuild documentation

* Tx -> Release: Bumped version to v3.5.1, updated README, updated upstream dependency versions

* Tx -> Release: Rebuild documentation

* Trie -> Release: Bumped version to 4.2.4, updated README, updated upstream dependency versions

* Block -> Release: Bumped version to v3.6.2, updated upstream dependency versions

* Block -> Release: Rebuild documentation

* VM -> Release: Bumped version to v5.8.0, updated README, updated upstream dependency versions

* Client -> Release: Bumped version to v0.4.0, updated README, added Kiln README notes

* Monorepo: updated package-lock.json

* Blockchain -> Release: bumped version to v5.5.2, added CHANGELOG entry, updated upstream dependency versions

* VM, Common, Client: updated release notes, particularly on EIP-3540 (EVM Object Format) and EIP-3670: EOF - Code Validation

* Client -> Release: CHANGELOG additions

* Trie -> Release: modified typedoc exclude directive, rebuild documentation

* Client, VM, Common: updated CHANGELOG entries

* Client -> Release: added Merge sync-scenarios section to README

* Monorepo: Updated package-lock.json

Co-authored-by: Ryan Ghods <ryan@ryanio.com>
  • Loading branch information
holgerd77 and ryanio authored Mar 23, 2022
1 parent 41bca62 commit 7330c4a
Show file tree
Hide file tree
Showing 48 changed files with 2,018 additions and 1,675 deletions.
2,272 changes: 1,151 additions & 1,121 deletions package-lock.json

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions packages/block/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ 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.6.2 - 2022-03-15

### Merge Kiln v2 Testnet Support

This release fully supports the Merge [Kiln](https://kiln.themerge.dev/) testnet `v2` complying with the latest Merge [specs](https://hackmd.io/@n0ble/kiln-spec). The release is part of an [@ethereumjs/client](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client) `v0.4` release which can be used to sync with the testnet, combining with a suited consensus client (e.g. the Lodestar client). See [Kiln](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client/kiln) instructions to get things going! 🚀

- New `BlockHeader.prevRandao()` method to return the Post-merge `prevRandao` random value from the previous `mixHash` field ([EIP-43399](https://eips.ethereum.org/EIPS/eip-4399) Support: Supplant DIFFICULTY opcode with PREVRANDAO), PRs [#1565](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1565) and [#1750](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1750)

## 3.6.1 - 2022-02-02

- Use initial configured base fee as default for `EIP-1559`-enabled blocks, PR [#1581](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1581)
Expand Down
70 changes: 45 additions & 25 deletions packages/block/docs/classes/BlockHeader.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ An object that represents the block header.
### Accessors

- [bloom](BlockHeader.md#bloom)
- [prevRandao](BlockHeader.md#prevrandao)

### Methods

Expand Down Expand Up @@ -96,7 +97,7 @@ varying data types. For a default empty header, use [BlockHeader.fromHeaderData]

#### Defined in

[header.ts:209](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L209)
[header.ts:225](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L225)

## Properties

Expand Down Expand Up @@ -287,6 +288,25 @@ Backwards compatible alias for [BlockHeader.logsBloom](BlockHeader.md#logsbloom)

[header.ts:64](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L64)

___

### prevRandao

`get` **prevRandao**(): `Buffer`

EIP-4399: After merge to PoS, `mixHash` supplanted as `prevRandao`

Note: this is Merge-related functionality and considered `experimental`,
use with care.

#### Returns

`Buffer`

#### Defined in

[header.ts:74](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L74)

## Methods

### \_validateHeaderFields
Expand All @@ -301,7 +321,7 @@ Validates correct buffer lengths, throws if invalid.

#### Defined in

[header.ts:339](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L339)
[header.ts:363](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L363)

___

Expand All @@ -317,7 +337,7 @@ Calculates the base fee for a potential next block

#### Defined in

[header.ts:734](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L734)
[header.ts:754](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L754)

___

Expand All @@ -339,7 +359,7 @@ Returns the canonical difficulty for this block.

#### Defined in

[header.ts:433](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L433)
[header.ts:453](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L453)

___

Expand All @@ -360,7 +380,7 @@ in conjunction with [BlockHeader.cliqueIsEpochTransition](BlockHeader.md#cliquei

#### Defined in

[header.ts:892](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L892)
[header.ts:912](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L912)

___

Expand All @@ -377,7 +397,7 @@ Returns extra seal data

#### Defined in

[header.ts:863](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L863)
[header.ts:883](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L883)

___

Expand All @@ -394,7 +414,7 @@ Returns extra vanity data

#### Defined in

[header.ts:854](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L854)
[header.ts:874](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L874)

___

Expand All @@ -411,7 +431,7 @@ header (only clique PoA, throws otherwise)

#### Defined in

[header.ts:842](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L842)
[header.ts:862](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L862)

___

Expand All @@ -427,7 +447,7 @@ PoA clique signature hash without the seal.

#### Defined in

[header.ts:831](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L831)
[header.ts:851](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L851)

___

Expand All @@ -443,7 +463,7 @@ Returns the signer address

#### Defined in

[header.ts:929](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L929)
[header.ts:949](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L949)

___

Expand All @@ -468,7 +488,7 @@ Verifies the signature of the block (last 65 bytes of extraData field)

#### Defined in

[header.ts:917](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L917)
[header.ts:937](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L937)

___

Expand All @@ -484,7 +504,7 @@ Return a compact error string representation of the object

#### Defined in

[header.ts:1023](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L1023)
[header.ts:1043](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L1043)

___

Expand All @@ -500,7 +520,7 @@ Returns the hash of the block header.

#### Defined in

[header.ts:801](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L801)
[header.ts:821](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L821)

___

Expand All @@ -516,7 +536,7 @@ Checks if the block header is a genesis header.

#### Defined in

[header.ts:815](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L815)
[header.ts:835](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L835)

___

Expand All @@ -532,7 +552,7 @@ Returns a Buffer Array of the raw Buffers in this header, in order.

#### Defined in

[header.ts:772](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L772)
[header.ts:792](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L792)

___

Expand All @@ -548,7 +568,7 @@ Returns the rlp encoding of the block header.

#### Defined in

[header.ts:946](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L946)
[header.ts:966](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L966)

___

Expand All @@ -564,7 +584,7 @@ Returns the block header in JSON format.

#### Defined in

[header.ts:953](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L953)
[header.ts:973](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L973)

___

Expand Down Expand Up @@ -599,7 +619,7 @@ It verifies the current block against the `parentHash`:

#### Defined in

[header.ts:600](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L600)
[header.ts:620](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L620)

___

Expand All @@ -622,7 +642,7 @@ Returns false if invalid.

#### Defined in

[header.ts:521](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L521)
[header.ts:541](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L541)

___

Expand All @@ -644,7 +664,7 @@ Checks that the block's `difficulty` matches the canonical difficulty.

#### Defined in

[header.ts:513](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L513)
[header.ts:533](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L533)

___

Expand All @@ -667,7 +687,7 @@ boundaries set by the protocol.

#### Defined in

[header.ts:557](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L557)
[header.ts:577](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L577)

___

Expand All @@ -690,7 +710,7 @@ Static constructor to create a block header from a header data dictionary

#### Defined in

[header.ts:74](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L74)
[header.ts:90](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L90)

___

Expand All @@ -713,7 +733,7 @@ Static constructor to create a block header from a RLP-serialized header

#### Defined in

[header.ts:128](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L128)
[header.ts:144](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L144)

___

Expand All @@ -736,7 +756,7 @@ Static constructor to create a block header from an array of Buffer values

#### Defined in

[header.ts:144](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L144)
[header.ts:160](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L160)

___

Expand All @@ -759,4 +779,4 @@ Alias for [BlockHeader.fromHeaderData](BlockHeader.md#fromheaderdata) with [Bloc

#### Defined in

[header.ts:197](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L197)
[header.ts:213](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/block/src/header.ts#L213)
8 changes: 4 additions & 4 deletions packages/block/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ethereumjs/block",
"version": "3.6.1",
"version": "3.6.2",
"description": "Provides Block serialization and help functions",
"license": "MPL-2.0",
"author": "mjbecze (mb@ethdev.com)",
Expand Down Expand Up @@ -33,9 +33,9 @@
"test:browser": "karma start karma.conf.js"
},
"dependencies": {
"@ethereumjs/common": "^2.6.2",
"merkle-patricia-tree": "^4.2.3",
"@ethereumjs/tx": "^3.5.0",
"@ethereumjs/common": "^2.6.3",
"merkle-patricia-tree": "^4.2.4",
"@ethereumjs/tx": "^3.5.1",
"ethereumjs-util": "^7.1.4"
},
"devDependencies": {
Expand Down
3 changes: 3 additions & 0 deletions packages/block/src/header.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ export class BlockHeader {

/**
* EIP-4399: After merge to PoS, `mixHash` supplanted as `prevRandao`
*
* Note: this is Merge-related functionality and considered `experimental`,
* use with care.
*/
get prevRandao() {
if (!this._common.isActivatedEIP(4399)) {
Expand Down
4 changes: 3 additions & 1 deletion packages/blockchain/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ 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).

## [Unreleased]
## 5.5.2 - 2022-03-15

- Fixed a bug where a delete-operation would be performed on DB but not in the cache leading to inconsistent behavior, PR [#1786](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1786)

## 5.5.1 - 2021-11-15

Expand Down
6 changes: 3 additions & 3 deletions packages/blockchain/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ethereumjs/blockchain",
"version": "5.5.1",
"version": "5.5.2",
"description": "A module to store and interact with blocks",
"license": "MPL-2.0",
"keywords": [
Expand Down Expand Up @@ -33,8 +33,8 @@
},
"author": "mjbecze <mjbecze@gmail.com>",
"dependencies": {
"@ethereumjs/block": "^3.6.1",
"@ethereumjs/common": "^2.6.2",
"@ethereumjs/block": "^3.6.2",
"@ethereumjs/common": "^2.6.3",
"@ethereumjs/ethash": "^1.1.0",
"debug": "^4.3.3",
"ethereumjs-util": "^7.1.4",
Expand Down
42 changes: 42 additions & 0 deletions packages/client/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).

## 0.4.0 - 2022-03-15

### Merge Kiln v2 Testnet Support

This release fully supports the Merge [Kiln](https://kiln.themerge.dev/) testnet `v2` complying with the latest Merge [specs](https://hackmd.io/@n0ble/kiln-spec). You can use this release to sync with the testnet, combining with a suited consensus client (e.g. the Lodestar client). See [Kiln](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client/kiln) instructions to get things going! 🚀

- New engine API endpoints, PRs [#1565](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1565) and [#1712](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1712)
- `engine_newPayloadV1` (before: `engine_executePayloadV1`)
- `engine_forkchoiceUpdatedV1`
- `engine_getPayloadV1`
- New engine API endpoint, PR [#1750](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1750)
- `exchangeTransitionConfigurationV1` (sets and returns the transition configuration parameters)
- Engine API (RPC): Renamed `message` to `validationError`, PR [#1565](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1565)
- Engine API (RPC): Allowed ws and http on the same port, PR [#1565](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1565)
- Engine API (RPC): Respect message ordering in forkchoiceUpdated, PR [#1565](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1565)
- Engine API (RPC): Rename `coinbase` to `feeRecipient` as per `v1.0.0-alpha.5` spec, PR [#1565](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1565)
- Engine API (RPC): Support for [jwt](https://jwt.io) based auth through both http/websocket protocols, PR [#1751](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1751)
- Engine API (RPC): Tests for new Engine API endpoints, PR [#1727](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1727)
- Geth genesis files: Use `mergeForkBlock` if provided, PR [#1565](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1565)
- Execution module refactor: decoupling from `FullSync` module to prepare for a post-Merge execution/sync separation, PR [#1663](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1663)
- Added terminal block validation in `newPayload` and `forkchoiceUpdated` methods from Engine API, PR [#1797](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1797)
- Validate block safe hash on `forkchoiceUpdated`, PR [#1804](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1804)
- Validate finalized block hash on `forkchoiceUpdated`, PR [#1803](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1803)
- More explicit Merge and CL connection logging with a proper panda bear icon and stuff, see PRs [#1800](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1800), [#1805](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1805) and [#1808](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1808)

### Features

- RPC Server: Added `rpcCors` option to specify [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) for rpc server, PR [#1762](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1762)
- RPC Server: New default ports for engine (`8551`) (HTTP-RPC and WS) and general RPC (`8545`), PR [#1775](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1775)
- Miner: unlock with file PK (do not use in a production setup for security reasons!), PR [#1790](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1790)
- Various sync stability improvements, PR [#1781](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1781)
- More sophisticated Block/Header fetcher reorg handling, PR [#1792](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1792)
- Added new `--startBlock` CLI option to allow for restarting sync on an older block, PR [#1807](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1807)
- JSON RPC: `eth_getBlockByNumber` method returns array of tx object when asked, PR [#1801](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1801)

### Bug Fixes

- Geth genesis files: Minor `baseFeePerGas` related fix and other improvements, PRs [#1720](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1720) and [#1741](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1741)
- Added `mixHash` to RPC block results (sorry, forgotten 😋), PR [#1791](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1791)
- Fixed frequent `Error handling message` error in tx poo, PR [#1793](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1793)
- Handle partial results in multi-peer safe manner, PR [#1802](https://github.com/ethereumjs/ethereumjs-monorepo/pull/1802)

## 0.3.0 - 2022-02-01

### New RPC Endpoints: eth_getLogs, eth_getTransactionReceipt and eth_getTransactionByHash
Expand Down
Loading

0 comments on commit 7330c4a

Please sign in to comment.