104 Commits
Author SHA1 Message Date
Hanzo AI 2ffbfdd234 chore: zero TODOs remaining in production code 2026-03-02 23:59:00 -08:00
Zach Kelling 8368ed62ec fix: update beacon types and tests 2026-02-21 13:58:21 -08:00
Zach Kelling a83f99d584 fix: apply go fmt formatting across codebase 2026-02-13 16:09:21 -08:00
Zach Kelling c53de7ca36 feat(log): replace slog DiscardHandler with luxfi/log bridge
Delete the old slog-based log package (format.go, handler.go,
handler_glog.go, logger.go, root.go) which initialized with
DiscardHandler — silently swallowing all log output including Crit
messages before calling os.Exit(1). This caused the EVM plugin
subprocess to die with no trace.

Replace with a thin bridge package (log/log.go) that re-exports
github.com/luxfi/log, ensuring:
- All geth log.Crit/Fatal calls properly log to stderr before exiting
- Default logger writes to stderr (not /dev/null)
- slog.Handler shims for backward compatibility

Also rewrite all 249 source files to import luxfi/log directly.
2026-02-10 21:07:22 -08:00
Zach Kelling afa7230eb7 Update address formatting and drop pebble dep 2026-01-08 23:57:21 -08:00
Zach Kelling 7243e35ec7 Merge upstream go-ethereum a6f7b4833 into luxfi/geth
Pulls 35 upstream commits with fixes and improvements:
- cmd/utils: fix DeveloperFlag handling when set to false
- core/stateless: cap witness depth metrics buckets
- eth/fetcher: add metadata validation in tx announcement
- triedb/pathdb: use copy instead of append to reduce memory alloc
- core/rawdb: fix size counting in memory freezer
- p2p/tracker: fix head detection in Fulfil
- eth/tracers/native: include SWAP16 in default ignored opcodes
- core/state: fix incorrect contract code state metrics
- eth/downloader: keep current syncmode in downloader only
- core/vm: fix PC increment for EIP-8024 opcodes
- common/bitutil: deprecate XORBytes in favor of stdlib crypto/subtle
- ethdb/pebble: change the Pebble database configuration
- eth/filters: change error code for invalid parameter errors
- beacon/types: update for fulu
- core: log detailed statistics for slow block

All luxfi packages preserved (crypto, node, ids).
2025-12-12 16:38:48 -08:00
Zach Kelling a93760dc04 refactor: use luxfi/crypto/kzg4844 instead of internal kzg4844
Externalize kzg4844 to luxfi/crypto package for consistent crypto
usage across all luxfi packages. The internal crypto/kzg4844 directory
is removed as it's now provided by luxfi/crypto.

