Skip to content

Conversation

@chirag-parmar
Copy link
Contributor

No description provided.

arnetheduck and others added 22 commits August 26, 2025 08:23
* Speed up and simplify json serialization

* split out "json serialization" from "rest serialization" as a separate
module that only implements the `RestJson` format - this way, SSZ and
JSON support each has its own module while "rest" serialization combines
the two
* set unknown/optional/required field options on the `RestJson` flavor
directly
* switch to `Opt` throughout and make sure json_serialization `results`
support is enabled - this makes the framework consistently skip `none`
whem writing fields which allows simplifying the code
* stream json text directly instead of first allocating temporary
strings for hex arrays/numbers - 2-3x performance improvement on
state endpoint, ie down from 6-7s to 2-3s for a `curl` download - a json
state is now >800mb!
* reduce code duplication, import lists and binary size by exploiting
fork patterns and auto-generating serialization for more types
* read "dynamically typed" JSON fields like `data` using custom `object`
with `JsonString` instead of using hand-written parser - the
framework-generated parser is generally more efficient
* add Web3Signer decoding/roundtrip tests based on yaml spec examples
* print `ConsensusFork` like it's done in the beacon API spec throughout
* make SSZ `SignedBeaconBlock` root updates safer via ssz_serialization
bump
* make JSON `SignedBeaconBlock` root updates safer by enabling them for
all root-carrying types

The remote keystore serialization code could likely be simplified in a
similar way with additional tests.

* lint

* lint
* adjust fulu mev unblind condition

* fix

* remove the isOk
* validator custody and related changes

* note

* fix

* review

* oops

* add missing Epoch type conversion

* use let instead of var

---------

Co-authored-by: tersec <[email protected]>
#7404 attempted to use
`waitSignal` to handle shutdown notifications but this turned out to be
unreliable, in particular due to multi-threading and cross-platform
differences.

This PR fixes the crash in signal handlers by removing logging but
otherwise retains the polling nature of the shutdown initiation - it
also allows nimbus eth1/2 to share the same cross-thread mechanism for
initiating a shutdown.
* Update data directory defaults to include namespace, network

Running `nimbus_xxx` without `--data-dir` currently results in the data
directories colliding, for several reaons:

* Beacon node, validator client and signing node all use the same
validator folders derived from the data directory - this means that when
running either of those processes together based on defaults, the
processes will attempt to load the same keys which is a bad idea -
separating the folders by namespace gives an extra layer of safety
* Running with `--network` and without `--data-dir` fails due to
incompatible databases - adding the network name helps keep each network
separate

This change only affects the defaults - an explicit `--data-dir`
continues to work as it did before. Also, if the legacy folder exists,
it will be used in preference over the new structure.

While we're here, we also take the opportunity to:

* use `LocalAppData` on Windows, to avoid roaming the blockchain
database
* use `XDG_STATE_HOME` on linux, in line with XDG spec 0.8 (2021)
* rework `nimbus_binary_common` to reduce eth2-specific quirks such that
it can be reused in non-eth2 binaries
* clean up after VC stopped using `runSlotLoop`
* improve compatibilty for out-of-git builds when fetching git revision

* lint

* split

* export

* rm help texts

they don't get expanded

* special-case some network names (minimal in particular needs this)

* what a mess
- Phase out createMerkleizer API
- bump hashtree to not need CPU-agnostic fallback
- Implement EIP-7495: SSZ ProgressiveContainer
Implement test runner for new consensus-spec test format for EIP-7495
ProgressiveContainer. New tests will automatically be picked up once
they become available.

- ethereum/consensus-specs#4529
* Update web3 to new abi encoder / decoder

* Update nim-web3

* Update nim web3

* Update nim web 3
* initial Gloas fork infrastructure

* copyright and exception tracking linting, and add datatypes/gloas

* fix Gnosis build

* exclude gloas merkle proof tests

* don't run gloas in light client processor test, either

* tweaked how test summaries are made

* fix BeaconBlock constructor

* fix optionalforks not to keep vc from refusing to use BN
@github-actions
Copy link

github-actions bot commented Sep 3, 2025

Pull requests to the stable branch are not allowed.
Please open your pull request against the unstable branch.
See https://nimbus.guide/contribute.html#build-and-deploy

@github-actions github-actions bot closed this Sep 3, 2025
@chirag-parmar chirag-parmar deleted the test-web3-blobbasefee-fix branch September 3, 2025 13:14
@chirag-parmar chirag-parmar restored the test-web3-blobbasefee-fix branch September 3, 2025 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants