ZooBC 위키
노드 운영

노드 운영

ZooBC 노드는 컴퓨터에서 실행되는 ZooBC 소프트웨어입니다. 노드는 체인의 사본을 보관하고, 모든 블록과 트랜잭션을 다른 모든 노드와 같은 규칙으로 검사하며, 공개 HTTP API를 제공합니다. 누구나 노드를 운영할 수 있으며, 체인을 따라가기만 하는 노드만으로도 소유자는 누구도 신뢰하지 않고 모든 것을 확인할 수 있습니다. 블록을 만드는 것은 별개의 단계입니다. 노드는 노드 레지스트리에 좌석을 가진 뒤에야 블록을 만듭니다.

노드가 실행하는 것

노드는 zoobc-node --start node.conf로 시작하는 프로세스 하나이며, SQLite 데이터베이스 하나를 씁니다. 노드는 세 포트에서 대기합니다.

포트용도
8001P2P 네트워크
8080HTTP API (웹 지갑도 여기서 제공)
8545[[metamaskMetaMask]]가 쓰는 Ethereum 방식 RPC 어댑터, 기본값은 노드 자신의 컴퓨터(루프백)

노드는 제네시스 블록을 직접 만들지 않습니다. 블록 0은 이미 데이터베이스에 있어야 하며, 그 블록의 해시가 체인의 신원입니다(제네시스 블록 참조). 노드가 빠져나올 수 없는 분기에 갇힌 상태("막힘(wedged)")가 되면, auto_resync 설정이 기본으로 켜져 있으므로 자기 체인을 버리고 스파인 체인에 고정된 스냅샷으로부터 스스로를 재구축합니다. 릴리스에는 노드 자신의 스파인이 일치해야 하는 알려진 스파인 블록인 릴리스 핀이 함께 들어 있을 수도 있습니다. 새 버전은 노드 옆에서 실행되며 소유자가 통제하는 업데이터를 통해 도착합니다(릴리스와 업데이트).

켜는 것부터 블록을 만들기까지

  1. 운영자는 두 키를 만듭니다. 컴퓨터를 위한 노드 키와 지갑 안의 소유자 키입니다(노드의 키).
  2. 소유자는 스테이크를 잠그고 두 키가 한 쌍이라는 증명을 담은 등록을 보냅니다(노드 등록).
  3. 노드는 스테이크에 기다린 시간을 곱한 값으로 정렬된 공개 대기열에서 기다립니다(대기열).
  4. 입회 타이머가 프로토콜이 정한 느린 속도로 한 번에 노드 하나씩 들여보냅니다(입회 속도).
  5. 입회하면 노드는 블록을 만들도록 추첨되고(추첨), 배정된 피어들에게 블록과 트랜잭션을 중계하며(영수증과 네트워크 토폴로지), 짧은 성숙 기간 뒤에 보상을 나눠 받습니다(성숙과 수입).

각 체인은 ZooBC Foundation이 보유한 제네시스 좌석 11개로 시작합니다. 다른 모든 사람은 대기열을 통해 합류하며, 누가 들어올지 고르는 사람은 없습니다. 어떤 좌석도 사람이 직접 내주지 않으며, 작업 증명에서처럼 컴퓨팅 파워로 얻을 수도 없습니다.

레지스트리에 머물기

좌석은 일을 해야 지켜집니다. 추첨된 차례를 어떤 이유로든 건너뛴 등록 노드는 다음 자기 블록을 만들 때까지 누락 상태가 됩니다. 누락 상태인 동안에는 아무것도 벌지 못하며, 참여 점수가 점수 단위마다 5점(100점 만점)씩 떨어집니다. 점수 단위는 노드가 2,880개 미만인 네트워크에서 12시간입니다. 노드가 서명한 영수증이나 핑은 이 상태를 끝내지 않으며, 오직 노드 자신의 다음 블록만 끝냅니다.

연속으로 네 번째 차례를 놓치면 노드는 정지되기도 합니다. 생산자 추첨에서는 빠지지만 좌석은 유지합니다. 노드가 다시 온라인이 되면 소프트웨어가 핑을 보냅니다. 핑은 정지된 노드만 보낼 수 있는 수수료 없는 작은 트랜잭션으로, 노드를 수습 상태로 추첨에 복귀시킵니다. 점수가 0에 이르면 노드는 퇴출됩니다. 자세한 내용은 놓친 차례, 정지, 퇴출에, 좌석이 끝나는 모든 경우는 레지스트리에서 나가기에, 모든 수치는 mainnet의 노드 파라미터에 있습니다.

같이 보기

이 주제의 문서