Conexión de Suscriptor Edge
Al conectarme a DoubleZero acepto los Términos de Uso de DoubleZero. Tenga en cuenta que los datos son solo para sus fines internos y no pueden ser retransmitidos (consulte la Sección 2(e)).
Paso 1: Configuración de DoubleZero
1. Completar la Configuración
Instale la CLI de Solana.
Siga las instrucciones de configuración para instalar y configurar el cliente de DoubleZero.
Si ha configurado DoubleZero previamente, asegúrese de tener la última versión de la CLI de Doublezero-Solana con sudo apt update && sudo apt install doublezero-solana
2. Configurar el Firewall
Permita el tráfico de GRE, BGP, PIM y shreds.
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. Habilitar el Reconciliador
El reconciliador monitorea el estado onchain y aprovisiona túneles automáticamente cuando se asigna su asiento. No está habilitado por defecto.
doublezero enable
Paso 2: Configurar Su Billetera
1. Crear un Par de Claves de Solana
La CLI de doublezero-solana utiliza un par de claves estándar de Solana para la gestión de asientos onchain. Si no tiene uno:
solana-keygen new
Esto escribe en ~/.config/solana/id.json. Para usar una ruta diferente, pase --keypair <path> a cualquier comando de doublezero-solana.
Imprima la dirección de su billetera:
solana address
2. Fondear Su Billetera
Su billetera necesita dos tokens:
- SOL — para las tarifas de transacción de Solana. Transfiera SOL a la dirección de billetera impresa anteriormente.
- USDC — para el fondeo de asientos. La CLI extrae fondos de la Cuenta de Token Asociada (ATA) de su billetera para el mint de USDC de mainnet (
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v).
Paso 3: Comprar un Asiento
1. Encontrar Su Dispositivo Más Cercano
Antes de comprar un asiento, identifique el dispositivo con la latencia más baja desde su máquina:
doublezero latency
Anote el código del dispositivo del resultado con la latencia más baja (por ejemplo, <Device_Name>). Lo usará al comprar un asiento.
2. Verificar Precios
Consulte los precios actuales del dispositivo antes de comprometer fondos. Los precios tienen dos componentes: un precio base de metro y una prima por dispositivo. También puede ver precios y disponibilidad aquí.
Todos los dispositivos:
doublezero-solana shreds price
Dispositivo específico:
doublezero-solana shreds price --device-code <Device_Name>
doublezero-solana shreds price --device <PUBKEY>
Todos los dispositivos en un metro:
doublezero-solana shreds price --metro <PUBKEY>
Columnas de salida: Device Code, Metro Code, Metro Name, Status, Settled Seats, Available Seats, Base Price (USDC), Premium (USDC), Epoch Price (USDC).
El precio por época es el costo total por época para un asiento en ese dispositivo (base + prima). Use --wide para mostrar las claves públicas completas, o --json para salida en formato JSON.
3. Comprar un Asiento
Compre un asiento con un solo comando. Esto inicializa su asiento, fondea el depósito en garantía y solicita la asignación:
doublezero-solana shreds pay \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--amount <Cost_Of_Seat>
Parámetros:
| Flag | Descripción |
|---|---|
--device <PUBKEY> |
Dispositivo objetivo por clave pública (mutuamente excluyente con --device-code) |
--device-code <CODE> |
Dispositivo objetivo por código legible (por ejemplo, <Device_Name>) |
--client-ip <IP> |
Dirección IPv4 pública de su máquina |
--amount <USDC> |
USDC a fondear (formato decimal, por ejemplo 100 = 100 USDC). Debe cumplir con el precio mínimo por época. |
--source-token-account <PUBKEY> |
Cuenta de origen de USDC personalizada (por defecto usa la ATA de su billetera) |
--accept-partial-epoch |
Omitir la advertencia de época restante (ver más abajo) |
--fee-payer <PATH> |
Usar una billetera diferente para las tarifas de transacción en SOL |
--dry-run |
Simular la transacción sin ejecutarla |
--with-compute-unit-price <PRICE> |
Establecer un precio de unidad de cómputo para una inclusión más rápida durante congestión |
Una vez que su asiento esté asignado, el daemon establece el túnel GRE automáticamente. Verifique su conexión con:
doublezero status
Temporización de Épocas
Los asientos se asignan por época de Solana (~2 días). Si queda menos del 10% de la época actual cuando paga, la CLI advierte que su asiento será asignado inmediatamente pero solo cubre el resto de la época actual. Se deducirá un pago separado de su depósito en garantía cuando comience la siguiente época.
Es recomendable fondear para más de 1 época a la vez para no perder su asiento. Puede verificar el tiempo restante en una época aquí.
Puede omitir esta advertencia con --accept-partial-epoch.
Mantenga Su Depósito en Garantía Fondeado
Si el saldo de su depósito en garantía está por debajo del precio de la época en el momento de la liquidación, su asiento no será asignado, el túnel será desactivado y perderá su antigüedad acumulada. La antigüedad determina su prioridad para épocas futuras — perderla significa que compite como un recién llegado nuevamente.
Puede sobrefinanciar esta cuenta para fondear múltiples épocas. Cada liquidación deduce el precio de una época de su depósito en garantía, y el saldo restante se mantiene. Por ejemplo, fondear 5 veces el precio por época mantiene su asiento activo hasta por 5 épocas sin necesidad de re-fondear.
Para recargar su depósito en garantía, ejecute shreds pay nuevamente en cualquier momento:
doublezero-solana shreds pay \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--amount 500
Tenga en cuenta que la Target_IP debe ser una dirección IPv4 pública en la máquina que recibirá los shreds. Puede encontrarla ejecutando un comando como curl -4 ifconfig.me en la máquina de destino.
Monitorear Asientos
Esta sección detalla cómo ver los asientos a través de la CLI. También puede usar https://data.doublezero.xyz/api/v1/docs para monitorear asientos y ayudar en la gestión de su cuenta de depósito en garantía.
Vea sus asientos activos y saldos de depósito en garantía:
Todos sus asientos:
doublezero-solana shreds list
Filtrar por dispositivo:
doublezero-solana shreds list --device-code <Device_Name>
Filtrar por IP del cliente:
doublezero-solana shreds list --client-ip <Target_IP>
Filtrar por billetera:
doublezero-solana shreds list --withdraw-authority <PUBKEY>
Columnas de salida: Device Code, Client IP, Tenure, Balance (USDC), Est. Epochs Paid.
La columna "Est. Epochs Paid" muestra cuántas épocas cubre su saldo actual a los precios actuales. Si los precios cambian, esta estimación se ajusta.
Retirar Fondos
Cierre su depósito en garantía y reembolse los USDC restantes a su billetera:
doublezero-solana shreds withdraw \
--device-code <Device_Name> \
--client-ip <Target_IP>
Puede identificar el dispositivo por --device <PUBKEY> o --device-code <CODE>, igual que en otros comandos.
Para enviar el reembolso a una cuenta de token diferente:
doublezero-solana shreds withdraw \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--refund-token-account <PUBKEY>
Retirar significa que pierde su asiento y la antigüedad acumulada.
Direcciones de Shreds (IP vs Puerto)
Los Shreds de Líder y los Shreds de Retransmisión de alto stake llegarán por el puerto 7733, a través de la interfaz doublezero1. La interfaz doublezero0 es para tráfico unicast. El puerto 5765 es un monitor de heartbeat de los publicadores de shreds — no contendrá shreds.
Para el consumo de shreds, la dirección IP identifica el flujo multicast y el puerto identifica el servicio UDP en ese flujo.
Todos los flujos de shreds a continuación usan el puerto UDP 7733 en doublezero1.
Puede examinar las IPs de cualquier grupo multicast con:
doublezero multicast group list
Shreds de Líder
edge-solana-shreds:233.84.178.1:7733
Shreds de Root
edge-solana-root:233.84.178.16:7733
Shreds de Retransmisión
edge-solana-retrans-eu:233.84.178.12:7733edge-solana-retrans-apac:233.84.178.13:7733edge-solana-retrans-amer:233.84.178.14:7733
Encabezado de Túnel GRE — XDP
El tráfico de shreds entregado a través de la red está encapsulado en GRE. Es posible que necesite eliminar el encabezado GRE antes de alimentar los datos en su pipeline existente (por ejemplo, un deshredder basado en XDP).
Herramientas y Paneles
Tabla de Posiciones Edge
La Tabla de Posiciones compara la velocidad de entrega de shreds entre DoubleZero Edge y otros proveedores, utilizando datos a nivel de slot para comparar el rendimiento en tiempo real. Use este panel para ver una vista de las tasas de victorias de los shreds de Edge contra otros proveedores. Puede ver resultados solo para shreds de líder, además de la comparación del feed completo. También puede profundizar por región para ver el rendimiento esperado.
Publicadores Edge
La métrica "Publishing Shreds" en la parte superior izquierda del panel muestra el porcentaje total de peso de stake de todos los validadores de Solana que publican shreds de líder en DoubleZero Edge. Puede ver detalles de cada publicador en la red.
Suscriptores, Dispositivos y Actividad Edge
Puede buscar fácilmente su IP de Cliente en esta página para los asientos suscritos y ver el estado. Haga clic en suscripciones de asientos específicas para ver el historial de pagos y la actividad. También puede ver los dispositivos disponibles en la página de Dispositivos y toda la actividad reciente en la página de Actividad.
Documentación de la API de Datos
Para acceso programático a los endpoints de datos, consulte la documentación de la API: https://data.doublezero.xyz/api/v1/docs.
Solución de Problemas
Si encuentra un problema no cubierto aquí, por favor comuníquese a través de su canal existente antes de buscar soluciones alternativas. Si no tiene un canal, busque en Discord y abra un ticket si es necesario.
Asegúrese de que su Cliente esté actualizado:
Ejecute: sudo apt update && sudo apt install doublezero-solana
Saldo insuficiente en el depósito en garantía
Si el saldo de su depósito en garantía está por debajo del precio de la época en el momento de la liquidación, el asiento no se asigna, el túnel se desactiva y se pierde la antigüedad. Recargue con shreds pay antes de la próxima liquidación.
Asiento no asignado después de pagar
- Es posible que haya pagado tarde en la época — el asiento se activa en la próxima época.
- Todos los asientos en el dispositivo pueden estar ocupados por titulares con mayor antigüedad. Verifique los asientos disponibles con
shreds price. - Si retiró fondos antes de la liquidación, el asiento no era elegible.
El túnel no se establece
- Verifique que el daemon esté ejecutándose:
sudo systemctl status doublezerod - Verifique que el reconciliador esté habilitado:
doublezero enable - Verifique que las reglas de firewall estén en su lugar (GRE, BGP, PIM, tráfico de shreds en
doublezero1, puerto 44880 endoublezero0) - Verifique que su asiento esté activo para la época actual:
doublezero-solana shreds list - Verifique el estado de su conexión:
doublezero status
La IP del cliente del daemon se descubre automáticamente a partir de la IP pública de su host — verifique que coincida con la --client-ip utilizada en sus comandos de asiento.
Advertencia de época
La CLI advierte cuando queda menos del 10% de la época. Sus opciones son:
- Aceptar con
--accept-partial-epochsi desea el asiento inmediatamente - Esperar a la próxima época para obtener cobertura completa de una época
"Amount is below the current price"
El comando pay valida su monto contra el precio mínimo por época (base del metro + prima del dispositivo). Use shreds price para verificar los precios actuales y aumente su monto.
"Multicast user already exists"
Ya tiene una suscripción activa a través de una ruta diferente. Desconéctese primero con doublezero disconnect, luego vuelva a intentar shreds pay.