Vai al contenuto

Connessione Edge Subscriber (CLI)

Sottoscrizione CLI legacy — disattivata il 30 agosto 2026

Questa pagina è destinata agli utenti che utilizzano già la sottoscrizione CLI / seat onchain (doublezero-solana shreds pay). Questo sistema verrà disattivato il 30 agosto 2026.

Le nuove sottoscrizioni utilizzano il flusso tramite portale su Sottoscrivere agli shred (Edge).

Connettendomi a DoubleZero accetto i Termini di utilizzo di DoubleZero. Si prega di notare che i dati sono esclusivamente per uso interno e non possono essere ritrasmessi (vedi Sezione 2(e)).

Passaggio 1: Configurazione di DoubleZero

1. Completare la configurazione

Installa la Solana CLI.

Segui le istruzioni di configurazione per installare e configurare il client DoubleZero.

Se hai precedentemente configurato DoubleZero, assicurati di avere l'ultima versione della CLI Doublezero-Solana con sudo apt update && sudo apt install doublezero-solana

2. Configurare il firewall

Consenti il traffico GRE, BGP, PIM e shred.

iptables:

sudo iptables -A OUTPUT -p gre -j ACCEPT
sudo iptables -A INPUT -i doublezero1 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero1 -s 169.254.0.0/16 -d 169.254.0.0/16 -p tcp --dport 179 -j ACCEPT
sudo iptables -A OUTPUT -o doublezero1 -p pim -j ACCEPT
sudo iptables -A INPUT -i doublezero1 -p udp --dport 7733 -j ACCEPT
sudo iptables -A INPUT -i doublezero0 -p udp --dport 44880 -j ACCEPT

UFW:

sudo ufw allow proto gre from any to any
sudo ufw allow in on doublezero1 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow out on doublezero1 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow out on doublezero1 proto pim from any to any
sudo ufw allow in on doublezero1 to any port 7733 proto udp
sudo ufw allow in on doublezero0 to any port 44880 proto udp

3. Abilitare il Reconciler

Il reconciler monitora lo stato onchain e provisiona automaticamente i tunnel quando il tuo seat viene allocato. Non è abilitato per impostazione predefinita.

doublezero enable

Passaggio 2: Configurare il wallet

1. Creare un keypair Solana

La CLI doublezero-solana utilizza un keypair Solana standard per la gestione dei seat onchain. Se non ne hai uno:

solana-keygen new

Questo scrive su ~/.config/solana/id.json. Per utilizzare un percorso diverso, passa --keypair <path> a qualsiasi comando doublezero-solana.

Stampa l'indirizzo del tuo wallet:

solana address

2. Finanziare il wallet

Il tuo wallet necessita di due token:

  • SOL — per le commissioni delle transazioni Solana. Trasferisci SOL all'indirizzo del wallet stampato sopra.
  • USDC — per il finanziamento del seat. La CLI preleva dall'Associated Token Account (ATA) del tuo wallet per il mint USDC mainnet (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v).

Passaggio 3: Acquistare un seat

1. Trovare il dispositivo più vicino

Prima di acquistare un seat, identifica il dispositivo con la latenza più bassa dalla tua macchina:

doublezero latency

Annota il codice del dispositivo dal risultato con la latenza più bassa (es., <Device_Name>). Lo utilizzerai al momento dell'acquisto di un seat.

2. Verificare i prezzi

Visualizza i prezzi correnti dei dispositivi prima di impegnare fondi. I prezzi hanno due componenti: un prezzo base della metro e un premium per dispositivo. Puoi anche visualizzare prezzi e disponibilità qui.

Tutti i dispositivi:

doublezero-solana shreds price

Dispositivo specifico:

doublezero-solana shreds price --device-code <Device_Name>
doublezero-solana shreds price --device <PUBKEY>

Tutti i dispositivi in una metro:

doublezero-solana shreds price --metro <PUBKEY>

Colonne dell'output: Device Code, Metro Code, Metro Name, Status, Settled Seats, Available Seats, Base Price (USDC), Premium (USDC), Epoch Price (USDC).

Il prezzo per epoca è il costo totale per epoca per un seat su quel dispositivo (base + premium). Usa --wide per mostrare le pubkey complete, o --json per l'output in formato JSON.

3. Acquistare un seat

Acquista un seat con un singolo comando. Questo inizializza il tuo seat, finanzia l'escrow e richiede l'allocazione:

doublezero-solana shreds pay \
  --device-code <Device_Name> \
  --client-ip <Target_IP> \
  --amount <Cost_Of_Seat>

Parametri:

