17137 Commits
Author SHA1 Message Date
zeekay 6287f51e13 fix(deps): patch the AWS EventStream DoS; unblock 22 packages
eventstream -> v1.7.8, service/s3 -> v1.97.3 (minimum patched versions), plus
the luxfi escape versions keeping this module off the deleted geth v1.16.x tags.

Measured, not assumed:

    before:  80 packages ok, 19 failing
    after:  102 packages ok, 20 failing

22 packages that previously could not COMPILE now build and pass. The single
extra failure is the other side of that same coin — a package that used to
compile-fail (counted as neither ok nor fail) now compiles and has a failing
test. Net +22.

The failing set is entirely upstream go-ethereum packages (core, p2p,
ethclient, graphql, console, node…), none of which touch the AWS SDK or the
luxfi modules bumped here.

I could not isolate WHICH package is the new one — a clean-tree baseline needs
a second full run and the pair exceeds the time budget. Stating that rather
than implying a cleaner result than I measured.
2026-07-26 06:21:40 -07:00
zeekayandHanzo Dev 02f6e1ea83 core/state: add StateLayerTransfers benchmark (Go side of cevm comparison)
Mirrors luxcpp/cevm lib/evm/state/bench_state.cpp exactly — same N, same
address derivation, same pre-funding, timing the transfers plus the state
root — so the C++ and Go numbers are comparable on one machine.

The C++ bench previously printed a hardcoded "luxfi/geth StateDB: 62.31 ms"
captured on another box. Re-measuring both here (M1 Max) puts geth at
146.33 ms vs cevm 37.28 ms, so the baked constant understated the gap by
more than 2x. That constant is now removed in favour of this benchmark.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-07-25 10:31:00 -07:00
zeekayandHanzo Dev c3cfdcc7f1 test: anchor cevm<->geth MPT state-root parity golden
Protects the golden root 0x549b8955...c021 from Go-side drift; paired with
luxcpp/cevm/test/state_root_parity.cpp which asserts the C++ side. Silent
divergence between the two EVMs is a chain-fork risk.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-07-18 20:29:59 -07:00
hanzo-dev 89fa13669f ci: run linux jobs on lux-build-amd64 ARC scale set (no GitHub-hosted builders) v1.20.1 2026-07-11 00:16:53 -07:00
hanzo-dev c2a3ebeee2 ci: route linux/amd64 jobs to lux-build-amd64 ARC scale set 2026-07-10 21:54:40 -07:00
zeekayandHanzo Dev 38c6981ff6 triedb/hashdb: honor ReferenceRootAtomicallyOnUpdate (latent-correctness alignment + GC regression tests)
luxfi/evm's block-accept pruner (cappedMemoryTrieWriter: tipBuffer + RejectTrie
+ reprocess previousRoot deref) and upstream coreth commit 7dc5b7473 assume the
state root is referenced on Update (parents>=1). luxfi/geth's slimmed hashdb.Config
dropped the ReferenceRootAtomicallyOnUpdate flag, so hashdb.Update referenced only
storage roots and every state root had parents==0. This restores the flag and
pins the state root atomically inside Update, matching the upstream contract.

