rippled를 검증인으로 실행하기

유효성 검증인 모드에서 실행되는 rippled 서버는 스톡 서버가 하는 모든 작업을 수행합니다:

  • 피어 네트워크에 연결.

  • 암호화된 서명 트랜잭션 중계.

  • 전체 공유 글로벌 ledger의 로컬 사본을 유지합니다.

검증인이 다른 점은 컨센서스 과정에서 XRP Ledger 네트워크가 평가할 후보 트랜잭션 세트인 검증 메시지를 발행한다는 점입니다.

검증 메시지를 발행한다고 해서 자동으로 컨센서스 과정에서 검증인에게 발언권이 부여되는 것은 아니므로 시스템은 시빌 공격에 취약하지 않습니다. 다른 서버는 고유 노드 목록(UNL)에 유효성 검증인을 추가하지 않는 한 유효성 검사 메시지를 무시합니다. 유효성 검증인이 UNL에 포함되어 있으면 신뢰할 수 있는 유효성 검증인이며, 해당 유효성 검증인을 신뢰하는 서버의 컨센서스 프로세스에서 해당 유효성 검증인의 제안이 고려됩니다.

검증인이 신뢰할 수 있는 검증인이 아니더라도 네트워크의 전반적인 상태에서는 여전히 중요한 역할을 합니다. 이러한 검증인은 신뢰할 수 있는 검증인을 측정하는 기준을 설정하는 데 도움이 됩니다. 예를 들어, 신뢰할 수 있는 유효성 검증인이 UNL에 나열되지 않은 많은 유효성 검증인에 동의하지 않는다면 문제가 있을 수 있습니다.

Warning:

유효성 검증인은 일반인이 액세스할 수 없어야 합니다. 유효성 검증인 서버에 대한 공용 웹소켓 액세스 또는 다른 형태의 공용 액세스를 허용하지 마세요.

1. 좋은 유효성 검증인의 특성 이해하기

