Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to OpenEthereum 2.6.2 #3542

Merged
merged 1 commit into from
Oct 30, 2020
Merged

Upgrade to OpenEthereum 2.6.2 #3542

merged 1 commit into from
Oct 30, 2020

Conversation

artob
Copy link
Contributor

@artob artob commented Oct 30, 2020

As a first step in #3506, upgrade OpenEthereum from pre-2.6.0 (Jun 2019) to 2.6.2 (Aug 2019).

OpenEthereum 2.6.2 is the last release that nearcore can currently pull in without build errors. Further upgrades will require code changes in near-evm-runner. (I'm working on those.)

The upstream diff from what we currently pull in compared to 2.6.2: openethereum/openethereum@eed630a...v2.6.2

…3506

This is the last release that nearcore can pull in without errors.
Further upgrades will require code changes in near-evm-runner.
@artob artob added C-enhancement Category: An issue proposing an enhancement or a PR with one. A-EVM Area: Native EVM implementation and support C-dependencies Category: Pull requests that update a dependency file labels Oct 30, 2020
@artob artob added the C-housekeeping Category: Refactoring, cleanups, code quality label Oct 30, 2020
runtime/near-evm-runner/Cargo.toml Show resolved Hide resolved
@evgenykuzyakov evgenykuzyakov merged commit e52bb03 into evm-precompile Oct 30, 2020
@evgenykuzyakov evgenykuzyakov deleted the evm-upgrade branch October 30, 2020 21:26
evgenykuzyakov pushed a commit that referenced this pull request Nov 5, 2020
As the next step in #3506, and following up from #3542, upgrade OpenEthereum from [2.6.2](https://github.com/openethereum/openethereum/releases/tag/v2.6.2) (Aug 2019) to [2.6.8](https://github.com/openethereum/openethereum/releases/tag/v2.6.8) (Dec 2019), the last release in the 2.6.x series.

This brings us up to par on the [Istanbul](https://eth.wiki/en/roadmap/istanbul) hard fork, which incorporated many EIPs, changing gas metering and adding a new precompile as well as two new opcodes:

- [EIP-152: Add BLAKE2 compression function `F` precompile](https://eips.ethereum.org/EIPS/eip-152)
- [EIP-1108: Reduce alt_bn128 precompile gas costs](https://eips.ethereum.org/EIPS/eip-1108)
- [EIP-1344: ChainID opcode](https://eips.ethereum.org/EIPS/eip-1344) (includes a new opcode: `CHAINID`)
- [EIP-1884: Repricing for trie-size-dependent opcodes](https://eips.ethereum.org/EIPS/eip-1884) (includes a new opcode: `SELFBALANCE`)
- [EIP-2028: Transaction data gas cost reduction](https://eips.ethereum.org/EIPS/eip-2028)
- [EIP-2200: Structured Definitions for Net Gas Metering](https://eips.ethereum.org/EIPS/eip-2200)

This PR includes an implementation of the `CHAINID` opcode. (The `SELFBALANCE` opcode doesn't need anything from our runtime.)

The upstream changelog for 2.6.8 is at: https://github.com/openethereum/openethereum/blob/v2.6.8/CHANGELOG.md

The upstream diff from 2.6.2 to 2.6.8 is at: openethereum/openethereum@v2.6.2...v2.6.8
evgenykuzyakov pushed a commit that referenced this pull request Nov 12, 2020
As the next step in #3506, and following up from #3542 and #3558, upgrade Parity Ethereum (now OpenEthereum) from [2.6.8] (Dec 2019) to [2.7.2] (Feb 2020), the last release in the 2.x series.

This harmonizes our dependency graph with upstream, fixing numerous build errors from the upgrade and eliminating multiple versions of the same crates. This concerns the [bn], [ethabi], [ethabi-contract], [ethabi-derive], [ethereum-types], [keccak-hash], [primitive-types], and [uint] crates as well as their transitive dependencies and their interdependencies.

The [near/bn] fork exists to upgrade [bn]'s [rand] dependency. That's necessary because of a particularly complex dependency issue (rust-random/rand#645) in old versions of rand. We will eliminate the fork going forward once upstream upgrades their dependency (I will open a pull request for them).

The upstream changelog for 2.7.2 is at: https://github.com/openethereum/openethereum/blob/v2.7.2/CHANGELOG.md

The upstream diff from 2.6.8 to 2.7.2 is at: openethereum/openethereum@v2.6.8...v2.7.2

[2.6.8]: https://github.com/openethereum/openethereum/releases/tag/v2.6.8
[2.7.2]: https://github.com/openethereum/openethereum/releases/tag/v2.7.2

[near/bn]: https://github.com/near/bn
[bn]: https://crates.io/crates/bn
[ethabi]: https://crates.io/crates/ethabi
[ethabi-contract]: https://crates.io/crates/ethabi-contract
[ethabi-derive]: https://crates.io/crates/ethabi-derive
[ethereum-types]: https://crates.io/crates/ethereum-types
[keccak-hash]: https://crates.io/crates/keccak-hash
[primitive-types]: https://crates.io/crates/primitive-types
[rand]: https://crates.io/crates/rand
[uint]: https://crates.io/crates/uint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-EVM Area: Native EVM implementation and support C-dependencies Category: Pull requests that update a dependency file C-enhancement Category: An issue proposing an enhancement or a PR with one. C-housekeeping Category: Refactoring, cleanups, code quality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants