콘텐츠로 이동

DoubleZero 설정 방법

용어 안내

DoubleZero가 처음이신가요? doublezerod, IBRL, DZD 등의 용어 정의는 용어집을 참조하세요.

DoubleZero에 연결함으로써 DoubleZero 서비스 약관에 동의합니다

사전 요구 사항

Warning

검증자의 경우: DoubleZero는 컨테이너가 아닌 검증자 호스트에 직접 설치해야 합니다.

  • 공인 IP 주소가 있는 인터넷 연결 (NAT 없음)
  • x86_64 서버
  • 지원 OS: Ubuntu 22.04+ 또는 Debian 11+, 또는 Rocky Linux / RHEL 9+
  • DoubleZero를 실행할 서버에 대한 Root 또는 sudo 권한
  • 선택 사항이지만 유용함: 디버깅을 위한 jq 및 curl

DoubleZero에 연결하기

DoubleZero Testnet과 DoubleZero Mainnet-Beta는 물리적으로 별도의 네트워크입니다. 설치 시 적절한 네트워크를 선택하세요.

DoubleZero에 온보딩할 때 DoubleZero ID라는 공개 키로 표현되는 DoubleZero 신원을 생성하게 됩니다. 이 키는 DoubleZero가 사용자의 머신을 인식하는 방법의 일부입니다.

1. DoubleZero 패키지 설치

현재 버전

패키지 Mainnet-Beta Testnet
doublezero MAINNET_CLIENT_VERSION TESTNET_CLIENT_VERSION

운영 체제에 따라 다음 단계를 따르세요:

Ubuntu / Debian

Mainnet-Beta의 현재 권장 배포 방법:

curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero

Testnet의 현재 권장 배포 방법:

curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.deb.sh | sudo -E bash
sudo apt-get install doublezero

Rocky Linux / RHEL

Mainnet-Beta의 현재 권장 배포 방법:

curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.rpm.sh | sudo -E bash
sudo yum install doublezero

Testnet의 현재 권장 배포 방법:

curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero-testnet/setup.rpm.sh | sudo -E bash
sudo yum install doublezero

기존 사용자 전용: 패키지를 Testnet에서 Mainnet-Beta로 또는 Mainnet-Beta에서 Testnet으로 변경

위의 패키지 저장소 중 하나에서 설치하면 DoubleZero Testnet 또는 DoubleZero Mainnet Beta에 특화됩니다. 네트워크를 전환하는 경우 이전에 설치된 패키지 저장소를 제거하고 대상 저장소로 업데이트해야 합니다.

이 예제는 Testnet에서 Mainnet-Beta로의 마이그레이션을 설명합니다.

Mainnet-Beta에서 Testnet으로 이동하는 경우에도 동일한 단계를 수행할 수 있으며, 3단계를 위의 Testnet 설치 명령으로 대체하면 됩니다.

  1. 기존 저장소 파일 찾기

    먼저 시스템에서 기존 DoubleZero 저장소 구성 파일을 찾으세요:

    find /etc/apt | grep doublezero

    find /usr/share/keyrings/ | grep doublezero

  2. 기존 저장소 파일 제거

    이전 단계에서 찾은 기존 저장소 파일을 제거합니다. 예시:

    sudo rm /etc/apt/sources.list.d/malbeclabs-doublezero.list
    sudo rm /usr/share/keyrings/malbeclabs-doublezero-archive-keyring.gpg
    
  3. 새 저장소에서 설치

    새 Mainnet-Beta 저장소를 추가하고 최신 패키지를 설치합니다:

    curl -1sLf https://dl.cloudsmith.io/public/malbeclabs/doublezero/setup.deb.sh | sudo -E bash
    sudo apt-get install doublezero=<current_recomended_version_above>
    

doublezerod 상태 확인

패키지가 설치된 후 새로운 systemd 유닛이 설치, 활성화 및 시작됩니다. 상태를 확인하려면 다음을 실행하세요:

sudo systemctl status doublezerod

GRE 및 BGP를 위한 방화벽 구성

DoubleZero는 GRE 터널링(IP 프로토콜 47)과 BGP 라우팅(링크-로컬 주소의 tcp/179)을 사용합니다. 방화벽에서 이러한 프로토콜을 허용하세요:

iptables를 통해 GRE 및 BGP 허용:

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

또는 UFW를 통해 GRE 및 BGP 허용:

sudo ufw allow proto gre from any to any
sudo ufw allow in on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp
sudo ufw allow out on doublezero0 from 169.254.0.0/16 to 169.254.0.0/16 port 179 proto tcp

2. 새 DoubleZero 신원 생성

다음 명령으로 서버에서 DoubleZero 신원을 생성하세요:

doublezero keygen

Info

사용하고 싶은 기존 ID가 있는 경우 다음 선택적 단계를 따를 수 있습니다.

doublezero 구성 디렉터리 생성

mkdir -p ~/.config/doublezero

DoubleZero에 사용할 id.json을 doublezero 구성 디렉터리에 복사하거나 링크합니다.

sudo cp </path/to/id.json> ~/.config/doublezero/

3. 서버의 DoubleZero 신원 확인

DoubleZero 신원을 확인합니다. 이 신원은 사용자의 머신과 DoubleZero 간의 연결을 생성하는 데 사용됩니다.

doublezero address

출력:

YourDoubleZeroAddress11111111111111111111111111111

4. doublezerod가 DZ 장치를 발견했는지 확인

연결하기 전에 doublezerod가 사용 가능한 모든 DZ testnet 스위치를 발견하고 핑했는지 확인하세요:

doublezero latency

샘플 출력:

