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 services #73

Draft
wants to merge 24 commits into
base: unstable
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
85b2406
create signature collector and make processor stateless
dknopik Dec 18, 2024
35c4132
create validator store and basic wire up everything
dknopik Dec 13, 2024
9bd0d6a
add hack to connect to kurtosis BN
dknopik Dec 13, 2024
748d22d
use `signature_collector` for the randao reveal
dknopik Dec 17, 2024
7431490
more progress on validator store
dknopik Dec 18, 2024
6bc9471
move `qbft` crate to common directory
dknopik Dec 19, 2024
7724b0b
Merge branch 'unstable' into duty-service
jking-aus Dec 19, 2024
fd5e5c8
update to reflect lighthouse changes
dknopik Dec 19, 2024
51b74f2
Align tracing related changes with lighthouse
ThreeHrSleep Jan 2, 2025
6c586a6
update deps
dknopik Jan 2, 2025
8e76342
implement initial qbft manager
dknopik Dec 19, 2024
09136e2
cargo fmt
dknopik Jan 2, 2025
786f3fc
clean up
dknopik Jan 3, 2025
3d62944
Merge branch 'unstable' into split-qbft
dknopik Jan 3, 2025
308740a
reimplement test and fix issues
dknopik Jan 3, 2025
618578d
Merge branch 'split-qbft' into duty-service
dknopik Jan 3, 2025
3a6ccb9
implement attestation and block signing
dknopik Jan 3, 2025
1a57f1f
remove decided qbft instances
dknopik Jan 6, 2025
e257598
cargo fmt...
dknopik Jan 6, 2025
114c8b5
clean up qbft and fix leader selection
dknopik Jan 6, 2025
49d7235
Merge branch 'split-qbft' into duty-service
dknopik Jan 6, 2025
2cccae3
notes on sync issues and small corrections
dknopik Jan 6, 2025
c449949
implement sync features in validator store
dknopik Jan 7, 2025
7ce3eb6
blocks can be decided blinded and unblinded independent from initial …
dknopik Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,699 changes: 539 additions & 2,160 deletions Cargo.lock

Large diffs are not rendered by default.

60 changes: 38 additions & 22 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,61 +3,77 @@
members = [
"anchor",
"anchor/client",
"anchor/common/qbft",
"anchor/common/ssv_types",
"anchor/common/version",
"anchor/http_api",
"anchor/http_metrics",
"anchor/network",
"anchor/processor",
"anchor/qbft",
"anchor/qbft_manager",
"anchor/signature_collector",
"anchor/validator_store",
]
resolver = "2"

[workspace.package]
edition = "2021"

