Fallback 노드 지정하기

Smartnode 스택의 1.5.0 버전부터 기본 클라이언트가 오프라인 상태가 될 경우(Geth를 사용하고 프루닝이 필요한 경우처럼) 이를 대체할 수 있는 "fallback" Execution 클라이언트 및 Consensus 클라이언트 쌍을 제공할 수 있습니다. 이 상황에서 기본 노드 머신은 여전히 megapool의 검증자 키로 증명하고 블록을 제안하는 역할을 담당하지만, Execution 레이어 및 Beacon 체인과 상호작용하기 위해 외부 머신에 연결합니다.

본질적으로 체인 조회, 트랜잭션 전송, 증명할 블록 수신과 같은 작업에 다른 클라이언트 쌍을 임시로 사용할 수 있습니다. 이 쌍은 외부에서 관리될 수 있으며(Hybrid 모드처럼), 또는 다른 Rocket Pool 노드가 될 수도 있습니다(아래에서 다룰 API 포트가 노출된 Docker 모드 머신).

노드의 기본 클라이언트가 다시 온라인 상태가 되면 Smartnode와 Validator 클라이언트가 자동으로 다시 전환됩니다.

참고

fallback 노드는 "백업" 노드와 동일하지 않습니다. Fallback 노드는 체인에 동기화되고 실행 중인 Execution 및 Consensus 클라이언트 쌍을 가지고 있지만, 노드의 지갑이나 검증자 키는 로드되어 있지 않습니다.

메인 노드가 오프라인 상태가 되면 fallback 노드가 대신 검증을 시작하지 않습니다.

지원되는 클라이언트

v1.9.0부터 지원하는 모든 검증자 클라이언트에 백업 지원이 추가되었으며 몇 가지 제한 사항만 있습니다:

이름백업 지원유효한 백업 클라이언트
Lighthouse모두 (doppelganger 보호 꺼짐)
Lighthouse (doppelganger 보호 켜짐)
Nimbus모두
PrysmPrysm
Teku모두
Lodestar모두

새 노드 설정하기 (Docker 모드)

로컬에서 소유한 두 번째 머신, VPS에 호스팅된 원격 노드 또는 클라우드 기반 노드를 백업 노드로 사용할 수 있습니다.

이 예제는 Docker 모드를 사용하여 다른 머신에 두 번째 Smartnode를 생성하는 방법을 보여주며, 이를 백업 노드로 사용할 수 있습니다.

이미 두 번째 노드가 준비되어 있고 RPC 포트가 노출되어 있다면 이 섹션을 건너뛰셔도 됩니다.

  1. 노드 설정 가이드(로컬 또는 원격)의 단계를 따르세요.

  2. 머신이 준비되면 Smartnode 스택을 설치합니다.

  3. rocketpool service config를 실행하여 사용할 클라이언트를 지정합니다.

    1. 마법사의 끝에 도달하여 설정을 검토할지 묻는 질문이 나오면 Yes를 선택합니다.
    2. Execution Client 설정으로 들어갑니다.
    3. Expose RPC Ports 박스를 체크합니다:
    1. 뒤로 가서 Consensus Client 설정으로 들어갑니다. 5. Expose API Port 박스를 체크합니다 (Prysm을 사용하는 경우 Expose RPC Port 박스도 체크합니다):
    1. 설정을 저장하고 Smartnode를 시작합니다.
  4. 노드 보안 가이드로 이동하여 SSH와 적절한 보안 자세를 설정합니다.

    1. ufw가 설치되어 있는 경우 API 포트로의 수신 트래픽을 허용하는 규칙을 추가해야 합니다(기본값은 8545, 8546, 5052이며, Prysm을 사용하는 경우 5053도 필요).
  5. 완료되었습니다! 여기서 멈추셔도 됩니다.

참고

rocketpool wallet init으로 지갑을 생성하거나 이전 지갑을 복구하지 마세요. 이 노드는 지갑과 검증자 키 없이 그대로 두세요.

이 노드의 유일한 역할은 동기화된 Execution 클라이언트와 Consensus 클라이언트를 갖는 것입니다.

메인 노드를 Fallback 노드에 연결하기

