Skip to content

Commit

Permalink
Merge master (#8987)
Browse files Browse the repository at this point in the history
* Merge master into FOCIL
  • Loading branch information
mehdi-aouadi authored Jan 13, 2025
1 parent a3cd37b commit ecd1030
Show file tree
Hide file tree
Showing 32 changed files with 352 additions and 170 deletions.
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@
## Unreleased Changes

### Breaking Changes
`--Xvalidators-builder-registration-default-gas-limit` is removed in favour of `--validators-builder-registration-default-gas-limit`

### Additions and Improvements
- Default the gas limit to 36 million for externally produced blocks
- Optimized blobs validation pipeline
- Remove delay when fetching blobs from the local EL on block arrival

### Bug Fixes
- Fix `--version` command output [#8960](https://github.com/Consensys/teku/issues/8960)
- Fix `--version` command output [#8960](https://github.com/Consensys/teku/issues/8960)
- Fix issue (introduced in `24.12.1`) with peer stability when the upperbound is set to a high number
2 changes: 2 additions & 0 deletions acceptance-tests/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
dependencies {
testImplementation 'io.tmio:tuweni-units'

acceptanceTestImplementation project(":infrastructure:bls")
acceptanceTestImplementation project(':infrastructure:time')
acceptanceTestImplementation project(':data:serializer')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ void shouldMaintainValidatorsInMutableClient() throws Exception {
api.assertLocalValidatorListing(validatorKeystores.getPublicKeys());

api.assertValidatorGasLimit(
validatorKeystores.getPublicKeys().get(1), UInt64.valueOf(30000000));
validatorKeystores.getPublicKeys().get(1), UInt64.valueOf(36_000_000));

// generate voluntary exit
api.generateVoluntaryExitAndCheckValidatorIndex(validatorKeystores.getPublicKeys().get(1), 1);
Expand Down
1 change: 0 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -984,7 +984,6 @@ subprojects {
runtimeOnly 'org.apache.logging.log4j:log4j-core'
runtimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl'

testImplementation 'io.tmio:tuweni-junit'
testImplementation 'org.assertj:assertj-core'
testImplementation 'org.mockito:mockito-core'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/*
* Copyright Consensys Software Inc., 2024
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/

package tech.pegasys.teku.benchmarks;

import java.nio.file.Files;
import java.nio.file.Path;
import java.util.concurrent.TimeUnit;
import org.apache.tuweni.bytes.Bytes;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Level;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;
import org.openjdk.jmh.infra.Blackhole;
import tech.pegasys.teku.benchmarks.util.CustomRunner;
import tech.pegasys.teku.bls.BLSSignatureVerifier;
import tech.pegasys.teku.spec.Spec;
import tech.pegasys.teku.spec.TestSpecFactory;
import tech.pegasys.teku.spec.datastructures.operations.IndexedAttestation;
import tech.pegasys.teku.spec.datastructures.state.Fork;
import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState;
import tech.pegasys.teku.spec.logic.common.util.AsyncBLSSignatureVerifier;

@State(Scope.Thread)
@BenchmarkMode(Mode.Throughput)
@Warmup(iterations = 2, time = 1000, timeUnit = TimeUnit.MILLISECONDS)
@Measurement(iterations = 5, time = 1000, timeUnit = TimeUnit.MILLISECONDS)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
public class IndexedAttestationValidationBenchmark {
Spec spec;
BeaconState beaconState;
IndexedAttestation indexedAttestation;
Fork fork;
AsyncBLSSignatureVerifier asyncBLSSignatureVerifier;

@Setup(Level.Trial)
public void init() throws Exception {
spec = TestSpecFactory.createMainnetDeneb();

final byte[] stateBytes = Files.readAllBytes(Path.of("/Users/tbenr/state.ssz"));
final byte[] indexedAttestationBytes =
Files.readAllBytes(Path.of("/Users/tbenr/attestation.ssz"));

beaconState = spec.deserializeBeaconState(Bytes.of(stateBytes));
indexedAttestation =
spec.atSlot(beaconState.getSlot())
.getSchemaDefinitions()
.getIndexedAttestationSchema()
.sszDeserialize(Bytes.of(indexedAttestationBytes));

fork = spec.getForkSchedule().getFork(spec.computeEpochAtSlot(beaconState.getSlot()));
asyncBLSSignatureVerifier = AsyncBLSSignatureVerifier.wrap(BLSSignatureVerifier.NO_OP);
}

@Benchmark
public void validateIndexedAttestation(Blackhole bh) {
bh.consume(
spec.atSlot(beaconState.getSlot())
.getAttestationUtil()
.isValidIndexedAttestationAsync(
fork, beaconState, indexedAttestation, asyncBLSSignatureVerifier)
.join());
}

public static void main(String[] args) throws Exception {
IndexedAttestationValidationBenchmark benchmark = new IndexedAttestationValidationBenchmark();
benchmark.init();
new CustomRunner(2, 10000).withBench(benchmark::validateIndexedAttestation).run();
}
}
1 change: 0 additions & 1 deletion eth-reference-tests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ dependencies {
referenceTestImplementation 'com.fasterxml.jackson.core:jackson-databind'
referenceTestImplementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml'
referenceTestImplementation 'io.tmio:tuweni-bytes'
referenceTestImplementation 'io.tmio:tuweni-junit'
referenceTestImplementation 'io.tmio:tuweni-ssz'
referenceTestImplementation 'org.xerial.snappy:snappy-java'
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -767,6 +767,9 @@ private Builder reset() {
eth1DepositContractAddress = null;
eth1DepositContractDeployBlock = Optional.empty();
trustedSetup = Optional.empty();
terminalBlockHashOverride = Optional.empty();
terminalBlockHashEpochOverride = Optional.empty();
totalTerminalDifficultyOverride = Optional.empty();
return this;
}

Expand Down Expand Up @@ -818,7 +821,11 @@ public Builder applyMainnetNetworkDefaults() {

// Nimbus
"enr:-LK4QA8FfhaAjlb_BXsXxSfiysR7R52Nhi9JBt4F8SPssu8hdE1BXQQEtVDC3qStCW60LSO7hEsVHv5zm8_6Vnjhcn0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAN4aBKJc2VjcDI1NmsxoQJerDhsJ-KxZ8sHySMOCmTO6sHM3iCFQ6VMvLTe948MyYN0Y3CCI4yDdWRwgiOM",
"enr:-LK4QKWrXTpV9T78hNG6s8AM6IO4XH9kFT91uZtFg1GcsJ6dKovDOr1jtAAFPnS2lvNltkOGA9k29BUN7lFh_sjuc9QBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhANAdd-Jc2VjcDI1NmsxoQLQa6ai7y9PMN5hpLe5HmiJSlYzMuzP7ZhwRiwHvqNXdoN0Y3CCI4yDdWRwgiOM");
"enr:-LK4QKWrXTpV9T78hNG6s8AM6IO4XH9kFT91uZtFg1GcsJ6dKovDOr1jtAAFPnS2lvNltkOGA9k29BUN7lFh_sjuc9QBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhANAdd-Jc2VjcDI1NmsxoQLQa6ai7y9PMN5hpLe5HmiJSlYzMuzP7ZhwRiwHvqNXdoN0Y3CCI4yDdWRwgiOM")
.terminalBlockHashEpochOverride(UInt64.valueOf(146875))
.terminalBlockHashOverride(
Bytes32.fromHexString(
"0x55b11b918355b1ef9c5db810302ebad0bf2544255b530cdce90674d5887bb286"));
}

private Builder applySepoliaNetworkDefaults() {
Expand All @@ -843,7 +850,11 @@ private Builder applySepoliaNetworkDefaults() {
// Another bootnode
"enr:-L64QC9Hhov4DhQ7mRukTOz4_jHm4DHlGL726NWH4ojH1wFgEwSin_6H95Gs6nW2fktTWbPachHJ6rUFu0iJNgA0SB2CARqHYXR0bmV0c4j__________4RldGgykDb6UBOQAABx__________-CaWSCdjSCaXCEA-2vzolzZWNwMjU2azGhA17lsUg60R776rauYMdrAz383UUgESoaHEzMkvm4K6k6iHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo",
// Lodestart bootnode
"enr:-KG4QJejf8KVtMeAPWFhN_P0c4efuwu1pZHELTveiXUeim6nKYcYcMIQpGxxdgT2Xp9h-M5pr9gn2NbbwEAtxzu50Y8BgmlkgnY0gmlwhEEVkQCDaXA2kCoBBPnAEJg4AAAAAAAAAAGJc2VjcDI1NmsxoQLEh_eVvk07AQABvLkTGBQTrrIOQkzouMgSBtNHIRUxOIN1ZHCCIyiEdWRwNoIjKA");
"enr:-KG4QJejf8KVtMeAPWFhN_P0c4efuwu1pZHELTveiXUeim6nKYcYcMIQpGxxdgT2Xp9h-M5pr9gn2NbbwEAtxzu50Y8BgmlkgnY0gmlwhEEVkQCDaXA2kCoBBPnAEJg4AAAAAAAAAAGJc2VjcDI1NmsxoQLEh_eVvk07AQABvLkTGBQTrrIOQkzouMgSBtNHIRUxOIN1ZHCCIyiEdWRwNoIjKA")
.terminalBlockHashEpochOverride(UInt64.valueOf(3599))
.terminalBlockHashOverride(
Bytes32.fromHexString(
"0xd07cce9785d39c0dd2409b7d8e69d6bff26a69a0fa5308ac781c63ffe2a37bc1"));
}

private Builder applyLuksoNetworkDefaults() {
Expand Down Expand Up @@ -876,7 +887,11 @@ public Builder applyGnosisNetworkDefaults() {
"enr:-Ly4QCD5D99p36WafgTSxB6kY7D2V1ca71C49J4VWI2c8UZCCPYBvNRWiv0-HxOcbpuUdwPVhyWQCYm1yq2ZH0ukCbQBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhI1eYVSJc2VjcDI1NmsxoQJJMSV8iSZ8zvkgbi8cjIGEUVJeekLqT0LQha_co-siT4hzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA",
"enr:-KK4QKXJq1QOVWuJAGige4uaT8LRPQGCVRf3lH3pxjaVScMRUfFW1eiiaz8RwOAYvw33D4EX-uASGJ5QVqVCqwccxa-Bi4RldGgykCGm-DYDAABk__________-CaWSCdjSCaXCEM0QnzolzZWNwMjU2azGhAhNvrRkpuK4MWTf3WqiOXSOePL8Zc-wKVpZ9FQx_BDadg3RjcIIjKIN1ZHCCIyg",
"enr:-LO4QO87Rn2ejN3SZdXkx7kv8m11EZ3KWWqoIN5oXwQ7iXR9CVGd1dmSyWxOL1PGsdIqeMf66OZj4QGEJckSi6okCdWBpIdhdHRuZXRziAAAAABgAAAAhGV0aDKQPr_UhAQAAGT__________4JpZIJ2NIJpcIQj0iX1iXNlY3AyNTZrMaEDd-_eqFlWWJrUfEp8RhKT9NxdYaZoLHvsp3bbejPyOoeDdGNwgiMog3VkcIIjKA",
"enr:-LK4QIJUAxX9uNgW4ACkq8AixjnSTcs9sClbEtWRq9F8Uy9OEExsr4ecpBTYpxX66cMk6pUHejCSX3wZkK2pOCCHWHEBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpA-v9SEBAAAZP__________gmlkgnY0gmlwhCPSnDuJc2VjcDI1NmsxoQNuaAjFE-ANkH3pbeBdPiEIwjR5kxFuKaBWxHkqFuPz5IN0Y3CCIyiDdWRwgiMo");
"enr:-LK4QIJUAxX9uNgW4ACkq8AixjnSTcs9sClbEtWRq9F8Uy9OEExsr4ecpBTYpxX66cMk6pUHejCSX3wZkK2pOCCHWHEBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpA-v9SEBAAAZP__________gmlkgnY0gmlwhCPSnDuJc2VjcDI1NmsxoQNuaAjFE-ANkH3pbeBdPiEIwjR5kxFuKaBWxHkqFuPz5IN0Y3CCIyiDdWRwgiMo")
.terminalBlockHashEpochOverride(UInt64.valueOf(394147))
.terminalBlockHashOverride(
Bytes32.fromHexString(
"0xf5cff68065ac6014bb7c9aa731d4d4084de0994f807ac1df3856308b3c9b2b48"));
}

public Builder applyChiadoNetworkDefaults() {
Expand Down Expand Up @@ -907,7 +922,11 @@ public Builder applyChiadoNetworkDefaults() {
// GnosisDAO Bootnode: 35.206.174.92
"enr:-KG4QF7z4LUdMfgwvh-fS-MDv_1hPSUCqGfyOWGLNJuoBHKFAMSHz8geQn8v3qDDbuSQKud3WIAjKqR4gqJoLBUEJ08ZhGV0aDKQDc1ElgAAAG___________4JpZIJ2NIJpcIQjzq5ciXNlY3AyNTZrMaECt7YO363pV54d3QdgnluL5kxzhCR_k0yM9C-G6bqMGoKDdGNwgiMog3VkcIIjKA",
// GnosisDAO Bootnode: 35.210.126.23
"enr:-LK4QCUTEmZrT1AgCKdyVgwnHL5J0VSoxsyjruAtwo-owBTBVEOyAnQRVNXlcW5aL-ycntk5oHDrKCR-DXZAlUAKpjEBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCdM7Z1BAAAb___________gmlkgnY0gmlwhCPSfheJc2VjcDI1NmsxoQNpdf8U9pzsU9m6Hzgd1rmTI-On-QImJnkZBGqDp4org4N0Y3CCIyiDdWRwgiMo");
"enr:-LK4QCUTEmZrT1AgCKdyVgwnHL5J0VSoxsyjruAtwo-owBTBVEOyAnQRVNXlcW5aL-ycntk5oHDrKCR-DXZAlUAKpjEBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCdM7Z1BAAAb___________gmlkgnY0gmlwhCPSfheJc2VjcDI1NmsxoQNpdf8U9pzsU9m6Hzgd1rmTI-On-QImJnkZBGqDp4org4N0Y3CCIyiDdWRwgiMo")
.terminalBlockHashEpochOverride(UInt64.valueOf(27263))
.terminalBlockHashOverride(
Bytes32.fromHexString(
"0x39f44fc16dc964e8d2d1637b99e12992be4a4f766a66658da730e20e511ced64"));
}

private Builder applyHoleskyNetworkDefaults() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
import static com.google.common.base.Preconditions.checkArgument;
import static tech.pegasys.teku.infrastructure.async.SafeFuture.completedFuture;

import com.google.common.collect.Comparators;
import it.unimi.dsi.fastutil.ints.IntList;
import java.util.Comparator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.IntStream;
Expand Down Expand Up @@ -236,26 +236,34 @@ public SafeFuture<AttestationProcessingResult> isValidIndexedAttestationAsync(
final AsyncBLSSignatureVerifier signatureVerifier) {
final SszUInt64List indices = indexedAttestation.getAttestingIndices();

if (indices.isEmpty()
|| !Comparators.isInStrictOrder(indices.asListUnboxed(), Comparator.naturalOrder())) {
if (indices.isEmpty()) {
return completedFuture(
AttestationProcessingResult.invalid("Attesting indices are not sorted"));
AttestationProcessingResult.invalid("Attesting indices must not be empty"));
}

final List<BLSPublicKey> pubkeys =
indices
.streamUnboxed()
.flatMap(i -> beaconStateAccessors.getValidatorPubKey(state, i).stream())
.toList();
if (pubkeys.size() < indices.size()) {
return completedFuture(
AttestationProcessingResult.invalid("Attesting indices include non-existent validator"));
UInt64 lastIndex = null;
final List<BLSPublicKey> pubkeys = new ArrayList<>(indices.size());

for (final UInt64 index : indices.asListUnboxed()) {
if (lastIndex != null && index.isLessThanOrEqualTo(lastIndex)) {
return completedFuture(
AttestationProcessingResult.invalid("Attesting indices are not sorted"));
}
lastIndex = index;
final Optional<BLSPublicKey> validatorPubKey =
beaconStateAccessors.getValidatorPubKey(state, index);
if (validatorPubKey.isEmpty()) {
return completedFuture(
AttestationProcessingResult.invalid(
"Attesting indices include non-existent validator"));
}
pubkeys.add(validatorPubKey.get());
}

return validateAttestationDataSignature(
fork,
state,
pubkeys,
Collections.unmodifiableList(pubkeys),
indexedAttestation.getSignature(),
indexedAttestation.getData(),
signatureVerifier);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@
import static java.util.stream.Collectors.toList;
import static org.junit.jupiter.api.Assertions.assertEquals;

import java.security.Security;
import java.util.Arrays;
import java.util.List;
import org.apache.tuweni.bytes.Bytes;
import org.apache.tuweni.bytes.Bytes32;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.junit.jupiter.api.Test;
import tech.pegasys.teku.bls.BLSKeyPair;
import tech.pegasys.teku.bls.BLSSecretKey;
Expand Down Expand Up @@ -60,10 +58,6 @@ class MockStartDepositGeneratorTest {
private final Spec spec = TestSpecFactory.createDefault();
private final MockStartDepositGenerator generator = new MockStartDepositGenerator(spec);

static {
Security.addProvider(new BouncyCastleProvider());
}

@Test
public void shouldGenerateDepositData() {
final List<BLSKeyPair> keyPairs =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,12 @@
import java.util.Objects;
import org.apache.tuweni.bytes.Bytes;
import org.apache.tuweni.bytes.Bytes32;
import org.apache.tuweni.junit.BouncyCastleExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import tech.pegasys.teku.infrastructure.ssz.SszTestUtils;
import tech.pegasys.teku.infrastructure.ssz.collections.SszBytes32Vector;
import tech.pegasys.teku.spec.TestSpecFactory;
import tech.pegasys.teku.spec.util.DataStructureUtil;

@ExtendWith(BouncyCastleExtension.class)
class DepositTest {
private final DataStructureUtil dataStructureUtil =
new DataStructureUtil(TestSpecFactory.createDefault());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,14 @@
import it.unimi.dsi.fastutil.ints.IntList;
import java.util.stream.IntStream;
import org.apache.tuweni.bytes.Bytes;
import org.apache.tuweni.junit.BouncyCastleExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import tech.pegasys.teku.infrastructure.ssz.SszTestUtils;
import tech.pegasys.teku.infrastructure.ssz.collections.SszMutableBytes32Vector;
import tech.pegasys.teku.spec.Spec;
import tech.pegasys.teku.spec.TestSpecFactory;
import tech.pegasys.teku.spec.datastructures.state.HistoricalBatch.HistoricalBatchSchema;
import tech.pegasys.teku.spec.util.DataStructureUtil;

@ExtendWith(BouncyCastleExtension.class)
public class HistoricalBatchTest {

private static final Spec SPEC = TestSpecFactory.createMainnetPhase0();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@
import it.unimi.dsi.fastutil.ints.IntList;
import java.util.List;
import org.apache.tuweni.bytes.Bytes;
import org.apache.tuweni.junit.BouncyCastleExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import tech.pegasys.teku.infrastructure.ssz.SszTestUtils;
import tech.pegasys.teku.infrastructure.ssz.schema.SszPrimitiveSchemas;
import tech.pegasys.teku.infrastructure.ssz.schema.SszVectorSchema;
Expand All @@ -40,7 +38,6 @@
import tech.pegasys.teku.spec.datastructures.state.beaconstate.MutableBeaconState;
import tech.pegasys.teku.spec.util.DataStructureUtil;

@ExtendWith(BouncyCastleExtension.class)
public abstract class AbstractBeaconStateSchemaTest<
T extends BeaconState, TMutable extends MutableBeaconState> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@

import static org.assertj.core.api.Assertions.assertThat;

import org.apache.tuweni.junit.BouncyCastleExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import tech.pegasys.teku.infrastructure.unsigned.UInt64;
import tech.pegasys.teku.spec.Spec;
import tech.pegasys.teku.spec.config.SpecConfig;
Expand All @@ -27,7 +25,6 @@
import tech.pegasys.teku.spec.schemas.registry.SchemaRegistry;
import tech.pegasys.teku.spec.util.DataStructureUtil;

@ExtendWith(BouncyCastleExtension.class)
public abstract class AbstractBeaconStateTest<
T extends BeaconState, TMutable extends MutableBeaconState> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@
import org.apache.tuweni.bytes.Bytes;
import org.apache.tuweni.bytes.Bytes32;
import org.apache.tuweni.bytes.Bytes48;
import org.apache.tuweni.junit.BouncyCastleExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import tech.pegasys.teku.bls.BLSPublicKey;
import tech.pegasys.teku.bls.BLSSignature;
import tech.pegasys.teku.infrastructure.ssz.SszList;
Expand All @@ -45,7 +43,6 @@
import tech.pegasys.teku.spec.logic.common.statetransition.exceptions.BlockProcessingException;
import tech.pegasys.teku.spec.util.DataStructureUtil;

@ExtendWith(BouncyCastleExtension.class)
public abstract class BlockProcessorTest {
protected final Spec spec = createSpec();
protected final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static tech.pegasys.teku.spec.config.SpecConfig.GENESIS_SLOT;

import org.apache.tuweni.junit.BouncyCastleExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import tech.pegasys.teku.infrastructure.unsigned.UInt64;
import tech.pegasys.teku.spec.Spec;
import tech.pegasys.teku.spec.SpecVersion;
Expand All @@ -31,7 +29,6 @@
import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState;
import tech.pegasys.teku.spec.util.DataStructureUtil;

@ExtendWith(BouncyCastleExtension.class)
public class BeaconStateUtilTest {
private final Spec spec = TestSpecFactory.createMinimalPhase0();
private final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec);
Expand Down
Loading

0 comments on commit ecd1030

Please sign in to comment.