[workspace.dependencies]
client = { path = "anchor/client" }
qbft = { path = "anchor/qbft" }
http_api = { path = "anchor/http_api" }
http_metrics = { path = "anchor/http_metrics" }
network = { path = "anchor/network" }
version = { path = "anchor/common/version" }
processor = { path = "anchor/processor" }
ssv_types = { path = "anchor/common/ssv_types" }
lighthouse_network = { git = "https://github.com/sigp/lighthouse", branch = "unstable" }
task_executor = { git = "https://github.com/sigp/lighthouse", branch = "unstable", default-features = false, features = [ "tracing", ] }
metrics = { git = "https://github.com/agemanning/lighthouse", branch = "modularize-vc" }
validator_metrics = { git = "https://github.com/agemanning/lighthouse", branch = "modularize-vc" }
sensitive_url = { git = "https://github.com/agemanning/lighthouse", branch = "modularize-vc" }
slot_clock = { git = "https://github.com/agemanning/lighthouse", branch = "modularize-vc" }
unused_port = { git = "https://github.com/sigp/lighthouse", branch = "unstable" }
types = { git = "https://github.com/sigp/lighthouse", branch = "unstable" }
derive_more = { version = "1.0.0", features = ["full"] }
anchor_validator_store = { path = "anchor/validator_store" }
async-channel = "1.9"
axum = "0.7.7"
base64 = "0.22.1"
beacon_node_fallback = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
clap = { version = "4.5.15", features = ["derive", "wrap_help"] }
discv5 = "0.9.0"
client = { path = "anchor/client" }
dashmap = "6.1.0"
derive_more = { version = "1.0.0", features = ["full"] }
dirs = "5.0.1"
discv5 = "0.9.0"
either = "1.13.0"
eth2 = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
eth2_config = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
futures = "0.3.30"
tower-http = { version = "0.6", features = ["cors"] }
http_api = { path = "anchor/http_api" }
http_metrics = { path = "anchor/http_metrics" }
hyper = "1.4"
lighthouse_network = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
metrics = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
network = { path = "anchor/network" }
num_cpus = "1"
openssl = "0.10.68"
parking_lot = "0.12"
processor = { path = "anchor/processor" }
qbft = { path = "anchor/common/qbft" }
qbft_manager = { path = "anchor/qbft_manager" }
safe_arith = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
sensitive_url = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
serde = { version = "1.0.208", features = ["derive"] }
signature_collector = { path = "anchor/signature_collector" }
slashing_protection = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
slot_clock = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
ssv_types = { path = "anchor/common/ssv_types" }
strum = { version = "0.24", features = ["derive"] }
task_executor = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store", default-features = false, features = [ "tracing", ] }
tokio = { version = "1.39.2", features = [
"rt",
"rt-multi-thread",
"time",
"signal",
"macros",
] }
tower-http = { version = "0.6", features = ["cors"] }
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["fmt", "env-filter"] }
base64 = "0.22.1"
openssl = "0.10.68"
tree_hash = "0.8"
tree_hash_derive = "0.8"
types = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
unused_port = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
validator_metrics = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
validator_services = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
validator_store = { git = "https://github.com/dknopik/lighthouse", branch = "modularize-validator-store" }
version = { path = "anchor/common/version" }

[profile.maxperf]
inherits = "release"
Expand Down
1 change: 1 addition & 0 deletions anchor/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ task_executor = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
types = { workspace = true }

[dev-dependencies]
regex = "1.10.6"
12 changes: 12 additions & 0 deletions anchor/client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@ name = "client"
path = "src/lib.rs"

[dependencies]
anchor_validator_store = { workspace = true }
beacon_node_fallback = { workspace = true }
clap = { workspace = true }
dirs = { workspace = true }
eth2 = { workspace = true }
eth2_config = { workspace = true }
ethereum_hashing = "0.7.0"
fdlimit = "0.3"
http_api = { workspace = true }
Expand All @@ -19,11 +23,19 @@ hyper = { workspace = true }
network = { workspace = true }
parking_lot = { workspace = true }
processor = { workspace = true }
qbft_manager = { workspace = true }
sensitive_url = { workspace = true }
serde = { workspace = true }
signature_collector = { workspace = true }
slashing_protection = { workspace = true }
slot_clock = { workspace = true }
ssv_types = { workspace = true }
strum = { workspace = true }
task_executor = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
types = { workspace = true }
unused_port = { workspace = true }
validator_metrics = { workspace = true }
validator_services = { workspace = true }
version = { workspace = true }
6 changes: 6 additions & 0 deletions anchor/client/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,14 @@ pub struct Config {
///
/// Should be similar to `["http://localhost:8080"]`
pub beacon_nodes: Vec<SensitiveUrl>,
/// An optional beacon node used for block proposals only.
pub proposer_nodes: Vec<SensitiveUrl>,
/// The http endpoints of the execution node APIs.
pub execution_nodes: Vec<SensitiveUrl>,
/// beacon node is not synced at startup.
pub allow_unsynced_beacon_node: bool,
/// If true, use longer timeouts for requests made to the beacon node.
pub use_long_timeouts: bool,
/// Configuration for the HTTP REST API.
pub http_api: http_api::Config,
/// Configuration for the network stack.
Expand Down Expand Up @@ -69,8 +73,10 @@ impl Default for Config {
data_dir,
secrets_dir,
beacon_nodes,
proposer_nodes: vec![],
execution_nodes,
allow_unsynced_beacon_node: false,
use_long_timeouts: false,
http_api: <_>::default(),
http_metrics: <_>::default(),
network: <_>::default(),
Expand Down
Loading