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

[DON'T MERGE] Migrating PeerDAS to Pectra + soft-forking #163

Draft
wants to merge 462 commits into
base: das
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
462 commits
Select commit Hold shift + click to select a range
4562bbf
added SubscribeToBeaconCommitteeRequest to typedefs (#8486)
rolfyone Jul 31, 2024
613dd3b
move send signed contribution and proof to typedef client. (#8485)
rolfyone Jul 31, 2024
671aa09
Updating dependencies (#8488)
lucassaldanha Aug 1, 2024
e4870a3
Move BeaconPreparableProposer call to typedef client (#8489)
rolfyone Aug 1, 2024
38d2635
Add PostAttestationV2 API (#8448)
mehdi-aouadi Aug 1, 2024
59e78d4
Unhide IPv6/dual-stack options (#8451)
StefanBratanov Aug 1, 2024
11c0dd7
remove type duplication in BeaconPreparableProposer (#8491)
rolfyone Aug 1, 2024
c62abc0
Updated createAggregateAttestation to use typedef client (#8492)
rolfyone Aug 2, 2024
f5150b1
add missing changelog (#8494)
gfukushima Aug 2, 2024
7455d50
refactor create aggregate attestation request (#8496)
mehdi-aouadi Aug 2, 2024
98a1cc4
Updated sendValidatorLiveness to use typedef client (#8498)
rolfyone Aug 5, 2024
777c9dc
Promote GetNewBlockV3 and enable by default (#8493)
gfukushima Aug 6, 2024
7defe58
update changelog (#8499)
lucassaldanha Aug 7, 2024
19894d1
Fix off-by-one in process_pending_consolidations (#8502)
lucassaldanha Aug 11, 2024
07c2b0c
Remove deprecated GetNewBlindedBlock (#8508)
gfukushima Aug 12, 2024
8034a26
Cleaned up interfaces for remote request (#8503)
rolfyone Aug 12, 2024
0002baf
moved SendSyncCommitteeRequest to typedefs (#8509)
rolfyone Aug 13, 2024
cec7c1c
Remove deprecated GetNewBlockV2 from Validator API (#8504)
gfukushima Aug 13, 2024
b7eea54
Removed OkHttpValidatorRestApiClient (#8510)
rolfyone Aug 13, 2024
cde06e1
Add support for phase0 and electra in PostAttesterSlashingV2 (#8487)
gfukushima Aug 19, 2024
85feeab
started cleaning up JsonProvider usage (#8512)
rolfyone Aug 19, 2024
a5000fe
split spotless from module checks for build (#8514)
rolfyone Aug 20, 2024
1cbe765
Update `getBlobSidecars` API response with `Eth-Consensus-Version` h…
gfukushima Aug 20, 2024
89dd8fa
annotated classes cleanup (#8518)
mehdi-aouadi Aug 20, 2024
c5c85ba
Revert "annotated classes cleanup (#8518)" (#8519)
rolfyone Aug 20, 2024
3f73ba0
Remove --xblock-v3-enabled and useBlindedBlock variable (#8511)
gfukushima Aug 21, 2024
f108871
Change to ObjectMapper for Metrics and Proposer config (#8515)
rolfyone Aug 21, 2024
6efaaea
reduced cleanup of json objects (#8521)
rolfyone Aug 21, 2024
376a874
Move away from using JsonProvider in some AT (#8524)
rolfyone Aug 22, 2024
fe54d38
add get aggregate attestation request (#8483)
mehdi-aouadi Aug 22, 2024
933df84
add post aggregate and proofs V2 API (#8517)
mehdi-aouadi Aug 22, 2024
35da85a
use header based selector with slot fallback (#8522)
mehdi-aouadi Aug 22, 2024
2c21147
Removed more references to JsonProvider in AT (#8528)
rolfyone Aug 22, 2024
dc14fe6
better support for enum type in open api doc (#8529)
mehdi-aouadi Aug 26, 2024
038a2af
update google java format (#8533)
mehdi-aouadi Aug 27, 2024
e4c973f
8424 attestations handler (#8456)
mehdi-aouadi Aug 27, 2024
35d665b
Updated ATs to support post-merge setup using Besu (#8536)
lucassaldanha Aug 28, 2024
4953d5e
Post aggregate and proofs request (#8523)
mehdi-aouadi Aug 28, 2024
c408c20
refactor enum type definition building (#8542)
mehdi-aouadi Aug 28, 2024
c5cd7dc
cleaned up schema definition use for block production (#8544)
rolfyone Aug 29, 2024
f9483f4
Validator Triggered Exits (EIP-7002) ATs (#8547)
lucassaldanha Aug 29, 2024
e862210
handle missing committee index (#8548)
mehdi-aouadi Aug 29, 2024
6c3e1f5
Running post-bellatrix merged network ATs with develop Besu docker (#…
lucassaldanha Aug 29, 2024
60ed5e1
add --Xattestations-v2-apis-enabled option (#8546)
mehdi-aouadi Aug 30, 2024
16dc699
created remote signer AT starting at capella (#8551)
rolfyone Sep 1, 2024
22e2350
attestation duties generation optimization (#8553)
tbenr Sep 2, 2024
b3db218
dependency update and gradle update (#8556)
tbenr Sep 2, 2024
02b9e2f
Updating ref-tests to v1.5.0-alpha.5 (#8557)
lucassaldanha Sep 2, 2024
2dd1a39
Added deneb remote signer AT (#8558)
rolfyone Sep 4, 2024
b1f5331
started changing integration tests to use object_mapper (#8560)
rolfyone Sep 4, 2024
fd99450
updated integration tests to remove jsonProvider (#8564)
rolfyone Sep 5, 2024
99e72b2
Validator consolidation ATs (#8565)
lucassaldanha Sep 5, 2024
2c60a8f
update deposit tree snapshot loading warning (#8568)
mehdi-aouadi Sep 5, 2024
308fe99
Wait longer for tx receipt (#8572)
lucassaldanha Sep 6, 2024
3512a73
Disable ValidatorConsolidationAcceptanceTest (#8575)
lucassaldanha Sep 6, 2024
44b811c
Revert "attestation duties generation optimization (#8553)" (#8576)
rolfyone Sep 6, 2024
3fb24ec
From bytes and from hex string (#8573)
gconnect Sep 6, 2024
e2aff91
Reintroduce attestation generation optimization (#8578)
tbenr Sep 6, 2024
52b7f0b
Completed removal of JsonProvider from IntegrationTests (#8566)
rolfyone Sep 6, 2024
2426c9f
Removed error message that we no longer need (#8574)
rolfyone Sep 6, 2024
9bb1af4
Add explicit `_total` suffix to validator metrics missing it (#8582)
gfukushima Sep 9, 2024
aeadce1
Separate schemas refactoring (#8570)
mehdi-aouadi Sep 9, 2024
b4e2a63
Add response header `Eth-Consensus-Version` to API (#8586)
gfukushima Sep 11, 2024
3dc01fd
Deprecate v1 block publishing (#8580)
aslikaya Sep 11, 2024
47080fb
Update rest api endpoints ChainDataProvider and ValidatorDataProvider…
KatyaRyazantseva Sep 12, 2024
5dcc61c
Add native support for ephemery testnet and config files (#8543)
gconnect Sep 12, 2024
3a565f1
use enumMap where possible on SpecMilestone key (#8591)
tbenr Sep 12, 2024
989a415
Created new container ExecutionRequests (#8595)
lucassaldanha Sep 13, 2024
d0a2773
Add multiple response headers to open api (#8596)
gfukushima Sep 16, 2024
624f3f7
Deprecated methods clean up (#8601)
gfukushima Sep 16, 2024
5818b6c
Fix wei/gwei/eth conversions (#8603)
StefanBratanov Sep 16, 2024
ec10df4
upgrade to gradle 8.10.1 (#8605)
tbenr Sep 16, 2024
665dbcd
switch to besu stable with 24.9.1 out (#8607)
gfukushima Sep 17, 2024
0704ce3
Update URL to URI to remove deprecation warnings. (#8608)
david-ry4n Sep 17, 2024
91a17a5
Upgrade rocksdb library (#8532)
gfukushima Sep 19, 2024
a8910a3
Add log to debug level to track possible incorrect report of block in…
gfukushima Sep 23, 2024
d3f0193
Update Holesky bootnodes ENRs (#8627)
gfukushima Sep 23, 2024
6b02737
Updated Electra beacon api (#8628)
lucassaldanha Sep 23, 2024
778e0a4
add machine_large_executor_amd64 and use it for ATs (#8630)
gfukushima Sep 23, 2024
74b1ab0
Create and test fromHexString and fromBytes for SszBitlist (#8611)
oceans404 Sep 23, 2024
99af3a1
Add `floodPublish` CLI flag (#8610)
KatyaRyazantseva Sep 23, 2024
cb1ef30
Trivy update (#8634)
lucassaldanha Sep 23, 2024
c48a2ce
Upgrade acceptance tests flakiness fix (#8635)
gfukushima Sep 24, 2024
2cd7bc1
removed consolidations signing domain for electra (#8638)
rolfyone Sep 24, 2024
cef41e3
Update network file (#8631)
gconnect Sep 24, 2024
ae367d8
Add deposit chainId to network file on start (#8639)
gconnect Sep 24, 2024
6de2178
Update CHANGELOG.md to mention new p2p flood publish param (#8633)
tbenr Sep 24, 2024
fd599c4
Introduces `SchemaRegistry` and related classes (#8614)
tbenr Sep 24, 2024
a4e4fcc
Implement a DatabaseArchiveWriter and add to pruneOldestBlobSidecars …
david-ry4n Sep 25, 2024
ea74160
Moving requests out of ExecutionPayload (#8600)
lucassaldanha Sep 25, 2024
7066de7
Update Electra penalty computation. EIP7125 (#8612)
david-ry4n Sep 25, 2024
b91c432
Add fix for CVE-2024-7254 (#8647)
StefanBratanov Sep 26, 2024
600b34e
FIx codespell check (#8652)
StefanBratanov Sep 27, 2024
080b5a5
Upgrade jc-kzg-4844 to latest version (#8651)
StefanBratanov Sep 27, 2024
3064bc9
Add schema registry in schema definitions (#8615)
tbenr Sep 27, 2024
4fa47d1
feat: LUKSO Mainnet Dencun Hardfork (#8650)
Wolmin Sep 27, 2024
214a9a5
Add LUKSO Deneb activation to CHANGELOG (#8654)
StefanBratanov Sep 28, 2024
ac6ee63
Fix blockImportCompleted (#8653)
tbenr Sep 29, 2024
d8a8cc4
Add get-earliest-available-block-slot to debug tool (#8649)
gfukushima Sep 29, 2024
85793dc
Gossip_V_1_2 (IDONTWANT) (#8648)
tbenr Sep 30, 2024
659262e
Enable enr field in GetPeers and GetPeerById (#8641)
zilm13 Sep 30, 2024
3b87509
Disable flood publish by default and hide flood param (#8661)
tbenr Sep 30, 2024
a929217
Added executionRequestsHash to EngineNewPayloadV4 (#8666)
lucassaldanha Oct 2, 2024
4e8c17e
Removing ExecutionPayloadV4 (#8667)
lucassaldanha Oct 2, 2024
210674e
add engine get blobs (#8662)
mehdi-aouadi Oct 2, 2024
4b204e4
Adopt `engineGetBlobs` (#8663)
tbenr Oct 2, 2024
7d40ea4
Remove redundant method from the Database interface (#8657)
gfukushima Oct 3, 2024
234f711
Mark local-el retrieved blobs as seen WRT gossip equivocation cache (…
tbenr Oct 4, 2024
b5d6908
Creating PendingDeposit container (#8678)
lucassaldanha Oct 6, 2024
d2a4df6
Updated presets for EIP-6110 (#8679)
lucassaldanha Oct 6, 2024
dca8285
add rpc method return type checks in unit tests (#8677)
mehdi-aouadi Oct 7, 2024
a9b2c12
Merge branch 'das' into das-electra
zilm13 Oct 7, 2024
8887aa0
tmp
zilm13 Oct 7, 2024
c76765e
EIP-6110: Queue deposit requests and apply them during epoch processi…
lucassaldanha Oct 7, 2024
52b1a7d
spotless fixes
zilm13 Oct 7, 2024
8a9fa11
Switch to compounding when consolidating with source==target (#8646)
lucassaldanha Oct 7, 2024
eda8e93
Refactored externalSigner to use Typedefs (#8541)
rolfyone Oct 8, 2024
22421e8
Cleaning up (#8683)
lucassaldanha Oct 8, 2024
28d559b
Check network on start and reset db (#8642)
gconnect Oct 8, 2024
be4f9b7
Implemented decoding and hash rules for execution requests (#8668)
lucassaldanha Oct 8, 2024
4477e7c
reset changelog (#8685)
tbenr Oct 8, 2024
29c81b8
fix proposer config loader (#8687)
mehdi-aouadi Oct 8, 2024
1634c43
Fix: Partial withdrawals count (#8684)
gfukushima Oct 9, 2024
93c8769
clear changelog (#8690)
tbenr Oct 9, 2024
356e127
middle of fixes
zilm13 Oct 9, 2024
82725a0
Migrate Attestation and AttnetsENR schemas to registry (#8692)
tbenr Oct 9, 2024
f29119a
Cleanup JsonProvider and unused serializers (#8689)
rolfyone Oct 9, 2024
7397737
move deserializers that we use from api schema (#8699)
rolfyone Oct 9, 2024
21e76dd
Updated GetPayloadV4 with executionRequests decoding (#8698)
lucassaldanha Oct 9, 2024
0067d57
Add executionRequestHash to NewPayloadRequest as part of block valida…
lucassaldanha Oct 10, 2024
a416449
Refactor ExecutionPayloadResult (#8702)
StefanBratanov Oct 10, 2024
22eb9ac
Check that ExecutionRequests is not null in block body (#8697)
jtraglia Oct 10, 2024
e38dcce
Exclude old incompatible jc-kzg-4844 artefact (#8704)
StefanBratanov Oct 10, 2024
aaa73c9
in the middle of finals everywhere
zilm13 Oct 10, 2024
bc3a5e7
Updated NewPayloadV4 to send requests instead of hash (#8710)
lucassaldanha Oct 11, 2024
493322a
Organize Electra schemas more logically (#8708)
jtraglia Oct 11, 2024
5380f95
Remove old execution requests from execution payload (#8707)
jtraglia Oct 11, 2024
456eb94
Add functions for execution requests to block body (#8706)
jtraglia Oct 11, 2024
7bd31ec
Reduce wait period to avoid flakiness (#8701)
gfukushima Oct 11, 2024
d659539
Another finals session
zilm13 Oct 11, 2024
3f0595a
more finals
zilm13 Oct 11, 2024
67c1366
Fix two small nits dealing with deposits (#8713)
jtraglia Oct 11, 2024
c97b0c1
Fix isFullExitRequest return (#8709)
jtraglia Oct 14, 2024
b35d70a
Remove unused methods on ExecutionPayloadBuilder (#8718)
lucassaldanha Oct 14, 2024
dfd7f9d
Updated BlockOperationSelectorFactory to include execution requests p…
lucassaldanha Oct 14, 2024
6105389
[Builder API] Update for Electra spec (#8721)
StefanBratanov Oct 14, 2024
28ac0b4
Fix engine_newPayloadV4 executionRequests serialization (#8723)
lucassaldanha Oct 14, 2024
2b10149
middle of spotlessApply fixes
zilm13 Oct 14, 2024
289561c
Schema registry interface improvement (#8696)
zilm13 Oct 14, 2024
7ed548e
Add `forceLowercase` in `enumOf` (#8724)
tbenr Oct 14, 2024
30e7fe1
More finals and fixes
zilm13 Oct 14, 2024
c585055
Move processWithdrawalRequests to BlockProcessorElectra (#8711)
gfukushima Oct 14, 2024
5409ddb
Add debug command to retrieve peerId from a node key file (#8727)
gfukushima Oct 15, 2024
a7f78f3
More finals
zilm13 Oct 15, 2024
b50adc4
migrate all schemas in AbstractSchemaDefinitions (#8726)
tbenr Oct 15, 2024
5be6509
Create file system based BlobSidecar data archive (#8674)
david-ry4n Oct 16, 2024
2985a96
8525 beacon states cleanup (#8725)
mehdi-aouadi Oct 16, 2024
398be12
update EL get blobs logs wording (#8729)
mehdi-aouadi Oct 16, 2024
f5790a5
Fix missing Gossip subnet subscription on startup (#8730)
Nashatyrev Oct 16, 2024
afacaae
update to latest release of tuweni. Switch from org.apache to io.tmio…
david-ry4n Oct 16, 2024
022c5b7
Next batch of finals + GossipForkSubscriptions for EIP7594 (a bit hac…
zilm13 Oct 16, 2024
91fcc09
make state pruner faster (#8734)
mehdi-aouadi Oct 16, 2024
da119c6
Update build.gradle to support nightly reference tests (#8732)
jtraglia Oct 16, 2024
06d4078
Standardise the Engine JSON-RPC error codes (#8695)
Malaydewangan09 Oct 17, 2024
64e2abe
little more
zilm13 Oct 17, 2024
eebec12
final build fixes
zilm13 Oct 17, 2024
0306882
fix some tests
zilm13 Oct 17, 2024
89d4630
More test fixes
zilm13 Oct 17, 2024
db7139e
Checking correctness merging of master (from beginning to infrastruct…
zilm13 Oct 17, 2024
3796cd7
In WithdrawalRequest, rename validatorPublicKey to validatorPubkey (#…
jtraglia Oct 17, 2024
9398cce
Move getMaxEffectiveBalance to MiscHelpers (#8714)
jtraglia Oct 18, 2024
aa23460
Implemented engine_forkchoiceUpdatedV4 (#8748)
lucassaldanha Oct 18, 2024
51f1f37
Migrate attester slashing and indexed attestation to schema registry …
tbenr Oct 18, 2024
b22b3d5
remove SchemaDefinitionCache from rest builder client (#8693)
tbenr Oct 18, 2024
d761f5b
Eth-Consensus-version header now passed for json block production fro…
rolfyone Oct 19, 2024
9f28a87
Expanded VC API tests (#8757)
rolfyone Oct 20, 2024
6938b2f
master merge final verification
zilm13 Oct 21, 2024
4b1efca
latest master as of 21 oct 2024 merged
zilm13 Oct 21, 2024
7ea3530
Merge branch 'das' into das-electra
zilm13 Oct 21, 2024
c3ff1d9
made post block header work with available information (#8758)
rolfyone Oct 21, 2024
6e113aa
apis tests (#8760)
mehdi-aouadi Oct 21, 2024
ab9b341
fix fixture (as order of block generation was changed)
zilm13 Oct 21, 2024
07e59f9
Change order of electra presets to match spec (#8762)
jtraglia Oct 21, 2024
3bb201d
Add electra types to schema interfaces (#8761)
jtraglia Oct 21, 2024
108e5b9
Enable more errorprone experimental checks (#8763)
jtraglia Oct 21, 2024
2550254
Save earliest slot block in a DB variable (#8722)
gfukushima Oct 22, 2024
d9a2585
Update a two tests files that contain deprecated methods. (#8765)
david-ry4n Oct 22, 2024
056cc34
fix test with DebugDataDumper
zilm13 Oct 22, 2024
e2a9019
Aggregate and proof in schema registry (#8770)
tbenr Oct 22, 2024
21efe6e
Change the builderResultCache of ExecutionLayerBlockProductionManager…
david-ry4n Oct 23, 2024
d0b0bc1
add post block integration tests (#8771)
mehdi-aouadi Oct 23, 2024
3427b34
refactored logging for inclusion on gossip channels. (#8733)
rolfyone Oct 23, 2024
7751981
Produce block only once for a slot (#8773)
StefanBratanov Oct 23, 2024
41f9022
cleanup EphemeryNetwork and add max slot constant (#8778)
rolfyone Oct 24, 2024
7c5cb0c
Add BlobSidecar inclusion proof verification in req/resp (#8775)
zilm13 Oct 24, 2024
f4e8570
Upgrade `jvm-libp2p` to 1.2.1 (#8783)
tbenr Oct 24, 2024
a5b7a22
Add explicit tie-breaker in pending balance deposits sort (#8772)
jtraglia Oct 24, 2024
56440a8
Tiny `getTopic` optimization (#8776)
tbenr Oct 24, 2024
d049544
Fixed early peerDAS actions in deneb
zilm13 Oct 25, 2024
735f664
Expose gossip future (#8735)
tbenr Oct 25, 2024
d1573c3
Rename some variables associated with AttestationElectra (#8788)
jtraglia Oct 25, 2024
110ce91
Rename validateable to validatable (#8784)
jtraglia Oct 25, 2024
2a932e6
Various cleanups (#8791)
jtraglia Oct 28, 2024
6c8db2e
Update FuzzUtil to Electra (#8792)
jtraglia Oct 28, 2024
46f4658
Refactor BeaconStateSchema.getUniqueFields() methods (#8789)
jtraglia Oct 28, 2024
76fc318
Cleanup 24.10.3 (#8794)
lucassaldanha Oct 28, 2024
92cebd3
create EphemerySlotValidationService and test (#8759)
gconnect Oct 31, 2024
f8349e6
add start scripts to correctly detect jemalloc presence (#8751)
gfukushima Oct 31, 2024
2b7a104
pass asyncRunner to builder (#8798)
gfukushima Oct 31, 2024
4910514
use the correct schema definitions (#8797)
mehdi-aouadi Oct 31, 2024
d668a4b
update deposit snapshot november 2024 (#8809)
gfukushima Nov 4, 2024
2db844c
Fix parameter name for forkchoiceUpdatedV4 (#8811)
lucassaldanha Nov 4, 2024
8bcbfc9
Change blindedBlockCreatorCache keys from slot to slotAndBlockRoot. (…
david-ry4n Nov 4, 2024
4266035
Decouple block and blobs publishing\import (#8728)
tbenr Nov 4, 2024
e8289f1
use correct schema definitions when creation full beacon block (#8806)
mehdi-aouadi Nov 4, 2024
c0c0b9c
Electra devnet 5 (#8817)
lucassaldanha Nov 4, 2024
d813213
Update dependencies (#8818)
tbenr Nov 5, 2024
fbfb8a2
add new Electra config parameters (#8819)
mehdi-aouadi Nov 5, 2024
5eda7f3
Ephemery startup network determination (#8781)
rolfyone Nov 5, 2024
1f39904
update mischelpers with new parameters (#8821)
mehdi-aouadi Nov 6, 2024
703f4d3
run `Forkchoice::onBlock` async in block importer (#8820)
tbenr Nov 6, 2024
4dc1d6a
8767 update blobs gossip (#8822)
mehdi-aouadi Nov 6, 2024
da8f449
8767 update blobs rpc methods (#8823)
mehdi-aouadi Nov 6, 2024
cedae8a
migrate capella schemas (#8825)
tbenr Nov 6, 2024
b5d4cbc
Improve error on local EL blobs lookup (#8826)
tbenr Nov 6, 2024
a64aa59
Migrate some deneb schemas to registry (#8828)
tbenr Nov 7, 2024
19e01e9
Simplify schema provider definition (#8829)
tbenr Nov 11, 2024
c64dbea
In `SpecVersion`, make `SpecConfig` instance consistent with mileston…
tbenr Nov 14, 2024
7a9ab4b
Fix missed subscriptions
zilm13 Nov 15, 2024
b28ac65
8767 update payload attributes (#8824)
mehdi-aouadi Nov 15, 2024
d5c332f
More schema registry migration (#8832)
tbenr Nov 15, 2024
c4b29fc
Migrate beacon state (#8833)
tbenr Nov 19, 2024
46adf0c
schemaName provided to creator (#8834)
tbenr Nov 19, 2024
ad7a043
Merge branch 'das' into das-electra
zilm13 Nov 19, 2024
af1320e
update netty (#8838)
tbenr Nov 20, 2024
6ca679f
Migrate builder bids to schema registry (#8836)
tbenr Nov 21, 2024
769f53a
Migrate block content schemas (#8843)
tbenr Nov 21, 2024
b0dad8a
migrate other electra schemas (#8845)
tbenr Nov 21, 2024
9c4a9c4
Add Fulu
zilm13 Nov 21, 2024
e24934d
Fix incorrect variable syntax Update fetch-blocks.sh (#8842)
famouswizard Nov 22, 2024
c106053
Fix EIP7594 activation bugs and delegating SpecConfig
zilm13 Nov 24, 2024
463d203
Merge branch 'master' into das-electra
zilm13 Nov 25, 2024
d5528fa
tiny blobs pruner fix (#8854)
tbenr Nov 27, 2024
557e083
Refactor BlockProcessor and EpochProcessor (#8856)
StefanBratanov Nov 27, 2024
b6fbe82
Fix Fulu bugs
zilm13 Nov 27, 2024
2494e4b
Track produced block when builder doesn't reveal the payload (#8855)
StefanBratanov Nov 28, 2024
9455985
[Engine-API] Exclude empty requests in requests list (#8859)
StefanBratanov Nov 28, 2024
5365458
Fix wrong activation for EIP7594
zilm13 Nov 28, 2024
49d8d48
Performance tracker (#8851)
mehdi-aouadi Nov 29, 2024
4fbdcb1
Merge branch 'master' into das-electra
zilm13 Nov 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 33 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,16 @@ executors:
architecture: "amd64"
platform: "linux/amd64"

machine_large_executor_amd64:
machine:
image: ubuntu-2204:2024.01.1 # https://circleci.com/developer/machine/image/ubuntu-2204
docker_layer_caching: true
resource_class: large
working_directory: ~/project
environment:
architecture: "amd64"
platform: "linux/amd64"

machine_executor_arm64:
machine:
image: ubuntu-2204:2024.01.1 # https://circleci.com/developer/machine/image/ubuntu-2204
Expand Down Expand Up @@ -237,13 +247,23 @@ jobs:
path: build/test-results

spotless:
executor: small_executor
executor: medium_executor
steps:
- prepare
- run:
name: Spotless
command: |
./gradlew --no-daemon --parallel checkMavenCoordinateCollisions spotlessCheck checkModuleDependencies
./gradlew --no-daemon --parallel spotlessCheck
- notify

moduleChecks:
executor: small_executor
steps:
- prepare
- run:
name: Module Checks
command: |
./gradlew --no-daemon --parallel checkMavenCoordinateCollisions checkModuleDependencies
- notify

dockerScan:
Expand Down Expand Up @@ -343,8 +363,8 @@ jobs:
path: build/test-results

acceptanceTests:
parallelism: 5
executor: machine_executor_amd64
parallelism: 4
executor: machine_large_executor_amd64
steps:
- install_java_21
- prepare
Expand Down Expand Up @@ -562,12 +582,17 @@ workflows:
filters:
tags: &filters-release-tags
only: /^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9]+)?/
- moduleChecks:
filters:
tags:
<<: *filters-release-tags
- spotless:
filters:
tags:
<<: *filters-release-tags
- windowsBuild:
requires:
- moduleChecks
- spotless
filters:
tags:
Expand Down Expand Up @@ -630,6 +655,7 @@ workflows:
- acceptanceTests
- referenceTests
- extractAPISpec
- moduleChecks
- spotless
- windowsBuild
context:
Expand All @@ -649,6 +675,7 @@ workflows:
- acceptanceTests
- referenceTests
- extractAPISpec
- moduleChecks
- spotless
- windowsBuild
context:
Expand All @@ -668,6 +695,7 @@ workflows:
- acceptanceTests
- referenceTests
- extractAPISpec
- moduleChecks
- spotless
- windowsBuild
context:
Expand Down Expand Up @@ -700,6 +728,7 @@ workflows:
- acceptanceTests
- referenceTests
- extractAPISpec
- moduleChecks
- spotless
- windowsBuild
nightly:
Expand Down
2 changes: 1 addition & 1 deletion .codespell/.codespellrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[codespell]
skip = .git,package-lock.json,LOG.old.*
skip = .git,package-lock.json,LOG.old.*,venv
count =
quiet-level = 3
ignore-words = ./.codespell/wordlist.txt
11 changes: 8 additions & 3 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,13 @@ jobs:
- name: Checkout the repository
uses: actions/checkout@v4

- name: Install prerequisites
run: pip install codespell
- name: Set up a Python venv and install prerequisites
run: |
python3 -m venv venv
source venv/bin/activate
pip install codespell

- name: Spell check
run: codespell --config=./.codespell/.codespellrc
run: |
source venv/bin/activate
codespell --config=./.codespell/.codespellrc
10 changes: 2 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,12 @@

## Current Releases

For information on changes in released versions of Teku, see
the [releases page](https://github.com/Consensys/teku/releases).

## Unreleased Changes

### Breaking Changes

### Additions and Improvements
- Increased the executor queue default maximum size to 40_000 (previously 20_000), and other queues to 10_000 (previously 5_000). If you have custom settings for these queues, check to ensure they're still required.
- Added `peers_direction_current` libp2p metric to track the number of peers by direction (inbound and outbound).
- Deposit tree snapshots will be loaded from database as a default unless custom snapshot has been provided.
- Added hidden option `--Xdeposit-contract-logs-syncing-enabled` to allow disabling the syncing of the deposit contract logs from the EL. This is useful when running a non-validating node. It is advisable to be used alongside with `--Xeth1-missing-deposits-event-logging-enabled=false` to avoid unnecessary logging of missing deposits.
- Updated the bootnodes for Chiado and Gnosis networks
- improve block publishing performance, especially relevant with locally produced blocks

### Bug Fixes
- Added a startup script for unix systems to ensure that when jemalloc is installed the script sets the LD_PRELOAD environment variable to the use the jemalloc library
3 changes: 2 additions & 1 deletion acceptance-tests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ dependencies {
testFixturesImplementation project(':infrastructure:metrics')
testFixturesImplementation testFixtures(project(':infrastructure:async'))
testFixturesImplementation project(':teku')
testFixturesImplementation project(':ethereum:json-types')

testFixturesImplementation project(':infrastructure:crypto')
testFixturesImplementation project(':infrastructure:time')
Expand All @@ -27,7 +28,7 @@ dependencies {
testFixturesImplementation 'io.libp2p:jvm-libp2p'
testFixturesImplementation 'org.apache.commons:commons-lang3'
testFixturesImplementation 'commons-io:commons-io'
testFixturesImplementation 'org.apache.tuweni:tuweni-bytes'
testFixturesImplementation 'io.tmio:tuweni-bytes'
testFixturesImplementation 'org.junit.jupiter:junit-jupiter-api'
testFixturesImplementation 'org.testcontainers:testcontainers'
testFixturesImplementation 'org.testcontainers:junit-jupiter'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
import java.util.Arrays;
import java.util.Locale;
import org.apache.tuweni.bytes.Bytes32;
import org.junit.jupiter.api.Test;
import tech.pegasys.teku.api.schema.eip7594.SignedBeaconBlockEip7594;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import tech.pegasys.teku.infrastructure.bytes.Bytes20;
import tech.pegasys.teku.infrastructure.unsigned.UInt64;
import tech.pegasys.teku.test.acceptance.dsl.AcceptanceTestBase;
import tech.pegasys.teku.test.acceptance.dsl.GenesisGenerator.InitialStateData;
Expand All @@ -34,8 +35,9 @@
public class BlockProposalAcceptanceTest extends AcceptanceTestBase {
private static final URL JWT_FILE = Resources.getResource("auth/ee-jwt-secret.hex");

@Test
void shouldHaveCorrectFeeRecipientAndGraffiti() throws Exception {
@ParameterizedTest(name = "ssz_encode={0}")
@ValueSource(booleans = {true, false})
void shouldHaveCorrectFeeRecipientAndGraffiti(final boolean useSszBlocks) throws Exception {
final String networkName = "swift";

final ValidatorKeystores validatorKeystores =
Expand All @@ -45,10 +47,7 @@ void shouldHaveCorrectFeeRecipientAndGraffiti() throws Exception {
createGenesisGenerator()
.network(networkName)
.withAltairEpoch(UInt64.ZERO)
.withBellatrixEpoch(UInt64.ONE)
.withCapellaEpoch(UInt64.valueOf(2))
.withDenebEpoch(UInt64.valueOf(3))
.withEip7594Epoch(UInt64.valueOf(4))
.withBellatrixEpoch(UInt64.ZERO)
.validatorKeys(validatorKeystores, validatorKeystores)
.generate();

Expand All @@ -61,14 +60,8 @@ void shouldHaveCorrectFeeRecipientAndGraffiti() throws Exception {
.withJwtSecretFile(JWT_FILE)
.withNetwork(networkName)
.withInitialState(genesis)
.withRealNetwork()
.withAltairEpoch(UInt64.ZERO)
.withBellatrixEpoch(UInt64.ONE)
.withCapellaEpoch(UInt64.valueOf(2))
.withDenebEpoch(UInt64.valueOf(3))
.withEip7594Epoch(UInt64.valueOf(4))
.withTotalTerminalDifficulty(0)
.withTrustedSetupFromClasspath("mainnet-trusted-setup.txt")
.withBellatrixEpoch(UInt64.ZERO)
.withValidatorProposerDefaultFeeRecipient(defaultFeeRecipient)
.build());
final TekuValidatorNode validatorClient =
Expand All @@ -78,22 +71,26 @@ void shouldHaveCorrectFeeRecipientAndGraffiti() throws Exception {
.withValidatorProposerDefaultFeeRecipient(defaultFeeRecipient)
.withInteropModeDisabled()
.withBeaconNodes(beaconNode)
.withBeaconNodeSszBlocksEnabled(useSszBlocks)
.withGraffiti(userGraffiti)
.withNetwork("auto")
.build());

beaconNode.start();
validatorClient.start();

beaconNode.waitForEpochAtOrAbove(4);
beaconNode.waitForBlockSatisfying(
block -> {
assertThat(block).isInstanceOf(SignedBeaconBlockEip7594.class);
final SignedBeaconBlockEip7594 eip7594Block = (SignedBeaconBlockEip7594) block;
assertThat(
eip7594Block.getMessage().getBody().executionPayload.feeRecipient.toHexString())
final Bytes20 feeRecipient =
block
.getMessage()
.getBody()
.getOptionalExecutionPayload()
.orElseThrow()
.getFeeRecipient();
assertThat(feeRecipient.toHexString().toLowerCase(Locale.ROOT))
.isEqualTo(defaultFeeRecipient.toLowerCase(Locale.ROOT));
final Bytes32 graffiti = eip7594Block.getMessage().getBody().graffiti;
final Bytes32 graffiti = block.getMessage().getBody().getGraffiti();
final String graffitiMessage =
new String(
Arrays.copyOfRange(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
/*
* Copyright Consensys Software Inc., 2022
*
* 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.test.acceptance;

import com.google.common.io.Resources;
import java.net.URL;
import java.util.Map;
import org.junit.jupiter.api.Test;
import tech.pegasys.teku.ethereum.execution.types.Eth1Address;
import tech.pegasys.teku.infrastructure.time.SystemTimeProvider;
import tech.pegasys.teku.infrastructure.unsigned.UInt64;
import tech.pegasys.teku.test.acceptance.dsl.AcceptanceTestBase;
import tech.pegasys.teku.test.acceptance.dsl.BesuDockerVersion;
import tech.pegasys.teku.test.acceptance.dsl.BesuNode;
import tech.pegasys.teku.test.acceptance.dsl.GenesisGenerator.InitialStateData;
import tech.pegasys.teku.test.acceptance.dsl.TekuBeaconNode;
import tech.pegasys.teku.test.acceptance.dsl.TekuNodeConfig;
import tech.pegasys.teku.test.acceptance.dsl.TekuNodeConfigBuilder;
import tech.pegasys.teku.test.acceptance.dsl.Web3SignerNode;
import tech.pegasys.teku.test.acceptance.dsl.tools.ValidatorKeysApi;
import tech.pegasys.teku.test.acceptance.dsl.tools.deposits.ValidatorKeystores;

public class CapellaRemoteSignerAcceptanceTest extends AcceptanceTestBase {

private static final String NETWORK_NAME = "swift";
public static final Eth1Address WITHDRAWAL_ADDRESS =
Eth1Address.fromHexString("0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
private static final URL JWT_FILE = Resources.getResource("auth/ee-jwt-secret.hex");

@Test
void capellaWithRemoteSigner() throws Exception {
final UInt64 currentTime = new SystemTimeProvider().getTimeInSeconds();
final int genesisTime =
currentTime.intValue() + 30; // genesis needs added time for nodes to startup

final Web3SignerNode web3SignerNode =
createWeb3SignerNode(
config ->
config
.withNetwork(NETWORK_NAME)
.withAltairEpoch(UInt64.ZERO)
.withBellatrixEpoch(UInt64.ZERO)
.withCapellaEpoch(UInt64.ZERO));

web3SignerNode.start();
final ValidatorKeysApi signerApi = web3SignerNode.getValidatorKeysApi();
final BesuNode besuNode = createBesuNode(genesisTime);
besuNode.start();

final ValidatorKeystores validatorKeys =
createTekuDepositSender(NETWORK_NAME).generateValidatorKeys(4, WITHDRAWAL_ADDRESS);

signerApi.addLocalValidatorsAndExpect(validatorKeys, "imported");
signerApi.assertLocalValidatorListing(validatorKeys.getPublicKeys());

final InitialStateData initialStateData =
createGenesisGenerator()
.network(NETWORK_NAME)
.withGenesisTime(genesisTime)
.genesisDelaySeconds(0)
.withAltairEpoch(UInt64.ZERO)
.withBellatrixEpoch(UInt64.ZERO)
.withCapellaEpoch(UInt64.ZERO)
.withTotalTerminalDifficulty(0)
.genesisExecutionPayloadHeaderSource(besuNode::createGenesisExecutionPayload)
.validatorKeys(validatorKeys)
.generate();

final TekuBeaconNode tekuNode =
createTekuBeaconNode(
beaconNode(
genesisTime, besuNode, initialStateData, web3SignerNode.getValidatorRestApiUrl()));

tekuNode.start();

tekuNode.waitForNextEpoch();
tekuNode.waitForNewBlock();
tekuNode.waitForFullSyncCommitteeAggregate();
}

private BesuNode createBesuNode(final int genesisTime) {
final int shanghai =
genesisTime + 2; // 4 slots, 2 seconds each (swift) - activate Prague on first slot
final Map<String, String> genesisOverrides = Map.of("shanghaiTime", String.valueOf(shanghai));

return createBesuNode(
BesuDockerVersion.STABLE,
config ->
config
.withMergeSupport()
.withGenesisFile("besu/mergedGenesis.json")
.withP2pEnabled(true)
.withJwtTokenAuthorization(JWT_FILE),
genesisOverrides);
}

private static TekuNodeConfig beaconNode(
final int genesisTime,
final BesuNode besuNode,
final InitialStateData initialStateData,
final String signerUrl)
throws Exception {
return TekuNodeConfigBuilder.createBeaconNode()
.withInitialState(initialStateData)
.withInteropModeDisabled()
.withNetwork(NETWORK_NAME)
.withAltairEpoch(UInt64.ZERO)
.withBellatrixEpoch(UInt64.ZERO)
.withCapellaEpoch(UInt64.ZERO)
.withTotalTerminalDifficulty(0)
.withGenesisTime(genesisTime)
.withExecutionEngine(besuNode)
.withJwtSecretFile(JWT_FILE)
.withExternalSignerUrl(signerUrl)
.withExternalSignerPublicKeys("external-signer")
.withValidatorProposerDefaultFeeRecipient("0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73")
.withStartupTargetPeerCount(0)
.withRealNetwork()
.build();
}
}
Loading
Loading