Flag Descrizione
--device <PUBKEY> Dispositivo target tramite chiave pubblica (mutuamente esclusivo con --device-code)
--device-code <CODE> Dispositivo target tramite codice leggibile (es., <Device_Name>)
--client-ip <IP> L'indirizzo IPv4 pubblico della tua macchina
--amount <USDC> USDC da finanziare (formato decimale, es. 100 = 100 USDC). Deve soddisfare il prezzo minimo per epoca.
--source-token-account <PUBKEY> Account sorgente USDC personalizzato (predefinito: ATA del tuo wallet)
--accept-partial-epoch Salta l'avviso di epoca rimanente (vedi sotto)
--fee-payer <PATH> Usa un wallet diverso per le commissioni delle transazioni SOL
--dry-run Simula la transazione senza eseguirla
--with-compute-unit-price <PRICE> Imposta un prezzo per compute unit per un'inclusione più rapida durante la congestione

Una volta allocato il tuo seat, il daemon stabilisce automaticamente il tunnel GRE. Verifica la tua connessione con:

doublezero status

Tempistica delle epoche

I seat vengono allocati per epoca Solana (~2 giorni). Se rimane meno del 10% dell'epoca corrente quando effettui il pagamento, la CLI avverte che il tuo seat verrà allocato immediatamente ma coprirà solo il resto dell'epoca corrente. Un pagamento separato verrà detratto dal tuo escrow quando inizia l'epoca successiva.

È consigliabile finanziare per più di 1 epoca alla volta per non perdere il tuo seat. Puoi controllare il tempo rimanente in un'epoca qui.

Puoi bypassare questo avviso con --accept-partial-epoch.

Mantieni il tuo escrow finanziato

Se il saldo del tuo escrow è inferiore al prezzo per epoca al momento del settlement, il tuo seat non verrà allocato, il tunnel verrà smantellato e perderai la tenure accumulata. La tenure determina la tua priorità per le epoche future — perderla significa competere nuovamente come nuovo arrivato.

Puoi sovraccaricare questo account per finanziare più epoche. Ogni settlement deduce il prezzo di un'epoca dal tuo escrow e il saldo rimanente viene riportato. Ad esempio, finanziare 5x il prezzo per epoca mantiene il tuo seat attivo per un massimo di 5 epoche senza rifinanziamento.

Per ricaricare il tuo escrow, esegui shreds pay di nuovo in qualsiasi momento:

doublezero-solana shreds pay \
  --device-code <Device_Name> \
  --client-ip <Target_IP> \
  --amount 500

Nota che il Target_IP deve essere un indirizzo IPv4 pubblico sulla macchina che riceverà gli shred. Puoi trovarlo eseguendo un comando come curl -4 ifconfig.me sulla macchina target.

Monitorare i seat

Questa sezione descrive come visualizzare i seat tramite la CLI. Puoi anche usare https://data.doublezero.xyz/api/v1/docs per monitorare i seat e gestire il tuo account escrow.

Visualizza i tuoi seat attivi e i saldi escrow:

Tutti i tuoi seat:

doublezero-solana shreds list

Filtra per dispositivo:

doublezero-solana shreds list --device-code <Device_Name>

Filtra per IP del client:

doublezero-solana shreds list --client-ip <Target_IP>

Filtra per wallet:

doublezero-solana shreds list --withdraw-authority <PUBKEY>

Colonne dell'output: Device Code, Client IP, Tenure, Balance (USDC), Est. Epochs Paid.

La colonna "Est. Epochs Paid" mostra quante epoche copre il tuo saldo attuale ai prezzi correnti. Se i prezzi cambiano, questa stima si aggiorna.

Ritirare seat ed escrow

Questo comando rilascia il tuo seat e chiude l'escrow. Ricevi un rimborso proporzionale per la porzione inutilizzata dell'epoca corrente, più qualsiasi saldo escrow rimanente, restituito al tuo wallet. Perdi il seat e qualsiasi tenure accumulata.

doublezero-solana shreds withdraw \
  --device-code <Device_Name> \
  --client-ip <Target_IP>

Puoi identificare il dispositivo tramite --device <PUBKEY> o --device-code <CODE>, come per gli altri comandi.

Per inviare il rimborso USDC a un account token diverso:

doublezero-solana shreds withdraw \
  --device-code <Device_Name> \
  --client-ip <Target_IP> \
  --refund-token-account <PUBKEY>

Questa operazione non può essere annullata. Dopo il ritiro, il tuo seat viene eliminato e la tenure viene azzerata.


Indirizzi shred (IP vs Porta)

I Leader Shred e i Retransmit Shred ad alto stake arriveranno sulla porta 7733, attraverso l'interfaccia doublezero1. L'interfaccia doublezero0 è per il traffico unicast. La porta 5765 è un monitor heartbeat degli shred publisher — non conterrà shred.

