- 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>
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).
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.
[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>
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>
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>
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.
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.
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.
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.
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
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>
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>
- 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
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>
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.
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>
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.
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
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 {
^
```