23 Commits
Author SHA1 Message Date
zeekay 276ab4ac19 deps: bump precompile v0.5.59 + consensus v1.25.21 + evm v1.99.39 (no stragglers) 2026-06-23 09:28:09 -07:00
zooqueen 557a6767f2 deps: bump consensus v1.25.18 -> v1.25.19 (Round1 API fix; pulsar v1.1.5)
consensus v1.25.18 quasar.go/epoch.go call corona/threshold.Round1 single-value,
but corona's Round1 now returns (Round1Data, error) -> the quantumvm plugin (and
any consensus consumer) fails to compile. v1.25.19 has the Round1 fix. All 11 VM
plugins build clean.
2026-06-22 03:11:46 -07:00
zeekay d0124f77f8 deps: consume evm v1.99.36 + precompile v0.5.56 (dexvm swap-seam parity) 2026-06-21 22:48:26 -07:00
zeekay a40305d743 deps: bump vm v1.2.5 + api v1.0.15 (UTXOAssetID rename — fixes LuxAssetID build break, latest patch) 2026-06-21 22:44:55 -07:00
zeekay 136927300a deps: converge threshold v1.9.9 + crypto v1.19.21 + database v1.20.3 + geth v1.17.12 + warp v1.19.5 + metric v1.5.9 + proto v1.3.5 (latest patch within v1.x.x) 2026-06-21 22:41:07 -07:00
zeekay 01eb9876cc deps: bump evm v1.99.31 + precompile v0.5.51 for DEX native-atomic-seam release (v1.3.14) 2026-06-21 07:19:36 -07:00
zeekay c0f632e3ff deps: evm v1.99.30 + precompile v0.5.50 + clean go.sum
Bump to the clean-go.sum builds of evm/precompile and regenerate chains' go.sum
from a clean module cache (v1.3.12's consensus/geth hashes were poisoned by a
tampered local cache, breaking clean-CI plugin builds). No chains code change.
go mod verify clean; build + bridgevm + dexvm tests green.
2026-06-20 22:13:29 -07:00
zeekay c0b3d81c0e deps: evm v1.99.29 + precompile v0.5.49 (hardened 0x9999 receipt-settlement)
Bump github.com/luxfi/evm v1.99.28 -> v1.99.29 (removes deprecated DexZap
live-backend wiring) and github.com/luxfi/precompile v0.5.47 -> v0.5.49
(complete, red-swarm-hardened 0x9999 V4 receipt-settlement surface). dexvm
remains the D-Chain matcher/receipt producer; the C-Chain settles inline.
2026-06-20 15:02:05 -07:00
zeekay 3f2427bbaa deps: pin geth v1.17.11 + consensus v1.25.18 + evm v1.99.28 + precompile v0.5.47 (real semver); MVS-propagate transitive bumps 2026-06-19 14:44:18 -07:00
zeekay 4e21d9910a chains/dexvm: rip out matcher+state -> stateless atomic ZAP proxy
orderbook/perpetuals/lending/mev dirs + backend.go deleted; vm.go 2230->830 lines.
NEW atomic.go (shared-memory import/export at Block.Accept) + relay.go (rpc.ZAPDial,
frame byte-identical to zapwire, no luxfi/dex dep). State holds only nonce:/receipt:/
consumed: -- no order/pool/position keys. txs reduced to import/export/relay. NEW
conservation_test.go::TestEndToEndAtomicValueConservation. Verified -tags dchain build+tests
green -race; grep matchAllOrders|tryMatch|crossOrders empty.
2026-06-17 13:31:58 -07:00
zeekay a6e013831d deps: update to latest real-semver, drop local replaces, fix breaks 2026-06-11 09:09:40 -07:00
zeekay b83c8a7558 go.mod: bump go directive 1.26.3 → 1.26.4
Patch fix: crypto/x509, mime, net/textproto security fixes per Go 1.26.4 release notes (2026-06-02). Also compiler, runtime, go fix, crypto/fips140 bug fixes.
2026-06-06 21:51:01 -07:00
zeekay 376c40f2e6 deps: bump luxfi/vm v1.2.0, sampler v1.1.0, staking v1.5.0 (relicense)
Picks up the 2026-06-06 relicensing:
- luxfi/vm v1.2.0 → Lux Ecosystem License v1.2 (was Lux Research v1.0).
  License-only retag of the extracted runtime; patent reservation
  preserved for runtime optimization surfaces, royalty-free for
  Descending Chains.