Per il consumo degli shred, l'indirizzo IP identifica lo stream multicast e la porta identifica il servizio UDP su quello stream. Tutti gli stream shred sotto utilizzano la porta UDP 7733 su doublezero1.

Puoi esaminare gli IP di qualsiasi gruppo multicast con:

doublezero multicast group list

Leader Shred

  • edge-solana-shreds: 233.84.178.1:7733

Root Shred

  • edge-solana-root: 233.84.178.16:7733

Retransmit Shred

  • edge-solana-retrans-eu: 233.84.178.12:7733
  • edge-solana-retrans-apac: 233.84.178.13:7733
  • edge-solana-retrans-amer: 233.84.178.14:7733

Header del tunnel GRE — XDP

Il traffico shred consegnato sulla rete è incapsulato in GRE. Potrebbe essere necessario rimuovere l'header GRE prima di alimentare i dati nella tua pipeline esistente (es. un deshredder basato su XDP).


Strumenti e dashboard

Edge Scoreboard

Lo Scoreboard effettua benchmark sulla velocità di consegna degli shred tra DoubleZero Edge e altri provider, utilizzando dati a livello di slot per confrontare le prestazioni in tempo reale. Usa questa dashboard per visualizzare i tassi di vittoria degli shred Edge rispetto ad altri provider. Puoi visualizzare i risultati solo per i leader shred, oltre al confronto del feed completo. Puoi anche approfondire per regione per vedere le prestazioni attese.

Edge Publishers

La metrica "Publishing Shreds" in alto a sinistra della dashboard mostra la percentuale totale del peso di stake di tutti i validatori Solana che pubblicano leader shred su DoubleZero Edge. Puoi vedere i dettagli per ogni publisher sulla rete.

Edge Subscribers, dispositivi e attività

Puoi facilmente cercare il tuo Client IP su questa pagina per i seat sottoscritti e visualizzarne lo stato. Clicca su sottoscrizioni specifiche dei seat per visualizzare lo storico dei pagamenti e l'attività. Puoi anche visualizzare i dispositivi disponibili nella pagina Dispositivi e tutta l'attività recente nella pagina Attività.

Documentazione API dati

Per l'accesso programmatico agli endpoint dei dati, consulta la documentazione API: https://data.doublezero.xyz/api/v1/docs.


Risoluzione dei problemi

Se riscontri un problema non trattato qui, contattaci attraverso il tuo canale esistente prima di cercare soluzioni alternative. Se non hai un canale, cerca su Discord e apri un ticket se necessario.

Assicurati che il tuo client sia aggiornato:

Esegui: sudo apt update && sudo apt install doublezero-solana

Saldo escrow insufficiente

Se il saldo del tuo escrow è inferiore al prezzo per epoca al momento del settlement, il seat non viene allocato, il tunnel viene smantellato e la tenure viene persa. Ricarica con shreds pay prima del prossimo settlement.

Seat non allocato dopo il pagamento

  • Potresti aver pagato tardi nell'epoca — il seat diventa effettivo nell'epoca successiva.
  • Tutti i seat sul dispositivo potrebbero essere occupati da incumbent con tenure più alta. Controlla i seat disponibili con shreds price.
  • Se hai effettuato il ritiro prima del settlement, il seat non era idoneo.

Il tunnel non si stabilisce

  1. Verifica che il daemon sia in esecuzione: sudo systemctl status doublezerod
  2. Verifica che il reconciler sia abilitato: doublezero enable
  3. Verifica che le regole del firewall siano in atto (GRE, BGP, PIM, traffico shred su doublezero1, porta 44880 su doublezero0)
  4. Verifica che il tuo seat sia attivo per l'epoca corrente: doublezero-solana shreds list
  5. Controlla lo stato della tua connessione: doublezero status

L'IP del client del daemon viene rilevato automaticamente dall'IP pubblico del tuo host — verifica che corrisponda al --client-ip utilizzato nei tuoi comandi per il seat.

Avviso prompt dell'epoca

La CLI avverte quando rimane meno del 10% dell'epoca. Le tue opzioni sono:

  • Accettare con --accept-partial-epoch se vuoi il seat immediatamente
  • Attendere l'epoca successiva per ottenere una copertura completa dell'epoca

"Amount is below the current price"

Il comando pay valida il tuo importo rispetto al prezzo minimo per epoca (base metro + premium dispositivo). Usa shreds price per controllare i prezzi correnti e aumenta il tuo importo.

"Multicast user already exists"

Hai già una sottoscrizione attiva attraverso un percorso diverso. Disconnettiti prima con doublezero disconnect, poi riprova shreds pay.