[Tutorials] Seed Node 돌리기

in SCT.암호화폐.Crypto3 years ago (edited)

이타인클럽입니다.
어제 시드 노드를 돌리려고 하는데, 여러 어려움이 있었지만, @starlord28, @happyberrysboy, @steemchiller 님등의 도움을 받아서 무사히 시드 노드를 돌릴 수 있게 됐습니다. 감사합니다.

어제도 나타난 문제지만, 시드 노드를 돌리는 방법을 급하게 찾으려고 구글 검색을 해봤지만, 검색되는 글들이 별로 없었습니다. 사실 시드 노드에 대한 설명이 별로 없었는데, 글쎄 제가 예전에 잘 정리해 둔 걸 알게 됐습니다.

개발관련해서 튜토리얼들이 잘 정리된 사이트가 필요하다는 의견이 있었는데, 정말 그러합니다!

[증인노드 초보자 가이드] #1 증인 노드 설명 및 서버 선택 (Witness Node and Server)
[증인노드 초보자 가이드] #2 증인 노드를 위한 프로그램 설치 (Install Programs for Witness node)
[증인노드 초보자 가이드] #3 증인 노드 동기화 (Witness Node for Beginner)

이번에 다시 시드 노드를 설치하면서 알게 된 것을 추가로 정리합니다.

시드노드

시도 노드는 블록체인의 기본 노드로서, 다음과 같은 역할을 합니다.

  • 블록 데이터 동기화
  • 블록 데이터 검증
  • 블록 데이터 전파

시드 노드가 없다면 블록체인이 성립되지 않습니다. 그만큼 매우 중요한 역할을 합니다. 단 시드 노드를 운영하는데 별다른 보상이 없습니다. 비트코인 라이트닝 노드도 운영하는데 보상이 없는 것과 같습니다. 그러나 블록체인 생태계에선 매우 중요한 역할을 합니다.
시드 노드가 많으면 많을 수록 블록체인이 더 안정적으로 돌아갈 수 있게 됩니다.

시드 노드 확인

저도 이번에 알게 됐는데, 시드 노드 체크하는 기능이 https://steemworld.org 에 있습니다. 아래 그림에서 오른쪽 제일 밑에 Seed Nodes Check 입니다.
image.png

누르면 현재 등록된 시드 노드 리스트가 보이고 오른쪽 상단에 Check Nodes를 누르면 노드 응답 속도를 측정하게 됩니다.
image.png

제 시드 노드 seed.etain.club:2001도 리스트에 추가하고 검사를 눌러봤습니다. 응답 속도가 60ms로 나옵니다! 즉 시드 노드가 정상적으로 연결되었다는 의미입니다.

여기서 시드 노드와 증인 노드의 차이점이 있습니다. 바로 시드 노드의 ip는 공개됩니다. 위 리스트에서 보듯이 시드 노드는 공개되어 있습니다. 도메인을 알면 ip를 알 수 있습니다. 시드 노드는 공개를 목적으로 돌아갑니다. 반면 증인노드는 채굴을 담당하기 때문에 공개되지 않습니다. 만약 공개되어 증인 노드를 해킹할 수 있기 때문에 증인 노드의 ip는 공개하지 않습니다.

시드 노드 설치

시드 노드 설치는 증인노드 설치와 거의 동일합니다. 차이점은 증인 계정, 키, 플러그인을 설정하지 않는 것이 차이입니다. 제가 작성한 증인노드 설치 가이드 1, 2, 3편을 참고하시면 초보자도 설치할 수 있습니다.

여기서는 그 차이점만 설명하고, 블록 데이터 동기화는 완료된 상태를 가정합니다. 참고로 시드 노드는 VPS (가상 컴퓨터) 보다는 전용 서버 (dedicated server)를 추천합니다.

위 설치 가이드 3편에서 "증인 노드 설정"하는 부분이 있는데 그 부분을 아래처럼 하시면 시드 노드를 설치할 수 있습니다.

서버에 원격 접속하여 config.ini 파일을 엽니다. 자신의 설치 경로에 맞게 변경하세요.