$ doublezero latency
 pubkey                                       | name      | ip             | min      | max      | avg      | reachable
 96AfeBT6UqUmREmPeFZxw6PbLrbfET51NxBFCCsVAnek | la2-dz01  | 207.45.216.134 |   0.38ms |   0.45ms |   0.42ms | true
 CCTSmqMkxJh3Zpa9gQ8rCzhY7GiTqK7KnSLBYrRriuan | ny5-dz01  | 64.86.249.22   |  68.81ms |  68.87ms |  68.85ms | true
 BX6DYCzJt3XKRc1Z3N8AMSSqctV6aDdJryFMGThNSxDn | ty2-dz01  | 180.87.154.78  | 112.16ms | 112.25ms | 112.22ms | true
 55tfaZ1kRGxugv7MAuinXP4rHATcGTbNyEKrNsbuVLx2 | ld4-dz01  | 195.219.120.66 | 138.15ms | 138.21ms | 138.17ms | true
 3uGKPEjinn74vd9LHtC4VJvAMAZZgU9qX9rPxtc6pF2k | ams-dz001 | 195.219.138.50 | 141.84ms | 141.97ms | 141.91ms | true
 65DqsEiFucoFWPLHnwbVHY1mp3d7MNM2gNjDTgtYZtFQ | frk-dz01  | 195.219.220.58 | 143.52ms | 143.62ms | 143.58ms | true
 9uhh2D5c14WJjbwgM7BudztdoPZYCjbvqcTPgEKtTMZE | sg1-dz01  | 180.87.102.98  | 176.66ms | 176.76ms | 176.72ms | true

출력에 장치가 반환되지 않으면 10-20초 기다린 후 다시 시도하세요.

5. DoubleZero 연결 해제

다음 섹션에서 DoubleZero 환경을 설정합니다. 성공을 보장하기 위해 현재 세션을 연결 해제하세요. 이렇게 하면 머신에서 여러 터널이 열리는 것과 관련된 문제를 방지할 수 있습니다.

확인

doublezero status

up 상태이면 다음을 실행하세요:

doublezero disconnect

다음 단계: 테넌트

DoubleZero 연결은 사용 사례에 따라 다릅니다. DoubleZero에서 테넌트는 유사한 사용자 프로필을 가진 그룹입니다. 예시에는 블록체인, 데이터 전송 레이어 등이 포함됩니다.

여기에서 테넌트를 선택하세요

선택 사항: Prometheus 메트릭 활성화

Prometheus 메트릭에 익숙한 운영자는 DoubleZero 모니터링을 위해 이를 활성화할 수 있습니다. 이를 통해 DoubleZero 클라이언트 성능, 연결 상태 및 운영 상태에 대한 가시성을 확보할 수 있습니다.

사용 가능한 메트릭

DoubleZero는 몇 가지 핵심 메트릭을 노출합니다: - 빌드 정보: 버전, 커밋 해시 및 빌드 날짜 - 세션 상태: DoubleZero 세션이 활성 상태인지 여부 - 연결 메트릭: 지연 시간 및 연결 정보 - 성능 데이터: 처리량 및 오류율

Prometheus 메트릭 활성화

DoubleZero 클라이언트에서 Prometheus 메트릭을 활성화하려면 다음 단계를 따르세요:

1. doublezerod systemd 서비스 시작 명령 수정

systemd 오버라이드 구성을 생성하거나 편집합니다:

sudo mkdir -p /etc/systemd/system/doublezerod.service.d/
sudo nano /etc/systemd/system/doublezerod.service.d/override.conf

다음 구성으로 교체합니다:

-env 플래그는 데이터를 수집하려는 네트워크에 따라 testnet 또는 mainnet-beta를 가리켜야 합니다. 아래 샘플 블록에서는 testnet이 사용됩니다. 필요한 경우 mainnet-beta로 교체할 수 있습니다.

[Service]
ExecStart=
ExecStart=/usr/bin/doublezerod -sock-file /run/doublezerod/doublezerod.sock -env testnet -metrics-enable -metrics-addr localhost:2113

2. 서비스 리로드 및 재시작

sudo systemctl daemon-reload
sudo systemctl restart doublezerod
sudo systemctl status doublezerod

3. 메트릭 사용 가능 여부 확인

메트릭 엔드포인트가 응답하는지 테스트합니다:

curl -s localhost:2113/metrics | grep doublezero

예상 출력:

# HELP doublezero_build_info Build information of the client
# TYPE doublezero_build_info gauge
doublezero_build_info{commit="0d684e1b",date="2025-09-10T16:30:25Z",version="0.6.4"} 1
# HELP doublezero_session_is_up Status of session to doublezero
# TYPE doublezero_session_is_up gauge
doublezero_session_is_up 0

문제 해결

메트릭이 표시되지 않는 경우:

  1. 서비스 상태 확인: sudo systemctl status doublezerod
  2. 구성 확인: sudo systemctl cat doublezerod
  3. 로그 확인: sudo journalctl -u doublezerod -f
  4. 엔드포인트 테스트: curl -v localhost:2113/metrics
  5. 포트 확인: netstat -tlnp | grep 2113

Prometheus 서버 구성

구성 및 보안은 이 문서의 범위를 벗어납니다. Grafana는 시각화에 탁월한 옵션이며, Prometheus 메트릭 수집 방법을 자세히 설명하는 문서가 여기에 있습니다.

Grafana 대시보드 (선택 사항)

시각화를 위해 DoubleZero 메트릭을 사용하여 Grafana 대시보드를 생성할 수 있습니다. 일반적인 패널에는 다음이 포함됩니다: - 시간에 따른 세션 상태 - 빌드 정보 - 연결 지연 시간 추이 - 오류율 모니터링