백업 노드가 준비되면 메인 노드에 연결할 수 있습니다.

  1. rocketpool service config TUI에 들어가서 Fallback Clients 설정으로 들어갑니다.
  2. Use Fallback Clients 박스를 체크합니다.
  3. Execution Client URL 박스에 Execution 클라이언트의 RPC URL을 입력합니다. 예를 들어 백업 노드의 IP 주소가 192.168.1.45이고 Execution 클라이언트가 기본 포트 8545에 있다면 여기에 http://192.168.1.45:8545를 입력합니다.
  4. 백업 Consensus 클라이언트의 RPC URL도 동일하게 입력합니다. 같은 예를 따라 기본 포트 5052에 있다면 여기에 http://192.168.1.45:5052를 입력합니다.

최종 페이지는 다음과 같이 보여야 합니다:

참고

Native 모드 사용자는 동일한 단계를 따를 수 있지만 TUI가 위의 스크린샷과 약간 다르게 보일 것입니다.

이것은 Smartnode 자체(데몬 서비스)에만 백업 지원을 제공한다는 점에 유의하세요. 백업 클라이언트에 대한 액세스를 제공하려면 Validator 클라이언트 서비스의 인수를 수동으로 업데이트해야 합니다.

마지막 박스에서 enter를 눌러 확인한 다음 설정을 저장하고 변경 사항을 적용합니다.

적용된 후 rocketpool node sync 명령을 사용하여 백업 노드의 가용성을 확인할 수 있습니다:

Your Smartnode is currently using the Ethereum Mainnet.

Your eth2 client is on the correct network.

Your primary execution client is fully synced.
Your fallback execution client is fully synced.
Your primary consensus client is fully synced.
Your fallback consensus client is fully synced.

백업 Execution 및 Consensus 클라이언트가 모두 동기화되었다고 표시되면 모든 준비가 완료되었습니다!

백업 클라이언트 테스트하기

백업 클라이언트를 테스트하여 구성이 제대로 작동하는지 확실히 확인하고 싶다면 메인 노드의 Execution 및 Consensus 클라이언트를 중지하기만 하면 됩니다:

docker stop rocketpool_eth1 rocketpool_eth2

그런 다음 rocketpool network stats와 같이 체인을 조회하는 명령을 실행합니다. 기본 클라이언트 중 하나(또는 둘 다)가 오프라인 상태이며 백업 클라이언트로 되돌아가고 있다는 경고 메시지가 상단에 표시됩니다:

NOTE: primary clients are not ready, using fallback clients...
 Primary EC status: unavailable (Sync progress check failed with [Post "http://eth1:8545": dial tcp: lookup eth1 on 127.0.0.11:53: no such host])
 Primary CC status: unavailable (Sync progress check failed with [Could not get node sync status: Get "http://eth2:5052/eth/v1/node/syncing": dial tcp: lookup eth2 on 127.0.0.11:53: no such host])

========== General Stats ==========
Total Value Locked:          1196.926316 ETH
Deposit Pool Balance:        23.586761 ETH
Minipool Queue Demand:       0.000000 ETH
Deposit Pool ETH Used:       6.809609%

============== Nodes ==============
Current Commission Rate:     5.000000%
Node Count:                  16
Active Minipools:            36
    Initialized:             0
    Prelaunch:               0
    Staking:                 36
    Withdrawable:            0
    Dissolved:               0
Finalized Minipools:         30

=========== Megapools ============
Megapool contracts deployed: 10
Total megapool validators:  86
     Staking:                51
     In Prestake:            6
     In Queue:               10
     Exited:                 14
     Locked:                 1
     Exiting:                2
     Dissolved:              2

========== Smoothing Pool =========
Contract Address:            0xE8D1136ac49DBe6ac8f299130253004DC63841a1
Nodes Opted in:              3
Pending Balance:             0.000000

============== Tokens =============
rETH Price (ETH / rETH):     1.185477 ETH
RPL Price (ETH / RPL):       0.000639 ETH
Total RPL staked:            33406.127068 RPL
Total Megapool RPL staked:   11406.127068 RPL
Total Legacy RPL staked:     22000.000000 RPL

마지막으로 기본 클라이언트를 다시 시작합니다:

docker start rocketpool_eth1 rocketpool_eth2

완료되었습니다! 백업 설정이 작동합니다.

다음 단계

백업 노드 생성 및/또는 실행을 선택했는지 여부와 관계없이 다음 단계는 우선 수수료에 대해 배우는 것입니다. 준비가 되면 가이드의 다음 섹션을 클릭하세요.