Adds triedb/reference_root_test.go documenting the coreth GC lifecycle. NOTE:
these tests demonstrate the reference-counting is single-deref-SAFE with AND
without the flag (the accepted head's subtree is protected by its own Update
references under sibling reject + ancestor eviction). i.e. this change is a
latent-correctness alignment, not by itself the fix for the devnet block-2 halt.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
v1.20.0
2026-07-01 05:46:36 -07:00
zeekayandHanzo Dev 513ec93820 deps: real final semver — drop luxfi replace directives, pin intermediate deps to clean tags ()
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
v1.19.0
2026-06-30 16:57:23 -07:00
zeekayandHanzo Dev 6888eb3649 merge bump/luxdb-v1.19.3 into main (luxdb v1.19.3 + go.sum reconcile)
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
v1.18.0
2026-06-30 14:25:25 -07:00
zeekayandHanzo Dev 547d6354da bump: latest dealerless PQ (corona v0.10.3, pulsar v1.8.0)
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-06-30 13:26:48 -07:00
z 0ee8cc9d09 docs(brand): add hero banner 2026-06-28 20:36:13 -07:00
z 643c8b9125 chore(brand): dynamic hero banner 2026-06-28 20:36:12 -07:00
zeekay 230f2200f6 bump: dealerless pulsar/corona/dkg/mlwe (no trusted dealer, no-reconstruct)
Move to the dealerless threshold-signature stack: corona v0.10.2 (Module-LWE
Ringtail, dealerless Pedersen-VSS) + pulsar v1.7.1 (dealerless Mithril RSS keygen
+ no-reconstruct signing, trusted dealer ripped) + dkg v0.3.5 + mlwe v0.2.1.
2026-06-28 19:39:50 -07:00
a5656718d2 chore: bump luxfi/database v1.19.3 (#52)
Co-authored-by: zeekay <z@zeekay.io>
2026-06-25 15:24:28 -07:00
zeekay c954f4bf14 chore: bump luxfi/database v1.19.3 2026-06-25 13:03:36 -07:00
Hanzo AI c26716e99f test(types): use neutral chain IDs in ML-DSA signer test 2026-06-24 08:58:30 -07:00
Hanzo AI 4a77b51949 test(types): use neutral chain IDs in ML-DSA signer test 2026-06-24 08:58:30 -07:00
zeekay 425e36efca Merge canonical/main: absorb dependabot #51 (docs npm) into DEX native-atomic-seam release 2026-06-21 07:12:36 -07:00
zeekay 33eb0bfb13 Merge canonical/main: absorb dependabot #51 (docs npm) into DEX native-atomic-seam release 2026-06-21 07:12:36 -07:00
zeekay f6a685bd50 chore: restore upstream attribution + NOTICE (OSS compliance) 2026-06-21 02:08:17 -07:00
zeekay 9651912399 chore: restore upstream attribution + NOTICE (OSS compliance) v1.17.12 2026-06-21 02:08:17 -07:00
zeekay f5d38b0d04 core/vm: per-tx precompile CallIndex for the DEX native atomic seam
PrecompileEnvironment.CallIndex() exposes each precompile invocation's ordinal
within the current tx (evm.precompileCallIndex, reset to 0 at tx start,
incremented once per NewPrecompileEnvironment — for every invocation, including
reverted sub-frames and STATICCALLs). It is a pure function of (tx, ordinal),
so it is identical across deterministic re-execution and distinct between two
invocations in one tx.

The DEX 0x9999 seam binds CallIndex into DeriveIntentID so two same-params swaps
in one tx get distinct, collision-free cross-chain object ids while replaying
byte-identically network-wide.
2026-06-21 00:19:25 -07:00
zeekay ce858f2ebc core/vm: per-tx precompile CallIndex for the DEX native atomic seam
PrecompileEnvironment.CallIndex() exposes each precompile invocation's ordinal
within the current tx (evm.precompileCallIndex, reset to 0 at tx start,
incremented once per NewPrecompileEnvironment — for every invocation, including
reverted sub-frames and STATICCALLs). It is a pure function of (tx, ordinal),
so it is identical across deterministic re-execution and distinct between two
invocations in one tx.

The DEX 0x9999 seam binds CallIndex into DeriveIntentID so two same-params swaps
in one tx get distinct, collision-free cross-chain object ids while replaying
byte-identically network-wide.
2026-06-21 00:19:25 -07:00
98d3e8d859 build(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#51)
Bumps the npm_and_yarn group with 2 updates in the /docs directory: [next](https://github.com/vercel/next.js) and [postcss](https://github.com/postcss/postcss).


Updates `next` from 16.1.7 to 16.2.6
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.1.7...v16.2.6)

Updates `postcss` from 8.5.6 to 8.5.10
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.10)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.6
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: postcss
  dependency-version: 8.5.10
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-06-19 20:32:38 -07:00
a8ac41dd33 build(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#51)
Bumps the npm_and_yarn group with 2 updates in the /docs directory: [next](https://github.com/vercel/next.js) and [postcss](https://github.com/postcss/postcss).


Updates `next` from 16.1.7 to 16.2.6
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.1.7...v16.2.6)

Updates `postcss` from 8.5.6 to 8.5.10
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.6...8.5.10)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.6
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: postcss
  dependency-version: 8.5.10
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-06-19 20:32:38 -07:00
zeekay ae4357c295 Merge branch 'feature/zchain-rollup-starkfri-pq'
# Conflicts:
#	core/vm/pq_profile.go
#	go.mod
#	go.sum
2026-06-19 14:28:00 -07:00
zeekay 2b9c8776d0 Merge branch 'feature/zchain-rollup-starkfri-pq'
# Conflicts:
#	core/vm/pq_profile.go
#	go.mod
#	go.sum
v1.17.11
2026-06-19 14:28:00 -07:00
zeekay e58a8444b0 geth/core/vm: document AllForbidden is the maximal profile, not the chain profile
A Lux-derived EVM chain does NOT install AllForbidden() (=pq.Strict), which
forbids the standard alt_bn128 (BN254) precompiles at 0x06-0x08. Those are
Ethereum-compat dapp precompiles, not Lux settlement-security: Lux's
security-critical pairing/DLOG usage is in CUSTOM precompiles gated
separately. The per-chain profile (with bn256 carved out) is owned and
installed by the EVM plugin (evm/plugin/evm.LuxStrictPQ).

pq_lux_profile_test.go proves the guardrail through the REAL (*EVM).
runPrecompile dispatch: the bn256-carve-out profile admits 0x06-0x08 while
refusing every other classical family.
2026-06-19 13:37:37 -07:00
zeekay 2f919e1d0c geth/core/vm: document AllForbidden is the maximal profile, not the chain profile
A Lux-derived EVM chain does NOT install AllForbidden() (=pq.Strict), which
forbids the standard alt_bn128 (BN254) precompiles at 0x06-0x08. Those are
Ethereum-compat dapp precompiles, not Lux settlement-security: Lux's
security-critical pairing/DLOG usage is in CUSTOM precompiles gated
separately. The per-chain profile (with bn256 carved out) is owned and
installed by the EVM plugin (evm/plugin/evm.LuxStrictPQ).

pq_lux_profile_test.go proves the guardrail through the REAL (*EVM).
runPrecompile dispatch: the bn256-carve-out profile admits 0x06-0x08 while
refusing every other classical family.
2026-06-19 13:37:37 -07:00
zeekay 2a4f6d1066 p2p/enode: badgerdb→zapdb for the node database backend
newPersistentDB opened the peer node DB via badgerdb.New directly. Per the
single-backend rule we open zapdb.New instead — same New(path, cfg, name, reg)
signature, same on-disk format, so existing nodedb dirs read unchanged.
Comments updated badger→zapdb. go build ./p2p/enode/ clean.
2026-06-17 23:55:16 -07:00
zeekay 3f5c7e7e9e p2p/enode: badgerdb→zapdb for the node database backend
newPersistentDB opened the peer node DB via badgerdb.New directly. Per the
single-backend rule we open zapdb.New instead — same New(path, cfg, name, reg)
signature, same on-disk format, so existing nodedb dirs read unchanged.
Comments updated badger→zapdb. go build ./p2p/enode/ clean.
v1.17.10
2026-06-17 23:55:16 -07:00
zeekay a8b2896b5c geth: bump luxfi/precompile v0.5.43 → v0.5.44 (PoolManager pure-ingress custody; aligns with evm v1.99.25) 2026-06-17 22:31:08 -07:00
zeekay e4ff3cf76a geth: bump luxfi/precompile v0.5.43 → v0.5.44 (PoolManager pure-ingress custody; aligns with evm v1.99.25) 2026-06-17 22:31:08 -07:00
zeekay 7ab9613eaa geth: bump luxfi/precompile v0.5.42 → v0.5.43 (aligns with evm v1.99.24) 2026-06-17 21:11:44 -07:00
zeekay d14f1f477e geth: bump luxfi/precompile v0.5.42 → v0.5.43 (aligns with evm v1.99.24) 2026-06-17 21:11:44 -07:00
zeekay e3dd817d54 geth: bump luxfi/precompile v0.5.41 → v0.5.42 (0x9010 EVM-path fixes; aligns with evm v1.99.23) 2026-06-17 19:31:16 -07:00
zeekay c1bc62393d geth: bump luxfi/precompile v0.5.41 → v0.5.42 (0x9010 EVM-path fixes; aligns with evm v1.99.23) 2026-06-17 19:31:16 -07:00
zeekay b461867d19 deps: bump luxfi/precompile v0.5.37 -> v0.5.41 (provides starkfri.RegisterDefaultVerifier CAS)
The starkfri CAS clobber-fix in core/vm/lux_precompiles.go calls
starkfri.RegisterDefaultVerifier, which first lands in precompile v0.5.41.
Remote main pinned v0.5.37 (no such symbol) so a clean (no go.work) build
failed: 'undefined: starkfri.RegisterDefaultVerifier'. Bumping to v0.5.41
provides the API; transitive bumps stay within existing majors. Verified:
GOWORK=off CGO_ENABLED=0 go build ./core/vm/ passes.
2026-06-17 18:40:13 -07:00
zeekay 24c163282c deps: bump luxfi/precompile v0.5.37 -> v0.5.41 (provides starkfri.RegisterDefaultVerifier CAS)
The starkfri CAS clobber-fix in core/vm/lux_precompiles.go calls
starkfri.RegisterDefaultVerifier, which first lands in precompile v0.5.41.
Remote main pinned v0.5.37 (no such symbol) so a clean (no go.work) build
failed: 'undefined: starkfri.RegisterDefaultVerifier'. Bumping to v0.5.41
provides the API; transitive bumps stay within existing majors. Verified:
GOWORK=off CGO_ENABLED=0 go build ./core/vm/ passes.
2026-06-17 18:40:13 -07:00
zeekay bc1daa3f3d geth/core/vm: use RegisterDefaultVerifier (CAS) for starkfri so the real p3q binding wins
Was an unconditional RegisterVerifier(refuse) that clobbered the real starkfri verifier registered
by precompile/starkfri/init. Now registers a CAS-against-nil safe-refuse fallback that no-ops when
the real binding is present (atomic.Pointer). Fixes the init-order clobber.
2026-06-17 18:38:33 -07:00
zeekay e2a02436cc geth/core/vm: use RegisterDefaultVerifier (CAS) for starkfri so the real p3q binding wins
Was an unconditional RegisterVerifier(refuse) that clobbered the real starkfri verifier registered
by precompile/starkfri/init. Now registers a CAS-against-nil safe-refuse fallback that no-ops when
the real binding is present (atomic.Pointer). Fixes the init-order clobber.
2026-06-17 18:38:33 -07:00
zeekay efbafa1484 Merge starkfri-default-verifier: starkfri default-verifier CAS fix 2026-06-17 17:26:36 -07:00
zeekay d7345dc58b Merge starkfri-default-verifier: starkfri default-verifier CAS fix 2026-06-17 17:26:36 -07:00
zeekay fa8898a646 geth/core/vm: use RegisterDefaultVerifier (CAS) for starkfri so the real p3q binding wins
Was an unconditional RegisterVerifier(refuse) that clobbered the real starkfri verifier registered
by precompile/starkfri/init. Now registers a CAS-against-nil safe-refuse fallback that no-ops when
the real binding is present (atomic.Pointer). Fixes the init-order clobber.
2026-06-17 17:26:36 -07:00
zeekay 4a2177439e geth/core/vm: use RegisterDefaultVerifier (CAS) for starkfri so the real p3q binding wins
Was an unconditional RegisterVerifier(refuse) that clobbered the real starkfri verifier registered
by precompile/starkfri/init. Now registers a CAS-against-nil safe-refuse fallback that no-ops when
the real binding is present (atomic.Pointer). Fixes the init-order clobber.
2026-06-17 17:26:36 -07:00
zeekay ef3f2efb57 deps: update luxfi/constants to v1.5.8 real-semver, drop orphan pseudo-version 2026-06-11 09:06:58 -07:00
zeekay 282b4ad854 deps: update luxfi/constants to v1.5.8 real-semver, drop orphan pseudo-version 2026-06-11 09:06:58 -07:00
zeekay 710dd4160f deps: update luxfi/constants to v1.5.8 real-semver, drop orphan pseudo-version 2026-06-11 09:06:58 -07:00
zeekay 3e371d84cc deps: update luxfi/constants to v1.5.8 real-semver, drop orphan pseudo-version 2026-06-11 09:06:58 -07:00
zeekay eb671700b1 ci: route to canonical native arcd labels [self-hosted, linux, <arch>]
Replaces non-canonical scale-set / org-prefixed labels with the
existing labels every arcd host registers with. Matches evo for
amd64 and spark for arm64. No new labels added.
2026-06-10 20:21:58 -07:00
zeekay 12431f6281 ci: route to canonical native arcd labels [self-hosted, linux, <arch>]
Replaces non-canonical scale-set / org-prefixed labels with the
existing labels every arcd host registers with. Matches evo for
amd64 and spark for arm64. No new labels added.
2026-06-10 20:21:58 -07:00