mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-10 12:11:59 +00:00
* Remove use of ethers_core::RlpStream
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* Remove old code
* Simplify keccak call
* Remove unused package
* Merge branch 'unstable' of https://github.com/ethDreamer/lighthouse into remove_use_of_ethers_core
* Merge branch 'unstable' into remove_use_of_ethers_core
* Run clippy
* Merge branch 'remove_use_of_ethers_core' of https://github.com/dospore/lighthouse into remove_use_of_ethers_core
* Check all cargo fmt
* migrate to alloy primitives init
* fix deps
* integrate alloy-primitives
* resolve dep issues
* more changes based on dep changes
* add TODOs
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* Revert lock
* Add BeaconBlocksByRange v3
* continue migration
* Revert "Add BeaconBlocksByRange v3"
This reverts commit e3ce7fc5ea.
* impl hash256 extended trait
* revert some uneeded diffs
* merge conflict resolved
* fix subnet id rshift calc
* rename to FixedBytesExtended
* debugging
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fix failed test
* fixing more tests
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* introduce a shim to convert between the two u256 types
* move alloy to wrokspace
* align alloy versions
* update
* update web3signer test certs
* refactor
* resolve failing tests
* linting
* fix graffiti string test
* fmt
* fix ef test
* resolve merge conflicts
* remove udep and revert cert
* cargo patch
* cyclic dep
* fix build error
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* resolve conflicts, update deps
* merge unstable
* fmt
* fix deps
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* resolve merge conflicts
* resolve conflicts, make necessary changes
* Remove patch
* fmt
* remove file
* merge conflicts
* sneaking in a smol change
* bump versions
* Merge remote-tracking branch 'origin/unstable' into migrate-to-alloy-primitives
* Updates for peerDAS
* Update ethereum_hashing to prevent dupe
* updated alloy-consensus, removed TODOs
* cargo update
* endianess fix
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fmt
* fix merge
* fix test
* fixed_bytes crate
* minor fixes
* convert u256 to i64
* panic free mixin to_low_u64_le
* from_str_radix
* computbe_subnet api and ensuring we use big-endian
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fix test
* Simplify subnet_id test
* Simplify some more tests
* Add tests to fixed_bytes crate
* Merge branch 'unstable' into migrate-to-alloy-primitives
61 lines
2.4 KiB
Rust
61 lines
2.4 KiB
Rust
use clap::ArgMatches;
|
|
use lighthouse_network::{
|
|
discovery::{build_enr, CombinedKey, CombinedKeyExt, ENR_FILENAME},
|
|
libp2p::identity::secp256k1,
|
|
NetworkConfig, NETWORK_KEY_FILENAME,
|
|
};
|
|
use std::io::Write;
|
|
use std::path::PathBuf;
|
|
use std::{fs, net::Ipv4Addr};
|
|
use std::{fs::File, num::NonZeroU16};
|
|
use types::{ChainSpec, EnrForkId, Epoch, EthSpec, FixedBytesExtended, Hash256};
|
|
|
|
pub fn run<E: EthSpec>(matches: &ArgMatches, spec: &ChainSpec) -> Result<(), String> {
|
|
let ip: Ipv4Addr = clap_utils::parse_required(matches, "ip")?;
|
|
let udp_port: NonZeroU16 = clap_utils::parse_required(matches, "udp-port")?;
|
|
let tcp_port: NonZeroU16 = clap_utils::parse_required(matches, "tcp-port")?;
|
|
let output_dir: PathBuf = clap_utils::parse_required(matches, "output-dir")?;
|
|
let genesis_fork_version: [u8; 4] =
|
|
clap_utils::parse_ssz_required(matches, "genesis-fork-version")?;
|
|
|
|
if output_dir.exists() {
|
|
return Err(format!(
|
|
"{:?} already exists, will not override",
|
|
output_dir
|
|
));
|
|
}
|
|
|
|
let mut config = NetworkConfig::default();
|
|
config.enr_address = (Some(ip), None);
|
|
config.enr_udp4_port = Some(udp_port);
|
|
config.enr_tcp6_port = Some(tcp_port);
|
|
|
|
let secp256k1_keypair = secp256k1::Keypair::generate();
|
|
let enr_key = CombinedKey::from_secp256k1(&secp256k1_keypair);
|
|
let enr_fork_id = EnrForkId {
|
|
fork_digest: ChainSpec::compute_fork_digest(genesis_fork_version, Hash256::zero()),
|
|
next_fork_version: genesis_fork_version,
|
|
next_fork_epoch: Epoch::max_value(), // FAR_FUTURE_EPOCH
|
|
};
|
|
let enr = build_enr::<E>(&enr_key, &config, &enr_fork_id, spec)
|
|
.map_err(|e| format!("Unable to create ENR: {:?}", e))?;
|
|
|
|
fs::create_dir_all(&output_dir).map_err(|e| format!("Unable to create output-dir: {:?}", e))?;
|
|
|
|
let mut enr_file = File::create(output_dir.join(ENR_FILENAME))
|
|
.map_err(|e| format!("Unable to create {}: {:?}", ENR_FILENAME, e))?;
|
|
enr_file
|
|
.write_all(enr.to_base64().as_bytes())
|
|
.map_err(|e| format!("Unable to write ENR to {}: {:?}", ENR_FILENAME, e))?;
|
|
|
|
let mut key_file = File::create(output_dir.join(NETWORK_KEY_FILENAME))
|
|
.map_err(|e| format!("Unable to create {}: {:?}", NETWORK_KEY_FILENAME, e))?;
|
|
|
|
let secret_bytes = secp256k1_keypair.secret().to_bytes();
|
|
key_file
|
|
.write_all(&secret_bytes)
|
|
.map_err(|e| format!("Unable to write key to {}: {:?}", NETWORK_KEY_FILENAME, e))?;
|
|
|
|
Ok(())
|
|
}
|