Expand description
Payment verification system for ant-node.
This module implements the payment verification strategy:
- Check LRU cache for already-verified data
- Require and verify EVM/Arbitrum payment for new data
§Default Policy
Production nodes require payment by default.
- EVM verification is always on — there is no way to disable it
- For unit tests, pre-populate the cache via
PaymentVerifier::cache_insert()
§Architecture
PUT request received
│
▼
┌─────────────────────┐
│ Check LRU cache │
└─────────┬───────────┘
│
┌──────┴──────┐
│ │
HIT MISS
│ │
▼ ▼
Store (paid) Require EVM payment§Payment Flow
All new data requires EVM payment:
- Client requests a quote from the node
- Node generates
PaymentQuotewith ML-DSA-65 signature - Client pays on Arbitrum via
PaymentVault.payForQuotes() - Client sends PUT with
ProofOfPayment - Node verifies on-chain payment and stores data
Re-exports§
pub use metrics::QuotingMetricsTracker;pub use pricing::calculate_price;pub use quote::wire_ml_dsa_signer;pub use quote::QuoteGenerator;pub use quote::XorName;pub use wallet::is_valid_address;pub use wallet::parse_rewards_address;pub use wallet::WalletConfig;
Modules§
- metrics
- Quoting metrics tracking for ant-node.
- pricing
- Quadratic pricing with a baseline floor for ant-node (Phase 1 recalibration).
- proof
- Payment proof re-exports from
ant_protocol. - quote
- Payment quote generation for ant-node.
- single_
node SingleNodepayment re-exports fromant_protocol.- wallet
- EVM wallet management for receiving payments.
Structs§
- Cache
Stats - Cache statistics for monitoring.
- EvmVerifier
Config - Configuration for EVM payment verification.
- Payment
Proof - A payment proof that includes both the quote-based proof and on-chain tx hashes.
- Payment
Verifier - Main payment verifier for ant-node.
- Payment
Verifier Config - Configuration for the payment verifier.
- Single
Node Payment - Single node payment structure for a chunk.
- Verified
Cache - LRU cache for verified
XorNamevalues.
Enums§
- Payment
Status - Status returned by payment verification.
- Proof
Type - The detected type of a payment proof.
Constants§
- MAX_
PAYMENT_ PROOF_ SIZE_ BYTES - Maximum allowed size for a payment proof in bytes (256 KB).
- MIN_
PAYMENT_ PROOF_ SIZE_ BYTES - Minimum allowed size for a payment proof in bytes.
Functions§
- deserialize_
merkle_ proof - Deserialize proof bytes as a
MerklePaymentProof. - deserialize_
proof - Deserialize proof bytes from the
PaymentProofformat (single-node). - detect_
proof_ type - Detect the proof type from the first byte (version tag).
- serialize_
merkle_ proof - Serialize a
MerklePaymentProofwith the version tag prefix. - serialize_
single_ node_ proof - Serialize a
PaymentProof(single-node) with the version tag prefix. - verify_
merkle_ candidate_ signature - Verify a
MerklePaymentCandidateNode’s ML-DSA-65 signature. - verify_
quote_ content - Verify that a payment quote’s content address matches the expected address.
- verify_
quote_ signature - Verify a payment quote’s ML-DSA-65 signature.