Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
1f6850f
Rust 1.84 lints (#6781)
pawanjay176 Jan 10, 2025
a244aa3
Add libssl install to udeps task (#6777)
eserilev Jan 10, 2025
722573f
Use oldest_block_slot to break off pruning payloads (#6745)
dapplion Jan 10, 2025
ecdf2d8
Add Fulu boilerplate (#6695)
macladson Jan 10, 2025
0572729
Make max_blobs_per_block a config parameter (#6329)
pawanjay176 Jan 10, 2025
348fbdb
Add missing crates to cargo workspace (#6774)
macladson Jan 10, 2025
c9747fb
Refactor feature testing for spec tests (#6737)
jimmygchen Jan 13, 2025
06e4d22
Electra spec changes for `v1.5.0-beta.0` (#6731)
michaelsproul Jan 13, 2025
93f9c2c
Execution requests with prefix (#6801)
pawanjay176 Jan 14, 2025
587c3e2
Implement changes for EIP 7691 (#6803)
pawanjay176 Jan 14, 2025
4fd8e52
Use existing peer count metrics loop to check for open_nat toggle (…
jking-aus Jan 15, 2025
dd7591f
Fix data columns not persisting for PeerDAS due to a `getBlobs` race …
jimmygchen Jan 15, 2025
e98209d
Implement PeerDAS subnet decoupling (aka custody groups) (#6736)
jimmygchen Jan 15, 2025
b1a19a8
Remove ineffectual block RPC limits post merge (#6798)
dapplion Jan 15, 2025
669932a
Misc. dependency cleanup (#6810)
dknopik Jan 16, 2025
06329ec
`SingleAttestation` implementation (#6488)
eserilev Jan 16, 2025
6ce33c4
Do not send column requests if there is no blob for the block. (#6814)
jimmygchen Jan 20, 2025
7a0388e
Fix custodial peer assumption on lookup custody requests (#6815)
dapplion Jan 20, 2025
33c1648
Add EIP-7636 support (#6793)
SirSpudlington Jan 21, 2025
4e8f826
expose `point` and `from_point` on `GenericSignature`
dknopik Jan 13, 2025
dfd7ab0
add `point` and `from_point` to `GenericSecretKey`
dknopik Jan 14, 2025
5dfda40
add `serialize_uncompressed` to `GenericSignature`
dknopik Jan 15, 2025
f551579
add `deserialize_uncompressed` to `GenericSignature`
dknopik Jan 15, 2025
87515cc
actually add `deserialize_uncompressed` to `GenericSignature`
dknopik Jan 15, 2025
a714c14
cargo fmt
dknopik Jan 21, 2025
fb95134
Merge branch 'expose-blst-internals' into into-anchor
dknopik Jan 21, 2025
3f49da0
fix merge
dknopik Jan 21, 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
1 change: 1 addition & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[env]
# Set the number of arenas to 16 when using jemalloc.
JEMALLOC_SYS_WITH_MALLOC_CONF = "abort_conf:true,narenas:16"

4 changes: 4 additions & 0 deletions .github/workflows/test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,10 @@ jobs:
cache: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Fetch libssl1.1
run: wget https://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
- name: Install libssl1.1
run: sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
- name: Create Cargo config dir
run: mkdir -p .cargo
- name: Install custom Cargo config
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 6 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ members = [
"beacon_node/client",
"beacon_node/eth1",
"beacon_node/execution_layer",
"beacon_node/genesis",
"beacon_node/http_api",
"beacon_node/http_metrics",
"beacon_node/lighthouse_network",
"beacon_node/lighthouse_network/gossipsub",
"beacon_node/network",
"beacon_node/operation_pool",
"beacon_node/store",
"beacon_node/timer",

Expand All @@ -30,6 +32,7 @@ members = [
"common/eth2_interop_keypairs",
"common/eth2_network_config",
"common/eth2_wallet_manager",
"common/filesystem",
"common/health_metrics",
"common/lighthouse_version",
"common/lockfile",
Expand All @@ -49,14 +52,16 @@ members = [
"common/unused_port",
"common/validator_dir",
"common/warp_utils",

"consensus/fixed_bytes",
"consensus/fork_choice",

"consensus/int_to_bytes",
"consensus/merkle_proof",
"consensus/proto_array",
"consensus/safe_arith",
"consensus/state_processing",
"consensus/swap_or_not_shuffle",
"consensus/types",

"crypto/bls",
"crypto/eth2_key_derivation",
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ PROFILE ?= release

# List of all hard forks. This list is used to set env variables for several tests so that
# they run for different forks.
FORKS=phase0 altair bellatrix capella deneb electra
FORKS=phase0 altair bellatrix capella deneb electra fulu

# Extra flags for Cargo
CARGO_INSTALL_EXTRA_FLAGS?=
Expand Down
6 changes: 4 additions & 2 deletions account_manager/src/validator/create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,10 @@ pub fn cli_run<E: EthSpec>(
));
}

create_dir_all(&validator_dir).map_err(|_| "Could not create validator dir")?;
create_dir_all(&secrets_dir).map_err(|_| "Could not create secrets dir")?;
create_dir_all(&validator_dir)
.map_err(|e| format!("Could not create validator dir at {validator_dir:?}: {e:?}"))?;
create_dir_all(&secrets_dir)
.map_err(|e| format!("Could not create secrets dir at {secrets_dir:?}: {e:?}"))?;

eprintln!("secrets-dir path {:?}", secrets_dir);
eprintln!("wallets-dir path {:?}", wallet_base_dir);
Expand Down
6 changes: 4 additions & 2 deletions account_manager/src/validator/recover.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,10 @@ pub fn cli_run(matches: &ArgMatches, validator_dir: PathBuf) -> Result<(), Strin

eprintln!("secrets-dir path: {:?}", secrets_dir);

create_dir_all(&validator_dir).map_err(|_| "Could not create validator dir")?;
create_dir_all(&secrets_dir).map_err(|_| "Could not create secrets dir")?;
create_dir_all(&validator_dir)
.map_err(|e| format!("Could not create validator dir at {validator_dir:?}: {e:?}"))?;
create_dir_all(&secrets_dir)
.map_err(|e| format!("Could not create secrets dir at {secrets_dir:?}: {e:?}"))?;

eprintln!();
eprintln!("WARNING: KEY RECOVERY CAN LEAD TO DUPLICATING VALIDATORS KEYS, WHICH CAN LEAD TO SLASHING.");
Expand Down
11 changes: 4 additions & 7 deletions beacon_node/beacon_chain/src/attestation_rewards.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,10 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
.get_state(&state_root, Some(state_slot))?
.ok_or(BeaconChainError::MissingBeaconState(state_root))?;

match state {
BeaconState::Base(_) => self.compute_attestation_rewards_base(state, validators),
BeaconState::Altair(_)
| BeaconState::Bellatrix(_)
| BeaconState::Capella(_)
| BeaconState::Deneb(_)
| BeaconState::Electra(_) => self.compute_attestation_rewards_altair(state, validators),
if state.fork_name_unchecked().altair_enabled() {
self.compute_attestation_rewards_altair(state, validators)
} else {
self.compute_attestation_rewards_base(state, validators)
}
}

Expand Down
13 changes: 12 additions & 1 deletion beacon_node/beacon_chain/src/attestation_verification.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ use tree_hash::TreeHash;
use types::{
Attestation, AttestationRef, BeaconCommittee, BeaconStateError::NoCommitteeFound, ChainSpec,
CommitteeIndex, Epoch, EthSpec, Hash256, IndexedAttestation, SelectionProof,
SignedAggregateAndProof, Slot, SubnetId,
SignedAggregateAndProof, SingleAttestation, Slot, SubnetId,
};

pub use batch::{batch_verify_aggregated_attestations, batch_verify_unaggregated_attestations};
Expand Down Expand Up @@ -317,12 +317,22 @@ pub struct VerifiedUnaggregatedAttestation<'a, T: BeaconChainTypes> {
attestation: AttestationRef<'a, T::EthSpec>,
indexed_attestation: IndexedAttestation<T::EthSpec>,
subnet_id: SubnetId,
validator_index: usize,
}

impl<T: BeaconChainTypes> VerifiedUnaggregatedAttestation<'_, T> {
pub fn into_indexed_attestation(self) -> IndexedAttestation<T::EthSpec> {
self.indexed_attestation
}

pub fn single_attestation(&self) -> Option<SingleAttestation> {
Some(SingleAttestation {
committee_index: self.attestation.committee_index()? as usize,
attester_index: self.validator_index,
data: self.attestation.data().clone(),
signature: self.attestation.signature().clone(),
})
}
}

/// Custom `Clone` implementation is to avoid the restrictive trait bounds applied by the usual derive
Expand Down Expand Up @@ -1035,6 +1045,7 @@ impl<'a, T: BeaconChainTypes> VerifiedUnaggregatedAttestation<'a, T> {
attestation,
indexed_attestation,
subnet_id,
validator_index: validator_index as usize,
})
}

Expand Down
9 changes: 6 additions & 3 deletions beacon_node/beacon_chain/src/beacon_block_streamer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ use types::{
};
use types::{
ExecutionPayload, ExecutionPayloadBellatrix, ExecutionPayloadCapella, ExecutionPayloadElectra,
ExecutionPayloadHeader,
ExecutionPayloadFulu, ExecutionPayloadHeader,
};

#[derive(PartialEq)]
Expand Down Expand Up @@ -99,6 +99,7 @@ fn reconstruct_default_header_block<E: EthSpec>(
ForkName::Capella => ExecutionPayloadCapella::default().into(),
ForkName::Deneb => ExecutionPayloadDeneb::default().into(),
ForkName::Electra => ExecutionPayloadElectra::default().into(),
ForkName::Fulu => ExecutionPayloadFulu::default().into(),
ForkName::Base | ForkName::Altair => {
return Err(Error::PayloadReconstruction(format!(
"Block with fork variant {} has execution payload",
Expand Down Expand Up @@ -742,13 +743,14 @@ mod tests {
}

#[tokio::test]
async fn check_all_blocks_from_altair_to_electra() {
async fn check_all_blocks_from_altair_to_fulu() {
let slots_per_epoch = MinimalEthSpec::slots_per_epoch() as usize;
let num_epochs = 10;
let num_epochs = 12;
let bellatrix_fork_epoch = 2usize;
let capella_fork_epoch = 4usize;
let deneb_fork_epoch = 6usize;
let electra_fork_epoch = 8usize;
let fulu_fork_epoch = 10usize;
let num_blocks_produced = num_epochs * slots_per_epoch;

let mut spec = test_spec::<MinimalEthSpec>();
Expand All @@ -757,6 +759,7 @@ mod tests {
spec.capella_fork_epoch = Some(Epoch::new(capella_fork_epoch as u64));
spec.deneb_fork_epoch = Some(Epoch::new(deneb_fork_epoch as u64));
spec.electra_fork_epoch = Some(Epoch::new(electra_fork_epoch as u64));
spec.fulu_fork_epoch = Some(Epoch::new(fulu_fork_epoch as u64));
let spec = Arc::new(spec);

let harness = get_harness(VALIDATOR_COUNT, spec.clone());
Expand Down
Loading
Loading