mirror of
https://github.com/luxfi/node.git
synced 2026-10-30 15:24:05 +00:00
The module already called itself github.com/luxfi/node while containing no node in Go: cmd/luxd was twenty-one lines that printed the size of a few types, and the Go column of the matrix measured a VM plugin. A repo that fetches the thing it claims to be has not replaced it, so the Go sources move in — 1515 files, the daemon and everything under it — and the build reaches outside this module for nothing. Rust and C++ sit beside it unchanged and are still measured against it by the differential. That is the point of one repo: the reference implementation and the two ports are the same checkout, so parity is a thing you can run rather than a thing you assert. Verified: builds, and the closure carries no lux-private — checked at build time rather than believed. The daemon starts twelve chains on a local network (P X C Q Z A B G K M F, plus D through its plugin) and reports healthy.
39 lines
1.9 KiB
Go
39 lines
1.9 KiB
Go
// Copyright (C) 2019-2026, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package quasar
|
|
|
|
import "errors"
|
|
|
|
// Typed, fail-closed errors. Every one is returned (never swallowed) and, when
|
|
// surfaced from the accept hook post-activation, halts finalization rather than
|
|
// accepting a checkpoint without valid post-quantum evidence.
|
|
var (
|
|
// ErrFinalityCertMissing — a checkpoint was finalized post-activation but no
|
|
// QuasarCert is available for it (the producer has not delivered one).
|
|
ErrFinalityCertMissing = errors.New("quasar: finality cert missing for checkpoint")
|
|
|
|
// ErrFinalityCertMismatch — a cert exists but does not bind the finalized
|
|
// block (chain/height/block/state mismatch). Anti-replay.
|
|
ErrFinalityCertMismatch = errors.New("quasar: finality cert does not bind the finalized block")
|
|
|
|
// ErrFinalityCertInvalid — the cert is bound correctly but failed consensus
|
|
// verification (policy, validator-set root, or a leg signature).
|
|
ErrFinalityCertInvalid = errors.New("quasar: finality cert failed verification")
|
|
|
|
// ErrValidatorSetUnavailable — no committed validator set for the cert's
|
|
// epoch (the verifier cannot resolve the per-leg verification keys).
|
|
ErrValidatorSetUnavailable = errors.New("quasar: validator set unavailable for epoch")
|
|
|
|
// ErrPolicyUnavailable — the gate has no configured policy.
|
|
ErrPolicyUnavailable = errors.New("quasar: policy unavailable")
|
|
|
|
// ErrPolicyMismatch — the cert's PolicyID is not the configured policy. A
|
|
// cert cannot select its own (weaker) posture.
|
|
ErrPolicyMismatch = errors.New("quasar: cert policy id does not match configured policy")
|
|
|
|
// ErrGateMisconfigured — the gate is activated at a checkpoint but has no
|
|
// cert store or validator provider. Fail closed rather than panic.
|
|
ErrGateMisconfigured = errors.New("quasar: gate activated but missing store or validator provider")
|
|
)
|