$ ssh root@seed-node
암호입력 후 접속 

$ vi /root/steem-docker-ex/data/witness_node_data_dir/config.ini 

그러면 아래와 같은 내용이 나타납니다.

image.png

이 파일에서 설정해야 하는 부분만 표시하면 아래와 같습니다.

p2p-endpoint = 0.0.0.0:2001

plugin = condenser_api network_broadcast_api account_by_key database_api p2p

p2p-seed-node = seed.etain.club:2001 

제일 마지막의 p2p-seed-node 부분에 자신의 시드 노드 주소를 입력합니다. 이 부분은 꼭 필요한 건지는 아직 확실하지 않네요.

config.ini 파일에서 p2p-seed-node 리스트를 보면 대부분 시드 노드 주소가 도메인 형태로 되어 있습니다. 한 개가 아래처럼 ip 주소로 되어 있습니다.

image.png

Domain 설정

만약 도메인 서비스를 사용하는게 있다면 거기에 시드 노드 레코드를 등록하면 됩니다.

저는 Go Dadday에서 몇 개의 도메인을 사용 중입니다. 아래 그림처럼 etain.club의 Manage DNS를 누릅니다.
image.png

거기서 새롭게 다음과 같이 레코드를 추가합니다.

image.png

여기서 ip를 공개한 이유는 이미 공개되어 있는 주소이기 때문입니다.

도메인에 연결된 ip를 알아보는 방법은 터미널에서 다음과 같이 입력해 보면 됩니다.

$ nslookup seed.etain.club
Non-authoritative answer:
Name:   seed.etain.club
Address: 65.108.44.173

다른 사이트도 위 방식으로 하면 ip를 알아낼 수 있습니다. 위에서 얘기했듯이 증인노드에 대해서는 ip를 공개하면 안됩니다! 절대 주의하세요.

시드 노드 설치는 이것으로 끝입니다.

시드 노드 클라우드 서버

저는 시드 노드를 다음 서비스에서 돌리고 있습니다. 가격도 저렴하고 속도도 매우 빠르고 좋네요

image.png

여기서 AX51NVME를 추천합니다. 그 아래 것도 가능하나 스토리지 용량이 적어서 설치하기 번거롭습니다.

추천 제도가 있는데, 아직 제 레퍼럴이 생성되지 않았네요. 생성되면 여기 공개하도록 하겠습니다.

마지막으로 블록 동기화를 빨리 할 수 있게 블록 데이터를 제공해준 @ety001님께 감사합니다. (Thank you for your great site! https://files.steem.fans/)

cc.
@realrobinhood

Sort:  

Hello @ety001. Is the blockdata on files.steem.fans a bit outdated? Last I remember this used to be updated everyday right? Have you now changed this to a different setting?

image.png

The host disk had broken down last month. And the automation program has not repaired. Currently I'm backing data manually.

I guess this month all services will be ok.

Cool. Sounds great!

Upvoted! Thank you for supporting witness @jswit.
Please check my new project, STEEM.NFT. Thank you!
default.jpg

시드 노드 축하 드립니다.
이제 증인으로서 더 많은 선한 영향력을 보여 주세요. ^^

네 우선 AVLE을 열심히 개발해서 공개하도록 하겠습니다!

축하드려요 ^^ 홧팅

응원 고맙습니다~

시드 노드 개설 축하드립니다.

개발만 하면 될 줄 알았는데, 노드 운영도 필요한 걸 알게 됐습니다!
고맙습니다.

응원합니다~ ^^

항상 응원해 주셔서 고맙습니다~

제가 알기로는 p2p-seed-node 부분에 자신의 seed node를 추가할 필요는 없습니다. steemd를 구동하면서 연결할 seed node의 목록인데, 다른 seed node들과 연결할 수 있으므로 필수 사항은 아닌 것 같습니다.

네 저도 그렇게 이해하고 있습니다. 설명 고맙습니다.

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.029
BTC 63352.53
ETH 2447.41
USDT 1.00
SBD 2.67