엣지 구독자 연결 (CLI)
레거시 CLI 구독 — 2026년 8월 30일 폐지 예정
이 페이지는 이미 CLI / 온체인 시트 구독(doublezero-solana shreds pay)을 사용 중인 사용자를 위한 것입니다. 해당 시스템은 2026년 8월 30일에 폐지됩니다.
새로운 구독은 슈레드 구독 (Edge)의 포털 흐름을 사용합니다.
DoubleZero에 연결함으로써 DoubleZero 이용약관에 동의합니다. 데이터는 내부 목적으로만 사용 가능하며 재전송이 불가합니다(섹션 2(e) 참조).
1단계: DoubleZero 설정
1. 설정 완료
Solana CLI를 설치합니다.
설정 지침에 따라 DoubleZero 클라이언트를 설치하고 구성합니다.
이전에 DoubleZero를 설정한 적이 있다면 sudo apt update && sudo apt install doublezero-solana 명령으로 최신 Doublezero-Solana CLI가 설치되어 있는지 확인하세요.
2. 방화벽 구성
GRE, BGP, PIM 및 슈레드 트래픽을 허용합니다.
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. 리콘실러 활성화
리콘실러는 온체인 상태를 모니터링하고 시트가 할당되면 자동으로 터널을 프로비저닝합니다. 기본적으로 활성화되어 있지 않습니다.
doublezero enable
2단계: 지갑 설정
1. Solana 키페어 생성
doublezero-solana CLI는 온체인 시트 관리를 위해 표준 Solana 키페어를 사용합니다. 키페어가 없는 경우:
solana-keygen new
이 명령은 ~/.config/solana/id.json에 파일을 생성합니다. 다른 경로를 사용하려면 doublezero-solana 명령에 --keypair <path>를 전달하세요.
지갑 주소를 출력합니다:
solana address
2. 지갑에 자금 입금
지갑에 두 가지 토큰이 필요합니다:
- SOL — Solana 트랜잭션 수수료용. 위에서 출력된 지갑 주소로 SOL을 전송합니다.
- USDC — 시트 자금용. CLI는 메인넷 USDC 민트(
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)에 대한 지갑의 Associated Token Account(ATA)에서 자금을 인출합니다.
3단계: 시트 구매
1. 가장 가까운 장치 찾기
시트를 구매하기 전에 사용자 머신에서 가장 낮은 지연 시간을 가진 장치를 확인합니다:
doublezero latency
가장 낮은 지연 시간 결과에서 장치 코드를 메모합니다(예: <Device_Name>). 시트 구매 시 이 코드를 사용합니다.
2. 가격 확인
자금을 투입하기 전에 현재 장치 가격을 확인합니다. 가격은 기본 메트로 가격과 장치별 프리미엄 두 가지 구성 요소로 이루어져 있습니다. 가격 및 가용성은 여기에서도 확인할 수 있습니다.
전체 장치:
doublezero-solana shreds price
특정 장치:
doublezero-solana shreds price --device-code <Device_Name>
doublezero-solana shreds price --device <PUBKEY>
메트로 내 전체 장치:
doublezero-solana shreds price --metro <PUBKEY>
출력 열: Device Code, Metro Code, Metro Name, Status, Settled Seats, Available Seats, Base Price (USDC), Premium (USDC), Epoch Price (USDC).
에포크 가격은 해당 장치의 시트당 에포크 총 비용(기본 + 프리미엄)입니다. 전체 공개키를 표시하려면 --wide를, JSON 출력을 원하면 --json을 사용합니다.
3. 시트 구매
단일 명령으로 시트를 구매합니다. 이 명령은 시트를 초기화하고 에스크로에 자금을 입금하며 할당을 요청합니다:
doublezero-solana shreds pay \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--amount <Cost_Of_Seat>
매개변수:
| 플래그 | 설명 |
|---|---|
--device <PUBKEY> |
공개키로 대상 장치 지정 (--device-code와 상호 배타적) |
--device-code <CODE> |
사람이 읽을 수 있는 코드로 대상 장치 지정 (예: <Device_Name>) |
--client-ip <IP> |
사용자 머신의 공개 IPv4 주소 |
--amount <USDC> |
입금할 USDC (소수점 형식, 예: 100 = 100 USDC). 최소 에포크 가격을 충족해야 합니다. |
--source-token-account <PUBKEY> |
사용자 정의 USDC 소스 계정 (기본값은 지갑의 ATA) |
--accept-partial-epoch |
에포크 잔여 시간 경고 건너뛰기 (아래 참조) |
--fee-payer <PATH> |
SOL 트랜잭션 수수료에 다른 지갑 사용 |
--dry-run |
트랜잭션을 실행하지 않고 시뮬레이션 |
--with-compute-unit-price <PRICE> |
혼잡 시 더 빠른 포함을 위해 컴퓨트 유닛 가격 설정 |
시트가 할당되면 데몬이 자동으로 GRE 터널을 설정합니다. 다음 명령으로 연결을 확인하세요:
doublezero status
에포크 타이밍
시트는 Solana 에포크(약 2일) 단위로 할당됩니다. 결제 시 현재 에포크의 10% 미만이 남아 있으면 CLI가 시트가 즉시 할당되지만 현재 에포크의 나머지 기간만 커버한다는 경고를 표시합니다. 다음 에포크가 시작되면 에스크로에서 별도의 결제가 차감됩니다.
시트를 잃지 않으려면 한 번에 1 에포크 이상을 입금하는 것이 좋습니다. 현재 에포크의 남은 시간은 여기에서 확인할 수 있습니다.
--accept-partial-epoch를 사용하여 이 경고를 건너뛸 수 있습니다.
에스크로 잔액 유지
정산 시 에스크로 잔액이 에포크 가격보다 낮으면 시트가 할당되지 않고, 터널이 해제되며, 누적된 테뉴어를 잃게 됩니다. 테뉴어는 향후 에포크에서의 우선순위를 결정하므로, 테뉴어를 잃으면 신규 참여자로서 다시 경쟁해야 합니다.
이 계정에 초과 입금하여 여러 에포크를 충당할 수 있습니다. 각 정산 시 에스크로에서 에포크 1회분의 가격이 차감되며, 잔여 잔액은 이월됩니다. 예를 들어, 에포크당 가격의 5배를 입금하면 재입금 없이 최대 5 에포크 동안 시트를 유지할 수 있습니다.
에스크로를 추가 충전하려면 언제든지 shreds pay를 다시 실행하세요:
doublezero-solana shreds pay \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--amount 500
Target_IP는 슈레드를 수신할 머신의 공개 IPv4 주소여야 합니다. 대상 머신에서 curl -4 ifconfig.me와 같은 명령을 실행하여 확인할 수 있습니다.
시트 모니터링
이 섹션에서는 CLI를 통해 시트를 조회하는 방법을 설명합니다. https://data.doublezero.xyz/api/v1/docs를 사용하여 시트를 모니터링하고 에스크로 계정 관리를 지원받을 수도 있습니다.
활성 시트 및 에스크로 잔액을 조회합니다:
전체 시트:
doublezero-solana shreds list
장치별 필터:
doublezero-solana shreds list --device-code <Device_Name>
클라이언트 IP별 필터:
doublezero-solana shreds list --client-ip <Target_IP>
지갑별 필터:
doublezero-solana shreds list --withdraw-authority <PUBKEY>
출력 열: Device Code, Client IP, Tenure, Balance (USDC), Est. Epochs Paid.
"Est. Epochs Paid" 열은 현재 가격 기준으로 현재 잔액이 커버하는 에포크 수를 보여줍니다. 가격이 변경되면 이 추정치도 조정됩니다.
시트 및 에스크로 출금
이 명령은 시트를 해제하고 에스크로를 닫습니다. 현재 에포크의 미사용 부분에 대한 비례 환불과 잔여 에스크로 잔액이 지갑으로 반환됩니다. 시트와 누적된 테뉴어를 잃게 됩니다.
doublezero-solana shreds withdraw \
--device-code <Device_Name> \
--client-ip <Target_IP>
다른 명령과 마찬가지로 --device <PUBKEY> 또는 --device-code <CODE>로 장치를 식별할 수 있습니다.
USDC 환불을 다른 토큰 계정으로 보내려면:
doublezero-solana shreds withdraw \
--device-code <Device_Name> \
--client-ip <Target_IP> \
--refund-token-account <PUBKEY>
이 작업은 되돌릴 수 없습니다. 출금 후 시트가 사라지고 테뉴어가 초기화됩니다.
슈레드 주소 (IP 및 포트)
리더 슈레드와 높은 스테이크의 재전송 슈레드는 doublezero1 인터페이스를 통해 포트 7733으로 수신됩니다. doublezero0 인터페이스는 유니캐스트 트래픽용입니다. 포트 5765는 슈레드 퍼블리셔의 하트비트 모니터로, 슈레드가 포함되지 않습니다.
슈레드 수신 시 IP 주소는 멀티캐스트 스트림을 식별하고 포트는 해당 스트림의 UDP 서비스를 식별합니다.
아래의 모든 슈레드 스트림은 doublezero1에서 UDP 포트 7733을 사용합니다.
다음 명령으로 멀티캐스트 그룹의 IP를 확인할 수 있습니다:
doublezero multicast group list
리더 슈레드
edge-solana-shreds:233.84.178.1:7733
루트 슈레드
edge-solana-root:233.84.178.16:7733
재전송 슈레드
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
GRE 터널 헤더 — XDP
네트워크를 통해 전달되는 슈레드 트래픽은 GRE 캡슐화되어 있습니다. 기존 파이프라인(예: XDP 기반 디슈레더)에 데이터를 전달하기 전에 GRE 헤더를 제거해야 할 수 있습니다.
도구 및 대시보드
Edge 스코어보드
스코어보드는 슬롯 수준 데이터를 사용하여 DoubleZero Edge와 다른 제공자 간의 슈레드 전달 속도를 벤치마킹하고 실시간으로 성능을 비교합니다. 이 대시보드를 사용하여 다른 제공자 대비 Edge 슈레드의 승률을 확인하세요. 리더 슈레드만의 결과뿐만 아니라 전체 피드 비교도 볼 수 있습니다. 또한 지역별로 드릴다운하여 예상 성능을 확인할 수 있습니다.
Edge 퍼블리셔
대시보드 왼쪽 상단의 "Publishing Shreds" 지표는 DoubleZero Edge에서 리더 슈레드를 게시하는 모든 Solana 밸리데이터의 총 스테이크 가중치 비율을 보여줍니다. 네트워크의 각 퍼블리셔에 대한 세부 정보를 확인할 수 있습니다.
Edge 구독자, 장치 및 활동
이 페이지에서 클라이언트 IP를 쉽게 검색하여 구독된 시트와 상태를 확인할 수 있습니다. 특정 시트 구독을 클릭하여 결제 이력과 활동을 조회할 수 있습니다. 또한 장치 페이지에서 사용 가능한 장치를, 활동 페이지에서 최근 활동을 확인할 수 있습니다.
데이터 API 문서
데이터 엔드포인트에 대한 프로그래밍 방식 접근은 API 문서를 참조하세요: https://data.doublezero.xyz/api/v1/docs.
문제 해결
여기에서 다루지 않는 문제가 발생하면 해결 방법을 시도하기 전에 기존 채널을 통해 문의해 주세요. 채널이 없는 경우 Discord에서 검색하고 필요시 티켓을 열어 주세요.
클라이언트가 최신 버전인지 확인:
실행: sudo apt update && sudo apt install doublezero-solana
에스크로 잔액 부족
정산 시 에스크로 잔액이 에포크 가격보다 낮으면 시트가 할당되지 않고, 터널이 해제되며, 테뉴어를 잃게 됩니다. 다음 정산 전에 shreds pay로 충전하세요.
결제 후 시트가 할당되지 않음
- 에포크 후반에 결제했을 수 있습니다 — 시트는 다음 에포크부터 적용됩니다.
- 해당 장치의 모든 시트가 더 높은 테뉴어를 가진 기존 사용자에 의해 점유되었을 수 있습니다.
shreds price로 사용 가능한 시트를 확인하세요. - 정산 전에 출금했다면 시트가 자격을 갖추지 못합니다.
터널이 연결되지 않음
- 데몬이 실행 중인지 확인:
sudo systemctl status doublezerod - 리콘실러가 활성화되어 있는지 확인:
doublezero enable - 방화벽 규칙이 설정되어 있는지 확인 (
doublezero1의 GRE, BGP, PIM, 슈레드 트래픽,doublezero0의 포트 44880) - 현재 에포크에 시트가 활성 상태인지 확인:
doublezero-solana shreds list - 연결 상태 확인:
doublezero status
데몬의 클라이언트 IP는 호스트의 공개 IP에서 자동으로 검색됩니다 — 시트 명령에서 사용한 --client-ip와 일치하는지 확인하세요.
에포크 경고 프롬프트
에포크의 10% 미만이 남았을 때 CLI가 경고를 표시합니다. 선택지:
- 즉시 시트를 원하면
--accept-partial-epoch로 수락 - 전체 에포크 커버리지를 받으려면 다음 에포크까지 대기
"금액이 현재 가격보다 낮습니다"
pay 명령은 최소 에포크 가격(메트로 기본 + 장치 프리미엄)에 대해 금액을 검증합니다. shreds price로 현재 가격을 확인하고 금액을 늘리세요.
"멀티캐스트 사용자가 이미 존재합니다"
다른 경로를 통해 이미 활성 구독이 있습니다. 먼저 doublezero disconnect로 연결을 해제한 후 shreds pay를 다시 시도하세요.