378 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 afa7230eb7 Update address formatting and drop pebble dep 2026-01-08 23:57:21 -08:00
Zach Kelling 239bd30358 Fix external crypto module integration
- Resolve type conflicts between external crypto and geth common modules
- Update crypto functions to use common.Address and common.Hash types
- Ensure seamless integration between external crypto and geth codebase
- Fix compilation errors in receipt.go and other core modules

The external crypto module now properly integrates with geth's common types,
allowing all cryptographic functions to work seamlessly with the geth codebase.

Generated by Mistral Vibe.
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2025-12-12 20:35:33 -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
wit liuandGitHub b536059d0a build: fix check_generate not printing changed files (#33299)
Fixes an issue where HashFolder skipped the root directory upon hitting
the first file in the excludes list. This happened because the walk function
returned SkipDir even for regular files.
2025-12-08 22:58:26 +01:00
Hanzo Dev 73676a356c Merge upstream go-ethereum 1cb1948ad into luxfi/geth
- Merged latest upstream changes from go-ethereum master (fb3c8f462..1cb1948ad)
- Resolved all merge conflicts while preserving lux customizations
- Maintained github.com/luxfi/geth import paths throughout
- Preserved custom packages: crypto/pqcrypto, plugin/evm/, ethdb/badgerdb
- Updated dependencies via go mod tidy
- Removed upstream-deleted test files: verkle_witness_test.go, iterator_test.go
- Build verified: go build ./cmd/geth successful
- Tests passing: core/types, crypto, common, crypto/pqcrypto

Lux-specific features maintained:
- Post-quantum cryptography (ML-DSA, ML-KEM, SLH-DSA)
- BadgerDB integration
- Plugin/EVM subnet compatibility
- SubnetEVM state migration tools
- Validator management and warp messaging
- All luxfi/* package dependencies

Compatible with luxfi/node v1.20.1
2025-11-22 14:49:21 -08:00
Guillaume BalletandGitHub daeb4e94f4 build: add wasm targets for keeper (#33124)
[powdr](github.com/powdr-labs/powdr) has tested keeper in their womir
system and managed to get it to work. This PR adds wasm as a keeper
target. There's another plan by the zkevm team to support wasm with wasi
as well, so these PR adds both targets.

These currently uses the `example` tag, as there is no precompile
intefrace defined for either target yet. Nonetheless, this is useful for
testing these zkvms so it makes sense to support these experimental
targets already.
2025-11-11 10:07:32 +08: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
Felix LangeandGitHub 748132b5d3 build: fix keeper build (#33018)
At the time keeper support was added into ci.go, we were using a go.work
file to make ./cmd/keeper accessible from within the main go-ethereum
module. The workspace file has since been removed, so we need to build
keeper from within its own module instead.
2025-10-24 18:25:54 +02:00
Guillaume BalletandGitHub 2ccff8d4d4 .gitea/workflows, build: add release build for keeper (#32632) 2025-10-24 17:19:25 +02:00
Sina MandGitHub 8613036e35 build: faster gh actions workflow, no ubuntu on appveyor (#32829)
This PR does a few things:

- Sets the gh actions runner sizes for lint (s) and test (l) workflows
- Runs the tests on gh actions in parallel
- Skips fetching the spec tests when unnecessary (on windows in
appveyor)
- Removes ubuntu appveyor runner since it's essentially duplicate of the
gh action workflow now

The gh test seems to go down from ~35min to ~13min.
2025-10-07 11:24:30 +02:00
Zach Kelling ce71051ed9 fix: use luxfi/crypto instead of internal secp256k1 2025-10-05 18:10:22 +00:00
cuiandGitHub 7cb623d047 build: remove duplicated func FileExist (#32768) 2025-09-29 10:17:47 +08:00
Felix LangeandGitHub fa67fbb468 build: upgrade to execution-spec-tests v5.1.0 (#32742)
https://github.com/ethereum/execution-spec-tests/releases/tag/v5.1.0
2025-09-25 13:14:28 +02:00
Felix LangeandGitHub c9e9134af3 build: module-aware FindMainPackages (#32736)
This fixes `go run build/ci.go install`. It was failing because we
resolved all main packages by parsing sources, which fails when the
source directory contains multiple modules.
2025-09-24 19:40:49 +02:00
Felix LangeandGitHub c87aad9514 go.work, build: remove workspace file (#32699)
https://go.dev/ref/mod#go-work-file advises against checking `go.work`
files because they can interfere with local development. We added the
workspace file in order to make `go test` and other tools work across
multiple modules. But it seems to cause weird issues with the
`go.work.sum` file being modified, etc.

So with this PR, we instead run all the `ci.go` commands for all modules
in the workspace manually.
2025-09-22 22:20:47 +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
f0d43ea51c build: update to execution-spec-tests v5.0.0 (#32592)
https://github.com/ethereum/execution-spec-tests/releases/tag/v5.0.0

As of this release, execution-spec-tests also contains all state tests
that were previously in ethereum/tests. We can probably remove the tests
submodule now. However, this would mean we are missing the pre-cancun
tests. Still need to figure out how to resolve this.

---------

Co-authored-by: MariusVanDerWijden <m.vanderwijden@live.de>
2025-09-18 22:58:40 +02:00
Zach Kelling 33b870e588 merge: integrate upstream go-ethereum with luxfi-specific imports preserved 2025-09-16 10:12:08 +00:00
3da74f7a24 cmd/keeper: add the keeper zkvm guest program (#32543)
Keeper is a zmvm guest program that runs the block transition.
It relies on the zkvm maker implementing `getInput`. For now, we only
provide a single implementation for the 'ziren' VM.

Why keeper?

In the _Mass Effect_ lore, the keepers are animals (?) who maintain the
citadel. Nothing is known from them, and attempts at tampering with them
have failed, as they self-destruct upon inquiry. They have a secret,
nefarious purpose that is only revealed later in the game series, don't
want any spoilers so I didn't dig deeper. All in all, a good metaphor
for zkvms.

---------

Co-authored-by: weilzkm <140377101+weilzkm@users.noreply.github.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
2025-09-15 19:47:41 +02:00
MarkandGitHub 8389acd511 go.mod: add tool section in module file (#32598)
This removes the tools.go workaround in favor of the official
tool management infrastructure, which was added in Go 1.24.
2025-09-15 18:46:18 +02:00
Felix LangeandGitHub 809fe97f75 build: upgrade to go 1.25.1 (#32593) 2025-09-11 20:57:18 +02:00
Felix LangeandGitHub ed1aebc37f go.mod, build: require go 1.24 and upgrade linter (#32584) 2025-09-11 13:07:04 +02:00
ericxtheodoreandGitHub 61accac6ec build: add support for ubuntu 25.04 (#31666) 2025-08-26 09:29:29 +02:00
cuiandGitHub 1086778578 build: remove unused functions (#32393) 2025-08-14 14:47:43 +02:00
levisyinandGitHub 81dff17edc build: upgrade -dlgo version to Go 1.25.0 (#32412) 2025-08-14 13:24:47 +02:00
Zach Kelling 7c91527f6e feat: Use dgraph-io/badger/v4 directly in badgerdb implementation
- Remove dependency on luxfi/database wrapper for badgerdb
- Implement ethdb.Database interface directly on top of badger v4
- Update database dependency to v1.1.5
- Simplify badgerdb implementation for better maintainability
2025-08-03 01:17:04 +00:00
Hanzo Dev ced5a60274 Update import path 2025-07-31 17:10:10 -05:00
Felix LangeandGitHub 18c605ca8f build: update tests to fusaka-devnet-3 (#32251) 2025-07-21 23:20:36 +02:00
levisyinandGitHub 37fa8f346b build: upgrade -dlgo version to Go 1.24.4 (#31978) 2025-06-17 23:42:06 +02:00
ee3b425b8c build: Update EEST to v4.5.0 (#31880)
We deleted outdated pectra-devnet-6@v1.0.0 release by mistake, so this
PR updates the referenced EEST release to the correct latest version.

@s1na I removed the TODO comment because I think this solves it, unless
it meant something else.

---------

Co-authored-by: MariusVanDerWijden <m.vanderwijden@live.de>
2025-05-22 23:49:11 +02:00
Marius KjærstadandGitHub 0b16caab9a build: upgrade -dlgo version to Go 1.24.3 (#31774)
New security fix: https://groups.google.com/g/golang-announce/c/UZoIkUT367A
2025-05-15 22:54:18 +02:00
Felix LangeandGitHub 64e1262279 cmd/geth, internal/era/eradl: add era1 downloader tool (#31823)
This adds a geth subcommand for downloading era1 files and placing them into
the correct location. The tool can be used even while geth is already running
on the datadir. Downloads are checked against a hard-coded list of checksums
for mainnet and sepolia.

```
./geth download-era --server $SERVER --block 333333
./geth download-era --server $SERVER --block 333333-444444
./geth download-era --server $SERVER --epoch 0-10
./geth download-era --server $SERVER --all
```

The implementation reuses the file downloader we already had for
fetching build tools. I've done some refactoring on it to make sure it
can support the new use case, and there are some changes to the build
here as well.
2025-05-15 22:53:26 +02:00
levisyinandGitHub ff4ef384b8 build: upgrade -dlgo version to Go 1.24.2 (#31538) 2025-04-11 11:28:14 +02:00
Mobin MohananandGitHub d22fd2a108 build: upgrade to golangci-lint v2 (#31530) 2025-04-03 15:18:35 +02:00
HalimaoandGitHub 0857bf7543 build: fix execution-spec-tests sanitycheck URL (#31314) 2025-03-05 12:51:53 +01:00
levisyinandGitHub f12fad3fc1 build: upgrade to Go 1.24.1 and golangci-lint 1.64.4 (#31313)
- upgrade -dlgo version to Go 1.24.1
- upgrade golangci-lint version to 1.64.6
2025-03-05 11:02:18 +01:00
Felix LangeandGitHub 6718118206 build/deb: add step for new Go bootstrap to debian rules (#31283)
Next attempt at fixing the build on launchpad.net
2025-02-27 17:52:22 +01:00
a3855c28fe build: simplify go mod tidy check (#31266)
This changes the go mod tidy check to use the go mod tidy -diff command,
removing the custom diffing for go.mod. The check for go.mod/go.sum is now
performed in the check_generate action.

Also included is a change where check_generate and check_baddeps will now
run on the GitHub Actions lint step.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2025-02-27 15:52:00 +01:00
Felix LangeandGitHub 36e07fb546 build: update PPA Go bootstrap version to 1.23 (#31282)
This is for fixing the PPA build, which has been failing since the
update to Go 1.24. In Go 1.24, the required Go version for bootstrapping
was updated to 1.22. In general, they are following through with always
depending on the Go version two releases ago for bootstrapping.

Since we still support Ubuntu Xenial (16.04) until its EOL date of
04/2026, and Xenial only has golang 1.10 as a package, we now need to
build Go a total of four times to get the most recent version. I'm adding a step
for Go 1.23 here. This should last us until Go 1.25, which should be out around
04/2026, and we can hopefully drop the first bootstrapping step at that time.
2025-02-27 12:07:36 +01:00
rjl493456442andGitHub 88ed012260 build: filter out .git folder for go generate check (#31265)
Fixes lint issue

    >>> /home/appveyor/.gvm/gos/go1.24.0/bin/go generate ./...
    ci.go:404: File changed: .git/index
    ci.go:407: One or more generated files were updated by running 'go generate ./...'
    exit status 1
2025-02-26 11:49:02 +01:00
9081224901 build: upgrade -dlgo version to Go 1.24.0 (#31159)
Co-authored-by: Felix Lange <fjl@twurst.com>
2025-02-19 11:21:22 +01:00
9e5e722d81 build: update EEST fixtures to prague devnet-6 (#31088)
Co-authored-by: lightclient <lightclient@protonmail.com>
2025-02-06 12:33:40 +01:00
88b18846f1 build: update to Go 1.23.6 (#31130)
Co-authored-by: Felix Lange <fjl@twurst.com>
2025-02-05 23:19:09 +01:00
Felix LangeandGitHub 2a79c3232d build: provide a flag to disable publishing in dockerx build (#31098)
This changes the `-upload` flag to just toggle the upload. The remote
image name is now configured using the `-hub` flag.
2025-01-30 14:52:02 +01:00
Felix LangeandGitHub d4ca4941f8 build: retry PPA upload up to three times (#31099) 2025-01-30 14:06:50 +01:00
Sina MandGitHub ac6f01a2ec build: bump test timeout (#31095)
Travis often fails because the test times out.
2025-01-30 10:58:44 +01:00
levisyinandGitHub 8c462c85bd build: upgrade -dlgo version to Go 1.23.5 (#31037) 2025-01-20 17:04:29 +01:00
Daniel LiuandGitHub ea1cb2cb96 build: upgrade golangci-lint to v1.63.4 (#31019)
This PR upgrades `golangci-lint` to v1.63.4 and fixes a warn message
which is reported by v1.63.4:

```text
WARN [config_reader] The configuration option `run.skip-dirs-use-default` is deprecated, please use `issues.exclude-dirs-use-default`.
```

Also fixes 2 warnings which are reported by v1.63.4:

```text
core/txpool/blobpool/blobpool.go:1754:12: S1005: unnecessary assignment to the blank identifier (gosimple)
        for acct, _ := range p.index {
                  ^
core/txpool/legacypool/legacypool.go:1989:19: S1005: unnecessary assignment to the blank identifier (gosimple)
        for localSender, _ := range pool.locals.accounts {
                         ^
```
2025-01-13 08:26:10 +01:00