- luxfi/sampler v1.1.0 → BSD-3-Clause (was Lux Research v1.0).
  License restored to match the luxfi/node provenance (originally
  extracted from node/utils/sampler).
- luxfi/staking v1.5.0 → BSD-3-Clause (was Lux Research v1.0).
  License restored to match the luxfi/node provenance.

No code changes in this commit — go.mod/go.sum only.
2026-06-06 19:02:25 -07:00
zeekay 4a9b1b3456 chains: migrate bridgevm/zkvm/thresholdvm to node/vms/pcodecs
Wave 2D codec-rip extension for chains repo:
- bridgevm/codec.go: codec.Manager + linearcodec.NewDefault → pcodecs
- zkvm/codec.go: same pattern
- thresholdvm/codec.go: same pattern
- Bump luxfi/warp v1.18.6 → v1.19.3 (closes warp→ids→codec/wrappers transitive)
- Bump luxfi/ids v1.2.14 → v1.2.15 (drops codec/wrappers from Prefix/Append)

luxfi/codec remains as // indirect via proto/zap_codec → codec/zapcodec
(the actual ZAP wire impl — physical relocation to luxfi/zap/codec
queued separately). Tests pass for all three VMs.
2026-06-06 15:40:20 -07:00
zeekay 4ecaecedb7 deps: bump p2p v1.21.1, node v1.29.3, vm v1.1.11, evm v0.19.4 (Wave 2G-Cascade) 2026-06-06 06:30:20 -07:00
zeekay 45d0f5222f aivm: public-BFT defaults + multi-chain deployable + VerificationMode
The user's verbatim demand:
> "fix ALL of a-chain so it works in MULTI-CHAIN for any Lux public L1 L2
> we must work without any trusted daler or other"

WHAT CHANGED

DefaultConfig (PUBLIC-BFT-SAFE DEFAULTS):
- VerificationMode: ModeOptimistic (default) — providers post results
  with bond; N-block challenge period; uncontested = finalised;
  challenged = fraud-proof flow with slashing. NO trusted dealer,
  NO TEE assumption, NO single point of trust.
- RequireTEEAttestation: false (was true) — TEE is OPTIONAL
  acceleration, NOT a registration gate. Providers without TEE can
  register and operate under the optimistic-verification flow.
- HostChainID: "primary" — AIVM is chain-agnostic. Override per
  L1/L2 instance (Hanzo, Zoo, Pars, Liquidity, etc.).
- ChallengeWindowBlocks: 100 (~5-10 min finality)
- RedundancyFactor: 3 (for ModeMultiPartyRedundant — M-of-N consensus)
- MinProviderBond: 1000 LUX equivalent (slashed on fraud proof or
  majority divergence)

DefaultPermissionedConfig (OPT-IN, NOT public mainnet):
- VerificationMode: ModeTEEAttested
- RequireTEEAttestation: true
- For regulated/KYC'd subnets where TEE-vendor trust is acceptable
  by policy

THREE VERIFICATION MODES
1. ModeOptimistic (default, public-BFT): post + challenge + fraud proof.
2. ModeMultiPartyRedundant: M-of-N validators run same task, consensus
   on output hash. Public-BFT-safe. M× compute cost.
3. ModeTEEAttested: opt-in, permissioned subnets only. TEE is folded
   into the trust score as ACCELERATION (skip challenge for high
   trust score); NEVER changes the trust root.

RegisterProvider:
- Public-chain path: no TEE required. Provider bond + challenge flow
  enforce correctness.
- Permissioned path (RequireTEEAttestation=true): TEE attestation
  required, must meet MinTrustScore. Error message points operators
  at the public-chain alternative.

MULTI-CHAIN DEPLOYABILITY
- HostChainID tells AIVM which L1/L2 it's running on.
- "primary" = anchor to Q-Chain via MerkleAnchorFreq blocks.
- White-label L1/L2 = anchor to host chain's own finality (Pulsar
  for PQ-finality, Corona for Corona-finality, etc.).
- AIVM code is identical across all chains; only the HostChainID
  config field differs.

TESTS
- TestDefaultConfig pins public-BFT-safe defaults: TEE NOT required,
  mode is Optimistic, HostChainID is "primary".
- TestDefaultPermissionedConfig pins the opt-in permissioned path.
- TestVerificationMode_PublicBFTSafe asserts default mode is always
  one of (Optimistic, MultiPartyRedundant), NEVER TEE-attested as
  the trust root.

go.mod refresh as side-effect of adding luxfi/node@latest for
vms/types/fee.
2026-05-22 00:26:04 -07:00
zeekay 74f9ee294f deps: bump evm v0.18.13 + precompile v0.5.23 + threshold v1.8.0; drop sibling replaces
The local replace block (luxfi/{evm,precompile,threshold} => ../*) was
transient pending tags that include LP-4200 precompile registry + corona
keyera-lifecycle. All three lines now have shipped tags:
  - luxfi/evm v0.18.13
  - luxfi/precompile v0.5.23
  - luxfi/threshold v1.8.0

Local replaces removed → repo builds cleanly in any isolated context
(Docker, fresh GOPATH, etc.).

Verified locally with GOWORK=off go build ./cmd/plugin per chain:
  aivm/bridgevm/dexvm/graphvm/identityvm/keyvm/oraclevm/relayvm/
  thresholdvm/zkvm → OK
  quantumvm → FAIL (Corona→Corona source migration deferred —
  references quasar.CoronaSignature/qcore.CoronaRound1 that
  threshold v1.8.0 renamed).
2026-05-19 13:36:09 -07:00
zeekay 3aabab48c5 deps: pin luxfi/proto v1.0.0 (rename cascade complete) 2026-05-18 21:27:16 -07:00
zeekay bcec80ac5f rename: github.com/luxfi/protocol → github.com/luxfi/proto (imports + go.mod replace) 2026-05-18 21:19:09 -07:00
zeekay 909cddb7d3 deps: luxfi/crypto v1.19.0 2026-05-13 11:58:32 -07:00
zeekay 1964014bd5 go.mod: bump go directive to 1.26.3 (security advisory) 2026-05-12 21:28:38 -07:00
zeekay 167a8e9e8e deps: accel v1.0.9 (VMSession); thresholdvm M/F-Chain doc clarification 2026-05-05 16:53:51 -07:00
zeekay 38a694bde4 Consolidate VMs into single chains module; cevm Metal anchor + V4 dispatch
VM consolidation (one module, one place only):
- Removed per-VM go.mod/go.sum/VERSION from {aivm,bridgevm,dexvm,evm,
  graphvm,identityvm,keyvm,oraclevm,quantumvm,relayvm,thresholdvm,zkvm}
- All VMs now compile under github.com/luxfi/chains root module
- aivm/, dexvm/, identityvm/, keyvm/, oraclevm/ factory.go + vm.go updated
  for AccelHost wiring

cevm Go-side (evm/cevm/):
- cevm.go, cevm_cgo.go, cevm_nocgo.go: ExecuteBlockV4(backend, threads,
  txs, ctx, state) with StateAccount snapshot
- cevm_secp256k1.go: BatchRecoverSenders Metal LDFLAGS
- cevm_secp256k1_metal_anchor_darwin.{c,go}: anchor to keep linker from
  dropping libsecp256k1_metal.a
- cevm_secp256k1_nocgo.go: stub for non-cgo builds
- plugin.go, fetch-luxcpp.sh, luxcpp-SHA256SUMS, LUXCPP_VERSION:
  pinned luxcpp consumption
- evm/cevm/parallel/parallel.go: BlockExecutor adapter calls
  cevm.ExecuteBlockV4 with state snapshot built from txs+statedb

Quantum/ZK witness:
- quantumvm/quasar_witness.go, zkvm/zwitness.go

go.mod: removed dead `replace github.com/ethereum/go-ethereum => luxfi/geth`
directive (caused dual-path conflict after math semver bump; no remaining
ethereum/go-ethereum imports in source). go mod tidy clean.

Tests: TestBatchRecoverSenders PASS through Metal anchor (cevm package).
2026-05-05 10:17:49 -07:00