Skip to content

Commit

Permalink
Merge branch 'master' into feature/fix-missing-announced-block
Browse files Browse the repository at this point in the history
  • Loading branch information
matkt authored Jun 24, 2021
2 parents c204f3e + fd18b0a commit a0d8584
Show file tree
Hide file tree
Showing 558 changed files with 12,120 additions and 3,370 deletions.
22 changes: 10 additions & 12 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,7 @@ executors:
environment:
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4

machine_executor:
machine:
image: ubuntu-2004:202010-01

goquorum_executor:
xl_machine_executor:
machine:
image: ubuntu-2004:202101-01
resource_class: xlarge
Expand Down Expand Up @@ -140,7 +136,7 @@ jobs:
- capture_test_results

integrationTests:
executor: besu_executor_xl
executor: besu_executor_med
steps:
- prepare
- attach_workspace:
Expand Down Expand Up @@ -175,14 +171,14 @@ jobs:

acceptanceTests:
parallelism: 6
executor: besu_executor_xl
executor: xl_machine_executor
steps:
- prepare
- attach_workspace:
at: ~/project
- run:
name: AcceptanceTests
no_output_timeout: 40m
no_output_timeout: 30m
command: |
CLASSNAMES=$(circleci tests glob "acceptance-tests/tests/src/test/java/**/*.java" \
| sed 's@.*/src/test/java/@@' \
Expand All @@ -197,15 +193,15 @@ jobs:

acceptanceTestsQuorum:
parallelism: 1
executor: goquorum_executor
executor: xl_machine_executor
steps:
- prepare
- attach_workspace:
at: ~/project
- run:
name: Quorum Acceptance Tests (failures ignored)
name: Quorum Acceptance Tests
no_output_timeout: 40m
command: ./gradlew --no-daemon acceptanceTestsQuorum || true # ignore result of job for now, until all issues are fixed
command: ./gradlew --no-daemon acceptanceTestsQuorum
- store_artifacts:
path: build/quorum-at
destination: quorum-at-artifacts
Expand Down Expand Up @@ -290,7 +286,7 @@ workflows:
- assemble
- acceptanceTestsQuorum:
requires:
- buildDocker
- assemble
- buildDocker:
requires:
- assemble
Expand All @@ -304,6 +300,7 @@ workflows:
- integrationTests
- unitTests
- acceptanceTests
- acceptanceTestsQuorum
- referenceTests
- buildDocker
- publishDocker:
Expand All @@ -316,6 +313,7 @@ workflows:
- integrationTests
- unitTests
- acceptanceTests
- acceptanceTestsQuorum
- referenceTests
- buildDocker
context:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ site/
/kubernetes/reports/
/kubernetes/besu-*.tar.gz
**/src/*/generated
jitpack.yml
76 changes: 75 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,88 @@
# Changelog

## 21.7.0-RC2

### Additions and Improvements
- eth_feeHistory API for wallet providers [\#2466](https://github.com/hyperledger/besu/pull/2466)
### Bug Fixes
- Ibft2 could create invalid RoundChange messages in some circumstances containing duplicate prepares [\#2449](https://github.com/hyperledger/besu/pull/2449)

## 21.7.0-RC1

### Additions and Improvements
- eip-1559 changes: accept transactions which have maxFeePerGas below current baseFee [\#2374](https://github.com/hyperledger/besu/pull/2374)
- Introduced transitions for IBFT2 block rewards [\#1977](https://github.com/hyperledger/besu/pull/1977)
- Change Ethstats's status from experimental feature to stable. [\#2405](https://github.com/hyperledger/besu/pull/2405)
- Fixed disabling of native libraries for secp256k1 and altBn128. [\#2163](https://github.com/hyperledger/besu/pull/2163)


### Bug Fixes

- Updated `eth_sendRawTransaction` to return an error when maxPriorityFeePerGas exceeds maxFeePerGas [\#2424](https://github.com/hyperledger/besu/pull/2424)

### Early Access Features
This release contains the activation blocks for London across all supported testnets. They are:
* Ropsten 10_499_401 (24 Jun 2021)
* Goerli 5_062_605 (30 Jun 2021)
* Rinkeby 8_897_988 (7 Jul 2021)

## Download Link
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/21.7.0-RC1/besu-21.7.0-RC1.zip
sha256sum fc959646af65a0e267fc4d695e0af7e87331d774e6e8e890f5cc391549ed175a

## 21.1.7

## Privacy users - Orion Project Deprecation
Tessera is now the recommended Private Transaction Manager for Hyperledger Besu.

Now that all primary Orion functionality has been merged into Tessera, Orion is being deprecated.
We encourage all users with active projects to use the provided migration instructions,
documented [here](https://docs.orion.consensys.net/en/latest/Tutorials/Migrating-from-Orion-to-Tessera/).

We will continue to support Orion users until 30th November 2021. If you have any questions or
concerns, please reach out to the ConsenSys protocol engineering team in the
[#orion channel on Discord](https://discord.gg/hYpHRjK) or by [email](mailto:[email protected]).


### Additions and Improvements
* Upgrade OpenTelemetry to 1.2.0. [\#2313](https://github.com/hyperledger/besu/pull/2313)

* Ethereum Classic Magneto Hard Fork [\#2315](https://github.com/hyperledger/besu/pull/2315)

* Added support for the upcoming CALAVERAS ephemeral testnet and removed the configuration for the deprecated BAIKAL ephemeral testnet. [\#2343](https://github.com/hyperledger/besu/pull/2343)

### Bug Fixes
* Fix invalid transfer values with the tracing API specifically for CALL operation [\#2319](https://github.com/hyperledger/besu/pull/2319)

### Early Access Features

#### Previously identified known issues

- Fixed issue in discv5 where nonce was incorrectly reused. [\#2075](https://github.com/hyperledger/besu/pull/2075)
- Fixed issues in debug_standardTraceBadBlockToFile and debug_standardTraceBlockToFile. [\#2120](https://github.com/hyperledger/besu/pull/2120)
- Fixed invalid error code in several JSON RPC methods when the requested block is not in the range. [\#2138](https://github.com/hyperledger/besu/pull/2138)

## Download Link
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/21.1.7/besu-21.1.7.zip

sha256: f415c9b67d26819caeb9940324b2b1b9ce6e872c9181052739438545e84e2531


## 21.1.6

### Additions and Improvements

* Added support for the upcoming BAIKAL ephemeral testnet and removed the configuration for the deprecated YOLOv3 ephemeral testnet. [\#2237](https://github.com/hyperledger/besu/pull/2237)
* Added support for the London Network Upgrade, although the block number must be set manually with `--override-genesis-config=londonBlock=<blocknumber>`. This is because the block numbers haven't been determined yet. The next release will include the number in the genesis file so it will support London with no intervention. [\#2237](https://github.com/hyperledger/besu/pull/2237)
* Implemented [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541): Reject new contracts starting with the 0xEF byte [\#2243](https://github.com/hyperledger/besu/pull/2243)
* Implemented [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529): Reduction in refunds [\#2238](https://github.com/hyperledger/besu/pull/2238)
* Implemented [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554): Difficulty Bomb Delay [\#2289](https://github.com/hyperledger/besu/pull/2289)


### Bug Fixes

- Added ACCESS_LIST transactions to the list of transactions using legacy gas pricing for 1559 [\#2239](https://github.com/hyperledger/besu/pull/2239)
- Reduced logging level of public key decoding failure of malformed packets. [\#2143](https://github.com/hyperledger/besu/pull/2143)
- Add 1559 parameters to json-rpc responses. [\#2222](https://github.com/hyperledger/besu/pull/2222)

### Early Access Features

Expand All @@ -23,6 +92,11 @@
- Fixed issues in debug_standardTraceBadBlockToFile and debug_standardTraceBlockToFile. [\#2120](https://github.com/hyperledger/besu/pull/2120)
- Fixed invalid error code in several JSON RPC methods when the requested block is not in the range. [\#2138](https://github.com/hyperledger/besu/pull/2138)

## Download Link
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/21.1.6/besu-21.1.6.zip

sha256: 3952c69a32bb390ec84ccf4c2c3eb600ea3696af9a05914985d10e1632ef8488

## 21.1.5

### Additions and Improvements
Expand Down
110 changes: 82 additions & 28 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@
| Karim Taam | matkt | matkt |
| Meredith Baxter | mbaxter | mbaxter |
| Nicolas Massart | NicolasMassart | NicolasMassart |
| Sajida Zouarhi | sajz | SajidaZ |
| Stefan Pingel | pinges | pinges |
| Trent Mohay | rain-on | trent.mohay |
| Rai Sur | RatanRSur | ratanraisur |
| Danno Ferrin | shemnon | shemnon |
| Usman Saleem | usmansaleem | usmansaleem |
| Vijay Michalik | vmichalik | VijayMichalik |

## Emeritus Maintainers

Expand All @@ -40,39 +42,67 @@

## Becoming a Maintainer

Besu welcomes community contribution. Community members may progress to become a
maintainer. To become a maintainer the following steps occur, roughly in order.
Besu welcomes community contribution.
Each community member may progress to become a maintainer.

- 5 significant changes have been authored by the proposed maintainer and
accepted.
There are two ways to become a maintainer:

- Contribute significantly to the code in this repository.
- Contribute significantly to the doc or being recognized as great help by other contributors.

### Code maintainers contribution requirement

The requirement to be able to be proposed as a code maintainer is:

- 5 significant changes on code have been authored in this repos by the proposed maintainer and accepted (merged PRs).

### Other maintainers contribution requirement

The requirements to be able to be proposed as a non-code maintainer are:

- 5 significant changes on documentation have been authored in this repos by the proposed maintainer and accepted (merged pull-requests (PR), excluding hyperledger/besu-doc repos contribution).
- or 5 significant support answers on official public channels that solved the user issue.
- or being recognised as a fully involved and significant help for issue triage and assignment or roadmap planning effort and code review by other maintainers.
There is no number defined for these criteria as the vote will decide if the criteria are valid.

### Maintainers approval process

For both types of maintainers, the following steps must occur for a contributor to be "upgraded" as a maintainer:

- The proposed maintainer meets the expectations for the targeted maintainership type (see [code](#code-maintainers-contribution-requirement) and [non code](#other-maintainers-contribution-requirement) types.)
- The proposed maintainer has the sponsorship of at least one other maintainer.
- This sponsoring maintainer will create a PR modifying the list of
maintainers.
- This sponsoring maintainer will create a proposal PR modifying the list of
maintainers. (see [proposal PR template](#proposal-pr-template).)
- The proposed maintainer accepts the nomination and expresses a willingness
to be a long-term (more than 6 month) committer.
- This would be a comment in the above PR.
- This PR will be communicated in all appropriate communication channels. It
should be mentioned in any maintainer/community call. It should also be
posted to the appropriate mailing list or chat channels if they exist.
to be a long-term (more than 6 month) committer by adding a comment in the proposal PR.
- The PR will be communicated in all appropriate communication channels
including at least [Besu Rocket Chat](https://wiki.hyperledger.org/display/BESU/Rocket+Chat),
the [mailing list](https://lists.hyperledger.org/g/besu)
and any maintainer/community call.
- Approval by at least 3 current maintainers within two weeks of the proposal or
an absolute majority of current maintainers.
- These votes will be recorded in the PR modifying the list of maintainers.
- No veto by another maintainer within two weeks of proposal are recorded.
an absolute majority (half the total + 1) of current maintainers.
- Maintainers will vote by approving the proposal PR.
- No veto raised by another maintainer within the voting timeframe.
- All vetoes must be accompanied by a public explanation as a comment in the
PR for adding this maintainer
- The explanation of the veto must be reasonable.
- A veto can be retracted, in that case the approval/veto timeframe is reset.
proposal PR.
- The explanation of the veto must be reasonable and follow the [Besu code of conduct](https://wiki.hyperledger.org/display/BESU/Code+of+Conduct).
- A veto can be retracted, in that case the voting timeframe is reset and all approvals are removed.
- It is bad form to veto, retract, and veto again.
- The proposed maintainer becomes a maintainer
- Either two weeks have passed since the third approval,
- Or an absolute majority of maintainers approve.
- In either case, no maintainer presents a veto.

The proposed maintainer becomes a maintainer either:

- when two weeks have passed without veto since the third approval of the proposal PR,
- or an absolute majority of maintainers approved the proposal PR.

In either case, no maintainer raised and stood by a veto.

## Removing Maintainers

Being a maintainer is not a status symbol or a title to be maintained
indefinitely. It will occasionally be necessary and appropriate to move a
maintainer to emeritus status. This can occur in the following situations:
Being a maintainer is not a status symbol or a title to be maintained indefinitely.

It will occasionally be necessary and appropriate to move a maintainer to emeritus status.

This can occur in the following situations:

- Resignation of a maintainer.
- Violation of the Code of Conduct warranting removal.
Expand All @@ -84,9 +114,33 @@ maintainer to emeritus status. This can occur in the following situations:
leave such as parental leave and medical leave.
- Other unspecified circumstances.

Like adding a maintainer the record and governance process for moving a
maintainer to emeritus status is recorded in the github PR making that change.
As for adding a maintainer, the record and governance process for moving a
maintainer to emeritus status is recorded using review approval in the PR making that change.

Returning to active status from emeritus status uses the same steps as adding a
new maintainer. Note that the emeritus maintainer already has the 5 required
significant changes as there is no contribution time horizon for those.
new maintainer.

Note that the emeritus maintainer always already has the required significant contributions.
There is no contribution prescription delay.

## Proposal PR template

```markdown
I propose to add [maintainer github handle] as a Besu project maintainer.

<!-- for code contributors -->
[maintainer github handle] contributed with many high quality commits:

- [list significant achievements]

Here are [their past contributions on Besu project](https://github.com/hyperledger/besu/commits?author=[user github handle]).

<!-- for non-code contributors -->
[maintainer github handle] contributed with many high quality actions:

- [list significant actions]

Voting ends two weeks from today at [[insert date and time]]([link to coundtown created with some tool like https://www.timeanddate.com/countdown/create])

For more information on this process see the Becoming a Maintainer section in the MAINTAINERS.md file.
```
2 changes: 2 additions & 0 deletions acceptance-tests/dsl/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,6 @@ dependencies {
implementation 'tech.pegasys.ethsigner.internal:ethsigner-core'
implementation 'tech.pegasys.signers.internal:signing-secp256k1-api'
implementation 'tech.pegasys.signers.internal:signing-secp256k1-impl'

implementation 'org.testcontainers:testcontainers'
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,30 @@ public AdminConditions(final AdminTransactions admin) {
}

public Condition addPeer(final Node addingPeer) {

return new ExpectPeerAdded(admin.addPeer(enodeUrl(addingPeer)));
}

public Condition hasPeer(final Node peer) {
return new ExpectHasPeer(nodeId(peer), admin.listPeers());
}

public Condition doesNotHavePeer(final Node peer) {
return new ExpectNotHavePeer(nodeId(peer), admin.listPeers());
}

private URI enodeUrl(final Node node) {
if (!(node instanceof RunnableNode)) {
fail("A RunnableNode instance is required");
}

return ((RunnableNode) node).enodeUrl();
}

private String nodeId(final Node node) {
if (!(node instanceof RunnableNode)) {
fail("A RunnableNode instance is required");
}

return "0x" + ((RunnableNode) node).getNodeId();
}
}
Loading

0 comments on commit a0d8584

Please sign in to comment.