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

Duty Builder Proposer - Builder Spec Implementation #809

Closed
15 tasks done
ciaranmcveigh5 opened this issue Jul 19, 2022 · 1 comment
Closed
15 tasks done

Duty Builder Proposer - Builder Spec Implementation #809

ciaranmcveigh5 opened this issue Jul 19, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@ciaranmcveigh5
Copy link
Contributor

ciaranmcveigh5 commented Jul 19, 2022

Problem to be solved

Charon clusters should be compatible with the builder-specs to enable builder/proposer separation. One of the requirements for validators is the implementation of SignedBlindedBeaconBlock https://github.com/ethereum/builder-specs/blob/main/specs/builder.md#signedblindedbeaconblock.

Proposed solution

A new Duty called DutyBuilderProposer, will closely follow the implementation seen in DutyProposer.

PRs

  • Addition of the Duty in core/types.go
  • Unsigned data implementation in core/unisgneddata.go
  • Signed data implementation in core/signeddata.go
  • Validator api implementation in core/validatorapi/validatorapi.go
  • Scheduler implementation in core/scheduler/scheduler.go
  • Fetcher implementation in core/fetcher/fetcher.go
  • Dutydb implementation in core/dutydb/memory.go
  • app & cmd implementation of builder flag (not wired up)
  • Broadcast implementation in core/bcast/bcast.go
  • Protobuff implementation in core/proto.go
  • Interfaces implementation in core/interfaces.go
  • eth2types validatorapi in core/validatorapi/eth2types.go
  • router validatorapi in core/validatorapi/router.go
  • blindedbeaconblockproposalprovider in testutil/validatormock/validator mock.go
  • Documentation

Out of Scope

n/a

@ciaranmcveigh5 ciaranmcveigh5 added the enhancement New feature or request label Jul 19, 2022
@ciaranmcveigh5 ciaranmcveigh5 changed the title Duty Builder Proposal - Builder Spec Implementation Duty Builder Proposer - Builder Spec Implementation Jul 19, 2022
obol-bulldozer bot pushed a commit that referenced this issue Jul 19, 2022
- Addition of the DutyBuilderProposer in types.go 
- Updated related tests in types_test.go

Unsure of team preference on feature flag.

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 19, 2022
- unsigned data implementation of blinded blocker proposer
- implementation of clone test
- Addition to random.go to generate random blinded block body and blinded block (required for clone test)

This touches core & testutil not sure on convention for PR header when this is the case - have gone with core for now

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 20, 2022
- signed data implementation of blinded blocker proposer
- implementation of sigagg test

An issue with pre commit check specifically golangci-lint "dupl", appeared to be giving a false positive

`core/sigagg/sigagg_test.go:346: 346-400 lines are duplicate of `core/sigagg/sigagg_test.go:261-315` (dupl)`

This issue golangci/golangci-lint#1372 discussed updating the dupl threshold in the config which I've done. Not sure if I'm missing something and this is a legitimate dupl or if this has happened to you guys before and you have a better solution. 

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 20, 2022
- validator api implementation of blinded blocker proposer
- implementation of relevant tests

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 20, 2022
- fetcher implementation for builder api
- relevant tests and changes to mocks

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 21, 2022
- dutydb memory implementation for builder proposer
- relevant tests

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 21, 2022
-  broadcast implementation for builder proposer
- relevant test added

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 21, 2022
- scheduler implementation for builder proposer

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 21, 2022
- skeleton of the builder-api flag for cmd and app (nothing wired up or any functionality)

category: feature 
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 22, 2022
- proto implementation for builder proposer
- relevant tests

category: feature
ticket: #809
corverroos pushed a commit that referenced this issue Jul 25, 2022
- adding the blinded block functions to interfaces

category: feature
ticket: #809
corverroos pushed a commit that referenced this issue Jul 25, 2022
- Additional changes for validator api
- Router changes for blinded routes

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 26, 2022
- Architecture document update

category: feature
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Jul 26, 2022
Add unit test for builder proposer and fix few integration issues.

category: test 
ticket: #809
obol-bulldozer bot pushed a commit that referenced this issue Aug 11, 2022
Adds a builder proposer simnet test using teku VC.

category: test 
ticket: #809
@corverroos
Copy link
Contributor

Closing to include in v0.10.0 release notes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants