mirror of
https://github.com/luxfi/chains.git
synced 2026-09-24 00:26:00 +00:00
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.
229 lines
10 KiB
AMPL
229 lines
10 KiB
AMPL
module github.com/luxfi/chains
|
|
|
|
go 1.26.3
|
|
|
|
require (
|
|
github.com/consensys/gnark-crypto v0.20.1
|
|
github.com/gorilla/rpc v1.2.1
|
|
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
|
|
github.com/hashicorp/golang-lru v1.0.2
|
|
github.com/luxfi/accel v1.1.0
|
|
github.com/luxfi/ai v0.1.0
|
|
github.com/luxfi/codec v1.1.4
|
|
github.com/luxfi/consensus v1.24.0
|
|
github.com/luxfi/constants v1.5.7
|
|
github.com/luxfi/crypto v1.19.6
|
|
github.com/luxfi/database v1.18.3
|
|
github.com/luxfi/evm v0.18.13
|
|
github.com/luxfi/geth v1.16.98
|
|
github.com/luxfi/ids v1.2.10
|
|
github.com/luxfi/lattice/v7 v7.1.0
|
|
github.com/luxfi/log v1.4.1
|
|
github.com/luxfi/metric v1.5.1
|
|
github.com/luxfi/node v1.27.8
|
|
github.com/luxfi/oracle v0.1.1-0.20260429020431-76258cfcddf9
|
|
github.com/luxfi/precompile v0.5.23
|
|
github.com/luxfi/relay v0.0.0-20260429020048-c629fe160d3c
|
|
github.com/luxfi/runtime v1.0.1
|
|
github.com/luxfi/sys v0.0.0-20260110090042-50187ec5ffd8
|
|
github.com/luxfi/threshold v1.8.0
|
|
github.com/luxfi/timer v1.0.2
|
|
github.com/luxfi/version v1.0.1
|
|
github.com/luxfi/vm v1.0.40
|
|
github.com/luxfi/warp v1.18.6
|
|
github.com/stretchr/testify v1.11.1
|
|
golang.org/x/crypto v0.50.0
|
|
)
|
|
|
|
require (
|
|
filippo.io/edwards25519 v1.2.0 // indirect
|
|
filippo.io/hpke v0.4.0 // indirect
|
|
github.com/ALTree/bigfloat v0.2.0 // indirect
|
|
github.com/ChainSafe/go-schnorrkel v1.1.0 // indirect
|
|
github.com/DataDog/zstd v1.5.7 // indirect
|
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
|
github.com/StephenButtolph/canoto v0.17.3 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/bits-and-blooms/bitset v1.24.4 // indirect
|
|
github.com/btcsuite/btcd/btcutil v1.1.6 // indirect
|
|
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/cloudflare/circl v1.6.3 // indirect
|
|
github.com/cockroachdb/errors v1.12.0 // indirect
|
|
github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect
|
|
github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect
|
|
github.com/cockroachdb/pebble v1.1.5 // indirect
|
|
github.com/cockroachdb/redact v1.1.8 // indirect
|
|
github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb // indirect
|
|
github.com/cosmos/go-bip39 v1.0.0 // indirect
|
|
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
|
|
github.com/crate-crypto/go-eth-kzg v1.5.0 // indirect
|
|
github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect
|
|
github.com/cronokirby/saferith v0.33.0 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/deckarep/golang-set/v2 v2.8.0 // indirect
|
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.1 // indirect
|
|
github.com/dgraph-io/ristretto/v2 v2.4.0 // indirect
|
|
github.com/dlclark/regexp2 v1.11.5 // indirect
|
|
github.com/dop251/goja v0.0.0-20260311135729-065cd970411c // indirect
|
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
github.com/emicklei/dot v1.11.0 // indirect
|
|
github.com/ethereum/c-kzg-4844/v2 v2.1.7 // indirect
|
|
github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab // indirect
|
|
github.com/fatih/structtag v1.2.0 // indirect
|
|
github.com/ferranbt/fastssz v1.0.0 // indirect
|
|
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
|
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
|
|
github.com/gballet/go-libpcsclite v0.0.0-20250918194357-1ec6f2e601c6 // indirect
|
|
github.com/getsentry/sentry-go v0.44.1 // indirect
|
|
github.com/go-ini/ini v1.67.0 // indirect
|
|
github.com/go-logr/logr v1.4.3 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
|
github.com/go-sourcemap/sourcemap v2.1.4+incompatible // indirect
|
|
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
|
|
github.com/gofrs/flock v0.13.0 // indirect
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
|
github.com/golang/mock v1.7.0-rc.1 // indirect
|
|
github.com/golang/snappy v1.0.0 // indirect
|
|
github.com/google/flatbuffers v25.12.19+incompatible // indirect
|
|
github.com/google/go-cmp v0.7.0 // indirect
|
|
github.com/google/pprof v0.0.0-20260302011040-a15ffb7f9dcc // indirect
|
|
github.com/google/renameio/v2 v2.0.2 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/gorilla/mux v1.8.1 // indirect
|
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
|
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
|
|
github.com/gtank/merlin v0.1.1 // indirect
|
|
github.com/gtank/ristretto255 v0.2.0 // indirect
|
|
github.com/hashicorp/go-bexpr v0.1.16 // indirect
|
|
github.com/holiman/billy v0.0.0-20250707135307-f2f9b9aae7db // indirect
|
|
github.com/holiman/bloomfilter/v2 v2.0.3 // indirect
|
|
github.com/holiman/uint256 v1.3.2 // indirect
|
|
github.com/huin/goupnp v1.3.0 // indirect
|
|
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
|
|
github.com/klauspost/compress v1.18.5 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
|
github.com/klauspost/crc32 v1.3.0 // indirect
|
|
github.com/kr/pretty v0.3.1 // indirect
|
|
github.com/kr/text v0.2.0 // indirect
|
|
github.com/luxfi/address v1.0.1 // indirect
|
|
github.com/luxfi/age v1.5.0 // indirect
|
|
github.com/luxfi/api v1.0.11 // indirect
|
|
github.com/luxfi/atomic v1.0.0 // indirect
|
|
github.com/luxfi/cache v1.2.1 // indirect
|
|
github.com/luxfi/compress v0.0.5 // indirect
|
|
github.com/luxfi/concurrent v0.0.3 // indirect
|
|
github.com/luxfi/container v0.0.4 // indirect
|
|
github.com/luxfi/corona v0.4.1 // indirect
|
|
github.com/luxfi/crypto/ipa v1.2.4 // indirect
|
|
github.com/luxfi/fhe v1.8.2 // indirect
|
|
github.com/luxfi/filesystem v0.0.1 // indirect
|
|
github.com/luxfi/formatting v1.0.1 // indirect
|
|
github.com/luxfi/genesis v1.12.2 // indirect
|
|
github.com/luxfi/go-bip32 v1.0.2 // indirect
|
|
github.com/luxfi/go-bip39 v1.1.2 // indirect
|
|
github.com/luxfi/gpu v1.0.1 // indirect
|
|
github.com/luxfi/keychain v1.0.2 // indirect
|
|
github.com/luxfi/lens v0.1.3 // indirect
|
|
github.com/luxfi/math v1.4.1 // indirect
|
|
github.com/luxfi/math/big v0.1.0 // indirect
|
|
github.com/luxfi/math/safe v0.0.1 // indirect
|
|
github.com/luxfi/mock v0.1.1 // indirect
|
|
github.com/luxfi/net v0.0.4 // indirect
|
|
github.com/luxfi/p2p v1.19.2 // indirect
|
|
github.com/luxfi/pq v1.0.3 // indirect
|
|
github.com/luxfi/protocol v0.0.4 // indirect
|
|
github.com/luxfi/resource v0.0.1 // indirect
|
|
github.com/luxfi/corona v0.2.0 // indirect
|
|
github.com/luxfi/rpc v1.0.2 // indirect
|
|
github.com/luxfi/sampler v1.0.0 // indirect
|
|
github.com/luxfi/staking v1.1.0 // indirect
|
|
github.com/luxfi/tls v1.0.3 // indirect
|
|
github.com/luxfi/trace v0.1.4 // indirect
|
|
github.com/luxfi/upgrade v1.0.0 // indirect
|
|
github.com/luxfi/utils v1.1.4 // indirect
|
|
github.com/luxfi/utxo v0.3.0 // indirect
|
|
github.com/luxfi/validators v1.2.0 // indirect
|
|
github.com/luxfi/zapdb v1.10.0 // indirect
|
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
github.com/mimoo/StrobeGo v0.0.0-20220103164710-9a04d6ca976b // indirect
|
|
github.com/minio/crc64nvme v1.1.1 // indirect
|
|
github.com/minio/md5-simd v1.1.2 // indirect
|
|
github.com/minio/minio-go/v7 v7.0.100 // indirect
|
|
github.com/minio/sha256-simd v1.0.1 // indirect
|
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
|
github.com/mitchellh/pointerstructure v1.2.1 // indirect
|
|
github.com/montanaflynn/stats v0.9.0 // indirect
|
|
github.com/mr-tron/base58 v1.2.0 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
|
|
github.com/philhofer/fwd v1.2.0 // indirect
|
|
github.com/pion/dtls/v2 v2.2.12 // indirect
|
|
github.com/pion/logging v0.2.4 // indirect
|
|
github.com/pion/stun/v2 v2.0.0 // indirect
|
|
github.com/pion/transport/v2 v2.2.10 // indirect
|
|
github.com/pion/transport/v3 v3.1.1 // indirect
|
|
github.com/pires/go-proxyproto v0.11.0 // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/prometheus/client_golang v1.23.2 // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/common v0.67.5 // indirect
|
|
github.com/prometheus/procfs v0.20.1 // indirect
|
|
github.com/rogpeppe/go-internal v1.14.1 // indirect
|
|
github.com/rs/cors v1.11.1 // indirect
|
|
github.com/rs/xid v1.6.0 // indirect
|
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
|
github.com/sagikazarmark/locafero v0.12.0 // indirect
|
|
github.com/shirou/gopsutil v3.21.11+incompatible // indirect
|
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
|
github.com/spf13/afero v1.15.0 // indirect
|
|
github.com/spf13/cast v1.10.0 // indirect
|
|
github.com/spf13/pflag v1.0.10 // indirect
|
|
github.com/spf13/viper v1.21.0 // indirect
|
|
github.com/status-im/keycard-go v0.3.3 // indirect
|
|
github.com/subosito/gotenv v1.6.0 // indirect
|
|
github.com/supranational/blst v0.3.16 // indirect
|
|
github.com/syndtr/goleveldb v1.0.1-0.20220614013038-64ee5596c38a // indirect
|
|
github.com/tinylib/msgp v1.6.1 // indirect
|
|
github.com/tklauser/go-sysconf v0.3.16 // indirect
|
|
github.com/tklauser/numcpus v0.11.0 // indirect
|
|
github.com/urfave/cli/v2 v2.27.7 // indirect
|
|
github.com/wlynxg/anet v0.0.5 // indirect
|
|
github.com/x448/float16 v0.8.4 // indirect
|
|
github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 // indirect
|
|
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
|
github.com/zeebo/blake3 v0.2.4 // indirect
|
|
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
|
go.opentelemetry.io/otel v1.42.0 // indirect
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.42.0 // indirect
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.42.0 // indirect
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.42.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.42.0 // indirect
|
|
go.opentelemetry.io/otel/sdk v1.42.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.42.0 // indirect
|
|
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
|
|
go.uber.org/mock v0.6.0 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
go.uber.org/zap v1.27.1 // indirect
|
|
go.yaml.in/yaml/v2 v2.4.4 // indirect
|
|
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
|
golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect
|
|
golang.org/x/mod v0.34.0 // indirect
|
|
golang.org/x/net v0.52.0 // indirect
|
|
golang.org/x/sync v0.20.0 // indirect
|
|
golang.org/x/sys v0.43.0 // indirect
|
|
golang.org/x/text v0.36.0 // indirect
|
|
golang.org/x/time v0.15.0 // indirect
|
|
gonum.org/v1/gonum v0.17.0 // indirect
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 // indirect
|
|
google.golang.org/grpc v1.80.0 // indirect
|
|
google.golang.org/protobuf v1.36.11 // indirect
|
|
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
)
|