Also updates Go to 1.25.5 and luxfi/crypto to v1.17.15.
2025-12-11 04:54:57 +00:00
Felix LangeandGitHub 6b6d4db2ec beacon/types: update for fulu (#33349)
Should fix decoding JSON blocks in the Fulu fork. This diff was missing
from https://github.com/ethereum/go-ethereum/pull/33349.
2025-12-03 23:17:19 +01:00
Zach Kelling 05cca74af3 Merge upstream go-ethereum e80aa28d2 (post v1.16.7)
Notable upstream changes:
- Remove tablewriter dependency, use internal implementation
- Add history index iterator for pathdb
- EIP updates and memory improvements in VM
- Enhanced blob pool conversion
- Various beacon/consensus updates
2025-11-28 08:13:26 +00:00
JustinandGitHub c4770879cc beacon/light: optimize database key assembling (#33292) 2025-11-27 10:35:22 +08:00
Klimov SergeiandGitHub 602e7334da beacon/config: ignore nil values in config file (#33065)
YAML supports leaving out the value, so we should handle this condition
in our limited parser.
2025-11-26 16:19:33 +01:00
Klimov SergeiandGitHub 8afaa103a5 beacon/config: add ELECTRA, FULU to knownForks (#32674) 2025-11-26 16:15:28 +01:00
Felföldi ZsoltandGitHub f611a9eefa beacon: update beacon light client for fusaka (#33272)
This PR adds the "FULU" beacon chain config entries for all networks and
fixes the select statements that choose the appropriate engine API call
versions (no new version there but the "default" was always the first
version; now it's the latest version so no need to change unless there
is actually a new version).
New beacon checkpoints are also added for mainnet, sepolia and hoodi
(not for holesky because it's not finalizing at the moment).
Note that though unrelated to fusaka, the log indexer checkpoints are
also updated for mainnet (not for the other testnets, mainly because I
only have mainnet synced here on my travel SSD; this should be fine
though because the index is also reverse generated for a year by default
so it does not really affect the indexing time)

Links for the new checkpoints:

https://beaconcha.in/slot/13108192
https://light-sepolia.beaconcha.in/slot/9032384
https://hoodi.beaconcha.in/slot/1825728
2025-11-26 11:07:56 +01:00
Hanzo DevandEthereum Foundation <https://github.com/ethereum/go-ethereum> f23c3b2dea Merge latest go-ethereum upstream (v1.16.6) into luxfi/geth
Merged upstream changes from go-ethereum master branch (commit fb3c8f462)
while preserving luxfi branding and package structure.

Key changes:
- Updated to go-ethereum v1.16.6 (patch version bump from v1.16.5)
- Preserved luxfi module name (github.com/luxfi/geth)
- Preserved luxfi branding in LICENSE (Lux Industries Inc.)
- Maintained LuxMainnetChainConfig and LuxTestnetChainConfig
- All import paths use github.com/luxfi/geth (not ethereum)
- Added Lux genesis hashes for network identification
- Integrated new upstream features:
  * Enhanced blob pool with conversion support
  * New keccak256 preimage tracer
  * Transaction pool validation improvements
  * State sizing utilities
  * Filter system enhancements
  * Various performance and stability improvements

Build verified: geth v1.16.6-unstable compiled successfully

Co-authored-by: Ethereum Foundation <https://github.com/ethereum/go-ethereum>
2025-10-28 23:52:29 -07:00
fb3c8f462c .github: add 32-bit CI targets (#32911)
This adds two new CI targets. One is for building all supported keeper
executables, the other is for running unit tests on 32-bit Linux.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-10-28 13:56:44 +01:00
Zach Kelling ce71051ed9 fix: use luxfi/crypto instead of internal secp256k1 2025-10-05 18:10:22 +00:00
Zach Kelling aa451aa601 Updates for regenesis 2025-09-26 02:13:06 +00:00
Zach Kelling 8ef04fea11 fix: update imports and dependencies for CI 2025-09-24 20:11:59 +00:00
Zach Kelling 58dda162de fix: resolve all lint errors for green CI 2025-09-23 05:12:56 +00:00
Zach Kelling 2d004bafb9 test: fix test timeouts and achieve 100% core test pass rate
- Added short mode support for long tests
- Fixed goroutine leaks in snapshot generation
- Disabled sender cacher during tests
- Added proper test cleanup
- All core packages now pass with -short flag
2025-09-19 19:11:04 +00:00
Felföldi ZsoltandGitHub 0feefafde2 beacon/blsync: test validated finality (#32633)
This PR improves `TestBlockSync` so that it also tests the finality
update validation.

Note: to this date four long and complex (at least partly AI generated)
PRs arrived that did something related to testing finality but honestly
we do not need a bloated "comprehensive" test to test a trivial feature
because maintaining these tests can also be a pain over the long term.
This PR adds some sufficient sanity checks to detect if finality ever
gets broken by a future change.
2025-09-19 14:07:10 +02:00
Zach Kelling f12030bb39 Merge latest upstream go-ethereum (Dec 2024 - batch 2)
Merged changes include:
- beacon/config: fix LoadForks with non-string values
- eth/filters: configurable address limit for eth_getLogs
- eth/catalyst: enable BPO and Osaka on stateless APIs
- tests: update to execution-spec-tests v5.0.0

All imports updated to use luxfi packages
2025-09-18 23:49:40 +00:00
Klimov SergeiandGitHub 485e828773 beacon/config: fix LoadForks with non-string values (#32609)
Fixes a crash when loading the beacon chain config if new fields like
`BLOB_SCHEDULE: []` are present.
Previously, the config loader assumed all values were strings, causing
errors such as:

```
Fatal: Could not load beacon chain config '/network-configs/config.yaml': failed to parse beacon chain config file: yaml: unmarshal errors:
line 242: cannot unmarshal !!seq into string
```

This PR updates the parsing logic to handle non-string values correctly
and adds explicit validation for fork fields.
2025-09-19 01:30:00 +02:00
rjl493456442andGitHub f78641ec85 eth/catalyst, beacon/engine: enable BPO and Osaka on stateless APIs (#32636)
Addresses https://github.com/ethereum/go-ethereum/issues/32630

This pull request enables the stateless engine APIs for Osaka and the
following BPOs. Apart from that, a few more descriptions have been added
in the engine APIs, making it easier to follow the spec change.
2025-09-19 00:16:01 +02:00
Zach Kelling 33b870e588 merge: integrate upstream go-ethereum with luxfi-specific imports preserved 2025-09-16 10:12:08 +00:00
Zach Kelling 379223dd57 Revert "sync: merge latest upstream from ethereum/go-ethereum with lux customizations"
This reverts commit 57ad4190c3.
2025-09-15 01:17:53 +00:00
Zach Kelling 57ad4190c3 sync: merge latest upstream from ethereum/go-ethereum with lux customizations 2025-09-15 00:19:30 +00:00
Zach BrownandGitHub 1958c287e2 all: fix problematic function name in comment (#32513)
Fix problematic function name in comment.
Do my best to correct them all with a script to avoid spamming PRs.
2025-08-29 08:54:23 +08:00
Zach Kelling a599e32f76 Update to use correct versions: node v1.13.7-lux.3, geth v1.16.3-lux.4, metric v1.2.2 2025-08-12 18:32:05 +00:00
Zach Kelling 3ab745a971 Add conversion functions between geth and crypto Address types 2025-08-12 18:23:43 +00:00
Zach Kelling 1c255fa00f Merge remote-tracking branch 'upstream/master' into update-from-upstream
# Conflicts:
#	core/state/database.go
#	core/txpool/blobpool/blobpool.go
#	core/vm/evm.go
#	core/vm/interpreter.go
#	crypto/kzg4844/kzg4844.go
#	eth/catalyst/api.go
#	go.mod
2025-08-08 20:41:28 +00:00
cuiandGitHub ad587bc2cf beacon/merkle: use reflect.TypeFor (#32322) 2025-08-07 14:36:20 +02:00
Zach Kelling d412b83c34 Merge upstream go-ethereum v1.16.2 2025-08-07 06:27:45 +00:00
Felföldi ZsoltandGitHub c3fb35176b beacon/params, core/filtermaps: update checkpoints (#32336)
This PR updates checkpoints for blsync and filtermaps.
2025-08-04 09:19:33 +08:00
Zach Kelling e8088c5bcb Use luxfi/crypto 2025-08-03 01:33:55 +00:00
Hanzo Dev ced5a60274 Update import path 2025-07-31 17:10:10 -05:00
rjl493456442andGitHub 95b00be0be all: define constructor for BlobSidecar (#32213)
The main purpose of this change is to enforce the version setting when
constructing the blobSidecar, avoiding creating sidecar with wrong/default 
version tag.
2025-07-17 11:19:20 +08:00
b18162c804 eth/catalyst: implement getBlobsV2 (#31791)
Implements `engine_getBlobsV2` which is needed for PeerDAS.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-06-09 11:34:24 +02:00
Felix LangeandGitHub c07c916d09 beacon/blsync: fix requests encoding in engine_newPayloadV4 (#31775)
This fixes an issue where blocks containing CL requests triggered an
error in the engine API. The encoding of requests used base64 instead of
hex.
2025-05-07 18:53:45 +08:00
rjl493456442andGitHub 85db2a86c0 beacon/engine: omit empty witness in payload response (#31739)
Fixes https://github.com/ethereum/go-ethereum/issues/31737
2025-04-29 13:21:18 +02:00
Felföldi ZsoltandGitHub 0f90b27a47 beacon/params: add mainnet electra config (#31706)
This PR adds the electra beacon chain configuration for mainnet.
2025-04-24 21:40:12 +02:00
Felföldi ZsoltandGitHub 2f973695e2 beacon/params, core/filtermaps: update checkpoints (#31674)
This PR updates checkpoints for blsync and filtermaps.
2025-04-20 12:54:40 +02:00
Felföldi ZsoltandGitHub 215dca99d7 beacon/blsync: add checkpoint import/export file feature (#31469)
This PR adds a new `--beacon.checkpoint.file` config flag to geth and
blsync which specifies a checkpoint import/export file. If a file with
an existing checkpoint is specified, it is used for initialization
instead of the hardcoded one (except when `--beacon.checkpoint` is also
specified simultaneously). Whenever the client encounters a new valid
finality update with a suitable finalized beacon block root at an epoch
boundary, it saves the block root in hex format to the checkpoint file.
2025-04-03 16:04:11 +02:00
Felföldi ZsoltandGitHub 03acf359ca beacon/params: new checkpoints (#31470)
This PR updates beacon checkpoints. The checkpoints are now stored as
embedded hex files, in the same format that
https://github.com/ethereum/go-ethereum/pull/31469 uses.
2025-03-24 12:27:40 +01:00
Marius van der WijdenandGitHub 24b26f0e72 params: add hoodi testnet definition (#31406)
Adds support for the new hoodi testnet. Hoodi is meant for stakers to test
their setup. For more info please refer to https://hoodi.ethpandaops.io/.
2025-03-18 12:07:49 +01:00
4e106507db beacon/types, beacon/blsync: update for electra (#31243)
This updates the blsync base types for the Electra fork. I've been
testing, and it doesn't seem to make blsync fully work on Electra. But
I'd still like to get this in to make some progress.

---------

Co-authored-by: Zsolt Felfoldi <zsfelfoldi@gmail.com>
2025-03-11 17:17:47 +01:00
Felix LangeandGitHub 4973ad13d9 all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
Felix LangeandGitHub e7ec6ec236 all: exclude empty outputs in requests commitment (#30670)
Implements changes from these spec PRs:

- https://github.com/ethereum/EIPs/pull/8989
- https://github.com/ethereum/execution-apis/pull/599
2024-11-28 11:48:50 +01:00
Felföldi ZsoltandGitHub 836150e50f beacon/blsync: remove cli dependencies (#30720)
This PR moves chain config related code (config file processing, fork
logic, network defaults) from `beacon/types` and `beacon/blsync` into
`beacon/params` while the command line flag logic of the chain config is
moved into `cmd/utils`, thereby removing the cli dependencies from
package `beacon` and its sub-packages.
2024-11-08 15:21:00 +01:00
zhiqiangxuandGitHub ac979bdb71 beacon/light: remove unused CommitteeChain.signerThreshold (#30484)
This field is a duplicate of UpdateScore.SignerCount and never referenced.
2024-10-30 15:22:10 +01:00