유효성 검증인이 다음과 같은 특성을 구현하도록 노력하세요. 좋은 유효성 검증인은 rippled 서버 운영자와 유효성 검증인 목록 게시자(예: https://vl.ripple.com 및 https://vl.xrplf.org)가 유효성 검증인을 UNL에 추가하기 전에 신뢰하는 데 도움이 됩니다.

  • 사용 가능. 좋은 검증인은 항상 제안된 모든 ledger에 대해 검증 투표를 실행하고 제출합니다. 100% 가동 시간을 위해 노력하세요.

  • 컨센서스 중. 좋은 검증인의 투표는 가능한 한 자주 컨센서스 과정의 결과와 일치합니다. 그렇지 않다면 검증인의 소프트웨어가 오래되었거나 버그가 있거나 의도적으로 편향되어 있음을 나타낼 수 있습니다. 항상 수정 없이 최신 rippled 릴리스를 실행하세요. rippled 릴리스를 살펴보고 Google 그룹에 가입하여 새 릴리스에 대한 알림을 받으세요.

  • 신속한 투표 발행. 좋은 검증인의 투표는 컨센서스 라운드가 이미 끝난 후가 아니라 신속하게 이루어집니다. 투표를 제시간에 처리하려면 검증인이 빠른 인터넷 연결을 포함한 권장 시스템 요구 사항을 충족하는지 확인하세요. 검증인을 사용하여 새 트랜잭션을 제출하고 데이터를 쿼리할 수는 있지만, API 쿼리 부하가 많으면 검증인이 컨센서스를 따라잡는 데 안정성이 떨어질 수 있습니다. API 요구 사항이 충분히 가벼운 경우 서버를 두 가지 용도로 모두 사용할 수 있습니다. 이상적으로는 유효성 검증인은 컨센서스에 참여하는 데만 전념해야 합니다.

  • 신원 확인. 좋은 유효성 검증인은 소유자가 명확하게 식별됩니다. 도메인 검증을 제공하는 것이 좋은 시작입니다. 이상적으로, XRP ledger 네트워크 UNL에는 여러 법적 관할권 및 지역에서 서로 다른 소유자가 운영하는 검증인이 포함됩니다. 이렇게 하면 지역화된 이벤트가 신뢰할 수 있는 검증인의 공정한 운영을 방해할 가능성을 줄일 수 있습니다.

운영자는 이 예제 파일에 있는 목록 제공자를 사용할 것을 강력히 권장합니다.

2. rippled 서버 설치하기

자세한 내용은 rippled 설치하기를 참조하세요.

3. rippled 서버에서 유효성 검사 활성화하기

rippled 서버에서 유효성 검사를 사용하려면 서버의 rippled.cfg 파일에 유효성 검증인 토큰을 제공해야 합니다. rippled 패키지에 포함된 유효성 검증인 키 도구를 사용하여 유효성 검증인 키와 토큰을 안전하게 생성하고 관리할 수 있습니다.

유효성 검증인이 아닌 안전한 위치에서:

  1. 유효성 검증인 키 도구가 rippled된 RPM을 통해 아직 설치되어 있지 않은 경우 수동으로 빌드하고 실행합니다.

  2. 유효성 검증인-키 도구를 수동으로 빌드하고 실행하는 방법에 대한 자세한 내용은 유효성 검증인-키 도구를 참조하세요.

$ validator-keys create_keys

우분투에서 샘플 출력:

Validator keys stored in /home/my-user/.ripple/validator-keys.json

This file should be stored securely and not shared.

macOS에서의 샘플 출력:

Validator keys stored in /Users/my-user/.ripple/validator-keys.json

This file should be stored securely and not shared.

Warning:

생성된 validator-keys.json 키 파일은 암호화된 USB 플래시 드라이브와 같은 안전한 오프라인 복구 가능한 위치에 저장하세요. 키를 사용하려는 유효성 검증인에 키를 저장하지 마세요. secret_key가 손상된 경우 즉시 키를 해지하세요. 새 토큰을 생성한 후 백업을 업데이트하는 경우를 제외하고 validator-keys.json의 내용을 수정하지 마세요. 업데이트하지 않고 동일한 백업에서 두 개 이상의 토큰을 생성하는 경우, 네트워크는 동일한 token_sequence 번호를 사용하기 때문에 이후 토큰을 무시합니다.

유효성 검증인 키 도구 및 생성하는 키 쌍에 대한 자세한 내용은 유효성 검증인 키 도구 가이드를 참조하세요.

  1. create_token 명령을 사용하여 유효성 검증인 토큰을 생성합니다.

$ validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json

샘플 출력:

Update rippled.cfg file with these values:

# validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr

[validator_token]
eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT
QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl
c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE
hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG
bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2
hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1
NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj
VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ==

유효성 검증인에서:

  1. 유효성 검증인의 rippled.cfg 파일에 [validator_token] 및 해당 값을 추가합니다. 이전에 유효성 validator-keys 도구 없이 유효성 검증인을 구성한 경우, rippled.cfg 파일에서 [validation_seed] 및 해당 값을 삭제합니다. 이렇게 하면 유효성 검증인 공개 키가 변경됩니다.

  2. ripppled를 다시 시작합니다.

$ sudo systemctl restart rippled.service
  1. server_info 명령을 사용하여 유효성 검증인에 대한 정보를 가져와 유효성 검증인으로 실행 중인지 확인합니다.

$ rippled server_info
  • 응답의 pubkey_validator 값은 유효성 검증인에 사용하기 위해 생성한 유효성 검증인-키.json 파일의 public_key와 일치해야 합니다.

  • 서버 상태 값이 제안되어야 합니다.

보안 팁: rippled.cfg 파일의 권한을 더 제한적으로 변경하세요. 리눅스스에서는 0600으로 설정하는 것이 좋습니다. chmod 0600 rippled.cfg로 이 작업을 수행할 수 있습니다.

4. 네트워크에 연결

이 섹션에서는 유효성 검증인을 XRP Ledger 네트워크에 연결하는 데 사용할 수 있는 세 가지 구성을 설명합니다. 사용 사례에 가장 적합한 구성을 사용하세요.

  • 피어 검색: 피어 투 피어 네트워크의 모든 서버에 연결합니다.

  • 프록시: 스톡 rippled 서버를 유효성 검증인과 나머지 P2P 네트워크 사이에서 프록시로 실행합니다.

  • 공용 허브: 평판이 높은 특정 퍼블릭 서버에만 연결합니다.

이러한 접근 방식을 비교하려면 피어링 구성의 장단점을 참조하세요.

검색된 피어를 사용하여 연결

이 구성은 검색된 피어를 사용하여 유효성 검증인을 XRP Ledger 네트워크에 연결합니다. 이는 rippled 서버의 기본 동작입니다.

검색된 피어를 사용하여 유효성 검증인을 XRP Ledger 네트워크에 연결하려면 유효성 검증인의 rippled.cfg 파일에서 [peer_private] 구절을 생략하거나 0으로 설정합니다. 예제 rippled.cfg 파일은 이 구성과 함께 제공됩니다.

프록시를 사용하여 연결

이 구성은 직접 실행하는 스톡 rippled 서버를 통해 유효성 검증인을 네트워크에 연결합니다. 이러한 프록시 서버는 유효성 검증인과 인바운드 및 아웃바운드 네트워크 트래픽 사이에 위치합니다.

프록시를 사용해 검증인을 XRP Ledger 네트워크에 연결하려면 다음과 같이 하세요:

  1. 스톡 rippled 서버를 설정합니다. 자세한 내용은 rippled 설치를 참조하세요.

  2. 유효성 검증인과 스톡 rippled 서버를 클러스터에서 실행하도록 구성합니다.

  3. 유효성 검증인의 rippled.cfg 파일에서 [peer_private]을 1로 설정합니다. 이렇게 하면 유효성 검증인의 IP 주소가 전달되지 않습니다. 자세한 내용은 비공개 피어를 참조하세요. 또한 유효성 검증인이 클러스터에서 유효성 검증인을 실행하기 위해 정의한 [ips_fixed] 구절에 정의된 서버 이외의 서버에 연결하지 못하도록 합니다.

Warning:

다른 방법으로 유효성 검증인의 IP 주소를 게시하지 않도록 하세요.

  1. 유효성 검증인 호스트 컴퓨터의 방화벽이 다음 트래픽만 허용하도록 구성합니다:

  • 인바운드 트래픽: 구성한 클러스터에 있는 스톡 리플 서버의 IP 주소에서만 가능합니다.

  • 아웃바운드 트래픽: 구성한 클러스터에 있는 스톡 rippled 서버의 IP 주소와 포트 443을 통해 UNL 목록 제공업체로만 전송합니다.

  1. ripppled를 다시 시작합니다.

$ sudo systemctl restart rippled.service
  1. 스톡 rippled 서버 중 하나에서 피어 크롤러 엔드포인트를 사용합니다. 응답에 유효성 검증인이 포함되어서는 안 됩니다. 이렇게 하면 유효성 검증인의 [peer_private] 구성이 작동하는지 확인합니다. 유효성 검증인에서 [peer_private]을 활성화하면 유효성 검증인의 피어가 피어 크롤러 결과에 포함하지 않는 효과 중 하나가 있습니다.

$ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool

공용 허브를 사용하여 연결

이 구성은 3개의 공용 허브를 사용하여 유효성 검증인을 네트워크에 연결합니다. 이 구성은 직접 실행하는 프록시를 사용하여 연결하는 것과 비슷하지만 대신 공용 허브를 통해 연결합니다.

공용 허브를 사용하여 유효성 검증인을 네트워크에 연결하려면 다음과 같이 하세요:

  1. 유효성 검증인의 rippled.cfg 파일에 다음 [ips_fixed] 구절을을 포함합니다. 세 개의 값인 r.ripple.com 51235, zaphod.alloy.ee 51235 및 sahyadri.isrdc.in 51235는 기본 공용 허브입니다. 이 구절은 rippled가 항상 이러한 퍼블릭 허브와의 피어 연결을 유지하도록 지시합니다.

[ips_fixed]
r.ripple.com 51235
zaphod.alloy.ee 51235
sahyadri.isrdc.in 51235

Caution:

이 구성은 기본 공용 허브를 사용하여 유효성 검증인을 네트워크에 연결합니다. 이러한 허브는 기본 공용 허브이므로 때때로 너무 바빠서 유효성 검증인에 네트워크 연결을 제공하지 못할 수 있습니다. 이 문제를 방지하려면 더 많은 공용 허브에 연결하고 기본값이 아닌 공용 허브에 연결하는 것이 좋습니다.

다른 rippled 서버의 IP 주소를 여기에 포함할 수 있지만, 예상할 수 있는 경우에만 가능합니다:

  • 검열 없이 메시지를 전달할 수 있습니다.

  • 지속적으로 온라인 상태를 유지합니다.

  • 디도스 공격하지 않습니다.

  • 서버 다운을 시도하지 않습니다.

  • 모르는 사람에게 IP 주소를 공개하지 않습니다.

  1. 또한 유효성 검증인의 rippled.cfg 파일에 다음 [peer_private] 구를 포함하고 1로 설정합니다. 이렇게 하면 유효성 검증인의 피어에게 유효성 검증인의 IP 주소를 브로드캐스트하지 않도록 지시할 수 있습니다. 또한 이 설정은 유효성 검증인이 [ips_fixed] 구절에 구성된 피어에만 연결하도록 지시합니다. 이렇게 하면 유효성 검증인이 알고 있고 신뢰할 수 있는 피어 rippled 서버에만 연결하고 IP를 공유할 수 있습니다.

[peer_private]
1

Warining:

다른 방법으로 유효성 검증인의 IP 주소를 게시하지 않도록 주의하세요.

[peer_private]를 활성화하면 rippled은 [ips] 구절에서 제안하는 모든 연결을 무시합니다. 현재 [ips] 구절에 있는 IP에 연결해야 하는 경우, 1단계에서 설명한 대로 책임감 있게 작동할 것으로 기대할 수 있는 경우에만 [ips_fixed] 구절에 해당 IP를 대신 넣으세요.

  1. ripppled를 다시 시작합니다.

$ sudo systemctl restart rippled.service

5. 네트워크 연결 확인

다음은 유효성 검증인이 XRP Ledger 네트워크에 정상적으로 연결되어 있는지 확인하는 데 사용할 수 있는 몇 가지 방법입니다:

  • peers 명령을 사용하여 현재 유효성 검증인에 연결된 모든 rippled 서버 목록을 반환합니다. 피어 배열이 null이면 네트워크에 정상적으로 연결되지 않은 것입니다. 이 문서의 지침에 따라 유효성 검증인을 설정한 경우, 피어 배열에는 [ips_fixed] 연에 정의된 피어 수와 동일한 수의 개체가 포함되어야 합니다. [ips_fixed] 구절에 공용 허브를 나열했는데 사용 중이면 유효성 검증인의 연결을 거부할 수 있습니다. 이 경우 [ips_fixed] 구절에 구성된 것보다 더 적은 수의 연결이 발생할 수 있습니다. 처음에 연결이 거부되면 유효성 검증인이 연결을 다시 시도합니다. 네트워크에 안정적이고 안전한 연결을 유지하는 데 문제가 있고 공용 허브 또는 프록시를 사용하여 연결을 설정하지 않은 경우 4. 네트워크에 연결을 참조하세요. 이 섹션에 설명된 방법 중 하나를 사용하면 유효성 검증인이 네트워크에 정상적으로 연결 상태를 유지하는 데 도움이 될 수 있습니다.

  • server_info 명령을 사용하여 유효성 검증인에 대한 몇 가지 기본 정보를 반환합니다. 서버 상태는 제안 중으로 설정해야 합니다. 전체 또는 유효성 검사 중으로 설정할 수도 있지만, 제안 중으로 전환하기 전에 몇 분 동안만 설정할 수 있습니다. 서버 상태가 제안 중으로 설정된 대부분의 시간을 보내지 않는다면, 이는 검증인이 XRP Ledger 네트워크에 완전히 참여할 수 없다는 신호일 수 있습니다. 서버 상태와 server_info 엔드포인트를 사용하여 검증인 문제를 진단하는 방법에 대한 자세한 내용은 rippled 서버 상태 및 server_info 가져오기를 참조하세요.

  • 유효성 검증인 명령을 사용하여 유효성 검증인에서 사용하는 게시된 유효성 검증인 및 신뢰할 수 있는 유효성 검증인의 현재 목록을 반환합니다. validator_list_expires 값이 만료되지 않았거나 만료되지 않았거나 곧 만료되는지 확인합니다.

6. 도메인 검증 제공

유효성 검사 목록 게시자와 XRP ledger 네트워크의 다른 참여자가 누가 유효성 검증인을 실행하는지 이해할 수 있도록 유효성 검증인에 대한 도메인 확인을 제공하세요. 높은 수준에서 도메인 검증은 양방향 링크입니다:

  • 도메인을 사용해 유효성 검증인 키의 소유권을 주장합니다.

  • 도메인을 사용하여 유효성 검증인 키를 사용하여 도메인 소유권을 주장합니다.

이 링크를 만들면 유효성 검증인 키와 도메인을 모두 소유하고 있다는 강력한 증거를 확보할 수 있습니다. 이러한 증거를 제공하는 것은 훌륭한 유효성 검증인이 되기 위한 한 가지 측면입니다.

도메인 확인을 제공하려면 다음과 같이 하세요:

  1. 소유하고 있는 도메인 이름 중 유효성 검증인과 공개적으로 연결할 도메인 이름을 선택합니다. DDoS 시도에 대한 예방책으로 도메인 이름이 유효성 검증인의 IP 주소로 확인되지 않아야 합니다.

  2. 도메인에서 xrp-ledger.toml 파일을 제공하고 도메인 확인 단계를 완료합니다. 이 단계를 완료하면 유효성 검증인 네트워크를 모니터링하고 탈중앙화 도메인 확인을 지원하는 다른 사이트 또는 livenet 탐색기에서 유효성 검증인을 볼 수 있어야 합니다.

  3. 유효성 검증인의 공개 키를 일반인, 특히 다른 rippled 운영자와 공유하세요. 예를 들어, 웹사이트, 소셜 미디어, XRPChat 커뮤니티 포럼 또는 보도 자료에서 유효성 검증인의 공개 키를 공유할 수 있습니다.

유효성 검증인 키 해지

유효성 검증인의 마스터 개인 키가 손상된 경우 즉시 영구적으로 취소해야 합니다.

유효성 검증인 키 도구를 사용하여 유효성 검증인에 대해 생성한 마스터 키 쌍을 해지하는 방법에 대한 자세한 내용은 키 해지를 참조하십시오.

Last updated