Resolves#6811
Rename `GOSSIP_MAX_SIZE` to `MAX_PAYLOAD_SIZE` and remove `MAX_CHUNK_SIZE` in accordance with the spec.
The spec also "clarifies" the message size limits at different levels. The rpc limits are equivalent to what we had before imo.
The gossip limits have additional checks.
I have gotten rid of the `is_bellatrix_enabled` checks that used a lower limit (1mb) pre-merge. Since all networks we run start from the merge, I don't think this will break any setups.
Having merged the drop-headtracker PR we now have a DB schema change in `unstable` compared to `release-v7.0.0`:
- https://github.com/sigp/lighthouse/pull/6744
There is a DB downgrade available, however this needs to be applied manually and it's usually a bit of a hassle.
This PR bumps the version on `unstable` to `v7.1.0-beta.0` _without_ actually cutting a `v7.1.0-beta.0` release, so that we can tell at a glance which schema version a node is using.
#7153#7146#7147#7148 -> Thanks to @ackintosh
This PR does the following:
1. Disable logging to file when using either `--logfile-max-number 0` or `--logfile-max-size 0`. Note that disabling the log file in this way will also disable `discv5` and `libp2p` logging.
1. `discv5` and `libp2p` logging will be disabled by default unless running `beacon_node` or `boot_node`. This also should fix the VC panic we were seeing.
1. Removes log rotation and compression from `libp2p` and `discv5` logs. It is now limited to 1 file and will rotate based on the value of the `--logfile-max-size` flag. We could potentially add flags specifically to control the size/number of these, however I felt a single log file was sufficient. Perhaps @AgeManning has opinions about this?
1. Removes all dependency logging and references to `dep_log`.
1. Introduces workspace filtering to file and stdout. This explicitly allows logs from members of the Lighthouse workspace, disallowing all others. It uses a proc macro which pulls the member list from cargo metadata at compile time. This might be over-engineered but my hope is that this list will not require maintenance.
1. Unifies file and stdout JSON format. With slog, the formats were slightly different. @threehrsleep worked to maintain that format difference, to ensure there was no breaking changes. If these format differences are actually problematic we can restore it, however I felt the added complexity wasn't worth it.
1. General code improvements and cleanup.
N/A
Adds endpoints to add and remove trusted peers from the http api. The added peers are trusted peers so they won't be disconnected for bad scores. We try to maintain a connection to the peer in case they disconnect from us by trying to dial it every heartbeat.
- #6452 (partially)
Remove dependencies on `store` and `lighthouse_network` from `eth2`. This was achieved as follows:
- depend on `enr` and `multiaddr` directly instead of using `lighthouse_network`'s reexports.
- make `lighthouse_network` responsible for converting between API and internal types.
- in two cases, remove complex internal types and use the generic `serde_json::Value` instead - this is not ideal, but should be fine for now, as this affects two internal non-spec endpoints which are meant for debugging, unstable, and subject to change without notice anyway. Inspired by #6679. The alternative is to move all relevant types to `eth2` or `types` instead - what do you think?
NA
Bumps the `ethereum_ssz` version, along with other crates that share the dep.
Primarily, this give us bitfields which can store 128 bytes on the stack before allocating, rather than 32 bytes (https://github.com/sigp/ethereum_ssz/pull/38). The validator count has increase massively since we set it at 32 bytes, so aggregation bitfields (et al) now require a heap allocation. This new value of 128 should get us to ~2m active validators.
N/A
2 changes:
1. Replace Option::map_or(true, ...) with is_none_or(...)
2. Remove unnecessary `Into::into` blocks where the type conversion is apparent from the types
Addresses #6706
This PR activates PeerDAS at the Fulu fork epoch instead of `EIP_7594_FORK_EPOCH`. This means we no longer support testing PeerDAS with Deneb / Electrs, as it's now part of a hard fork.
#5244
Pass `JEMALLOC_SYS_WITH_LG_PAGE=16` env to aarch64 cross-compilation to support systems with up to 64-KiB page sizes. This is backwards-compatible for the current (most usual) 4-KiB systems.
* Add eip7636 support
* Add `version()` to the `lighthouse_version` crate and make the `enr.rs` file use it.
* Hardcode version, Add `client_name()`, remove unneeded flag.
* Make it use the new function.
* Make cargo fmt zip it
* First pass
* Add restrictions to RuntimeVariableList api
* Use empty_uninitialized and fix warnings
* Fix some todos
* Merge branch 'unstable' into max-blobs-preset
* Fix take impl on RuntimeFixedList
* cleanup
* Fix test compilations
* Fix some more tests
* Fix test from unstable
* Merge branch 'unstable' into max-blobs-preset
* Merge remote-tracking branch 'origin/unstable' into max-blobs-preset
* Remove footgun function
* Minor simplifications
* Move from preset to config
* Fix typo
* Revert "Remove footgun function"
This reverts commit de01f923c7.
* Try fixing tests
* Thread through ChainSpec
* Fix release tests
* Move RuntimeFixedVector into module and rename
* Add test
* Remove empty RuntimeVarList awefullness
* Fix tests
* Simplify BlobSidecarListFromRoot
* Merge remote-tracking branch 'origin/unstable' into max-blobs-preset
* Bump quota to account for new target (6)
* Remove clone
* Fix issue from review
* Try to remove ugliness
* Merge branch 'unstable' into max-blobs-preset
* Fix max value
* Fix doctest
* Fix formatting
* Fix max check
* Delete hardcoded max_blobs_per_block in RPC limits
* Merge remote-tracking branch 'origin/unstable' into max-blobs-preset
* Use reqwest eventsource for get_events api
* await for Event::Open before returning stream
* fmt
* Merge branch 'unstable' into sse-client-fix
* Ignore lint
* Remove ZeroizeString in favour of Zeroizing<String>
* cargo fmt
* remove unrelated line that slipped in
* Update beacon_node/store/Cargo.toml
thanks michael!
Co-authored-by: Michael Sproul <micsproul@gmail.com>
* Merge branch 'unstable' into remove-zeroizedstring
* Validator manager commands for standard key-manager APIs
* Merge latest unstable
* Fix Some in lib.rs
* Replace Arg::with_name with Arg::new
* Update takes_value
* Remove clap::App
* Change App to Command
* Add command in use
* Remove generic in ArgMatches
* Fix matches.get_flag
* Fixes
* fix error handling
* SetTrue in import
* Fix
* Fix builder-proposal flag (will delete the flag later)
* Minor fix
* Fix prefer_builder_proposals
* Remove unwrap
* Error handling from Michael
* Add cli help text
* Use None in import to simplify
* Delete unwrap
* Revert flags option
* Simplify help command code
* Remove flag header in move
* Merge remote-tracking branch 'origin/unstable' into pahor/validator-manager-standard-keystore
* Add log in VC when keystore is deleted
* Delete duplicated log when validator does not exist
* Simplify log code
* Rename remove to delete
* cargo-fmt
* Try to remove a function
* make-cli
* Error handling
* Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm
* Update CLI hel text
* make-cli
* Fix checks
* Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm
* Try to fix check errors
* Fix test
* Remove changes
* Update flag name
* CLI display order
* Move builde_proposals flag
* Add doc
* mdlint
* Update validator_manager/src/list_validators.rs
Co-authored-by: Mac L <mjladson@pm.me>
* Delete empty line
* Fix list
* Simplify delete
* Add support to delete more validators
* Fix test
* Rename response
* Add (s)
* Add test to delete multiple validators
* Book and cli
* Make cli
* Only log when keystore is deleted
* Revise deletion log
* Add validator pubkey to error message
* Merge import
* Thank you Mac
* Test
* Add flags
* Error handling for password
* make cli
* Merge remote-tracking branch 'origin/unstable' into vm
* make cli
* Fix test
* Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm
* Fix test
* vm test
* Debug trait thank you Michael
* Fix test
* Merge branch 'unstable' into vm
* test
* testing
* Combine import validator(s)
* make cli
* Add requires
* Update book
* mdlint
* Only show import log when import is successful
* delete testing
* Test for standard format
* Test standard format
* Test
* fix builder_proposals flag
* Fix test for standard format
* Add requires
* Fix vm test
* make cli
* Remove flag header
* Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm
* make cli
* Delete space
* Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm
* Merge branch 'unstable' into vm
* Rename delete_validator to delete_validators
* Rearrange
* Remove pub in run function
* Fix grammar
* Apply suggestions from code review
Co-authored-by: Michael Sproul <micsproul@gmail.com>
* Remove description
* Merge branch 'vm' of https://github.com/chong-he/lighthouse into vm
* Close bracket
* make cli
* Revise list code and test
* Revise import flag
* make cli
* Comment out test
* Update vm test
* Simplify
* Merge remote-tracking branch 'origin/unstable' into vm
* make cli
* Add test
* Add password as a requirement for keystore file
* Correct flags in docs
* typo