스팀 증인 노드 세팅하기 1탄

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

안녕하세요 ayogom 입니다.
증인 노드를 운영하기 위해서는 생각보다 높은 컴퓨터 사양을 요구하고 있습니다. 일반적인 집에서 운영하는것은 추천을 드리지않습니다. 24시간 365일 운영이 되어야 하는데, 혹시나 갑작스럽게 전원이 꺼지는 문제가 생겨서 블록이 깨지면, 동기화를 다시 해야할 수 있습니다. 이 동기화를 하는 것은 약 6일 정도가 걸리니 처음부터 장시간 켜 둘수 있는 환경을 구축 할 것을 추천해드립니다.

  1. 필요 환경
  • 64G RAM (32G RAM)
  • 1TB 이상 SSD (500SSD)
  • 리눅스 16.04.7 LTS

리눅스 환경은 각자 구해보시기 바랍니다. 국내 저렴한 서버 예를들면 통큰아이 및 아마존 서버 등 다양한 서버가 있고, 이건 엔지니어의 능력에 따라 무엇을 쓰냐가 유연하게 결정될 수 있을 것 같습니다. 예를들면 저렴한 서버들은 그 가격값을 합니다. 서버 관리를 위한 다양한 서비스를 제공하지 않고 하지만 저렴합니다. 아마존의 경우 가격은 매우 비싸지만, 관리가 유연하고 편합니다. 따라서 개인에 맞는 서버를 찾아야 합니다.

제 경우에는 처음 증인노드를 운영할때, 서버용 하드웨어를 구입했습니다.
그리고 벌써 한 3년 동안 돌리고 있기 때문에 이미 본전은 충분히 뽑은게 아닌가 싶기도 합니다. 아무쪼록 좋은 서버를 잘 선택하시기 바랍니다.

서버를 세팅이 완료가 되면, 보통 위와 같은 커멘트 창을 볼 수 있습니다. 제일 먼저 해야 할 일은

sudo apt update

를 실시 합니다. 이 것은 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트하는 명령어입니다. 설치되어 있는 패키지를 최신으로 업데이트하는 것이 아닌 설치가능한 리스트를 업데이트 하는 부분이죠. 명단을 받는 겁니다.

그리고 노드운영을 위해 필수 프로그램을 설치 합니다

sudo apt install git curl wget nano

Git 허브에서 소스를 받아와야 하니 git을 설치하고
파일을 수정해야하니 파일에디터인 nano를 설치 합니다
파일을 받기 위해 curl 과 wget 도 설치합니다.

설치가 끝나면 git에 있는 steem docker를 받아 옵니다.
증인 노드를 운영하는 방법은 도커를 이용하는 방법과 도커를 이용하지 않는 방법이 있는데 도커를 이용하는게 향후 명령어 부분에서 편리해서 ( 비 도커는 사용해보지 않았어요) 도커를 사용하는 부분으로 소개 합니다.

git clone https://github.com/ayogom/steem-docker.git

제 git에 있는 것을 받아 오셔도 되고 다른 도커를 사용하셔도 됩니다. 제 경우에는 git에 구 하이브 노드들을 다 정리해둬서 이쪽을 추천 합니다.

cd steem-docker

"steem-docker" 폴더로 이동해서 잘 설치가 되었는지 확인 합니다. 그리고 docker를 설치 해줍니다.

./run.sh install_docker

도커 설치가 완료되면 노드 설치를 합니다.
제 경우에는 @happyberrysboy 님이 공유해주신 하드포크 23.1 버전을 받아서 씁니다.

docker pull happyberrysboy/steemnode:hf0.23.1

설치가 완료되면 연결할 버전을 지정해줍니다.

docker tag happyberrysboy/steemnode:hf0.23.1 steem:latest

이러면 환경은 완료 입니다.
증인 노드에서 생성을 위한 키 값을 생성해야 합니다.

./run.sh remote_wallet

을 통해 서버의 월렛에 접속 합니다.
(제 git 소스는 api.steemzzang.com 으로 연결됩니다)

최초 접속하게 되면 패스워드 설정을 해줘야 합니다. 키 체인의 패스워드라고 생각하시고 편한거 설정 해주시면 됩니다.

set_password "mysupersecurepass"

기존 new >>> 으로 표시되던 부분이
locked >>> 으로 변경된 것을 알 수 있습니다. 여기에 좀전에 설정했던 패스워드를 입력해주시면 됩니다.

unlock "mysupersecurepass"

unlock을 입력하니 unlocked>>> 으로 변경된 것을 알 수 있습니다.

이제 새로운 키 값을 받아야 합니다. 이 키 값이 바로 증인 노드를 운영하는데 들어가는 사인 키 값이 됩니다.

  • 제 계정은 노드 운영을 중지했기 때문에 중지용 키 값이 들어가 있습니다.

suggest_brain_key

발급 받은 키 값을 잘 저장해 둡니다.

{
  "brain_priv_key": "SIGH SPACER UST PORTLET FOIST GABLE FOURTH ALCOHOL OYSTER FISSIVE NOT SPLURT SKEVISH SUBFEU KNEECAP TWEET",
  "wif_priv_key": "5JQPcFmKB2bRX5vL2uMVupjEzZCRkNbu5yk2fotZT7HYDGrXBSA",
  "pub_key": "STM8SqFt2ZCRTghS9DcpVHWAeuW7MdbZDgZZ2uyUEaYyep4CJzwh5"
}

그리고 본인의 액티브 키를 등록합니다.

import_key 5xxxxxxxxxx

그리고 Ctrl + D 를 이용해서 지갑을 닫으면 해당 내용이 저장이 됩니다.

이제 환경 설정을 수정할 시간입니다.

nano data/witness_node_data_dir/config.ini

config.ini 파일을 볼 수 있습니다.
수정할 부분은

# name of witness controlled by this node (e.g. initwitness )
# witness =

# name of miner and its private key (e.g. ["account","WIF PRIVATE KEY"] )
# miner =

# Number of threads to use for proof of work mining
# mining-threads =

# WIF PRIVATE KEY to be used by one or more witnesses or miners
# private-key =
  1. witness 에 등록한 계정을 넣습니다
  2. private-key 에는 조금전에 발급받은 키 값을 넣습니다.
    (5JQPcFmKB2bRX5vL2uMVupjEzZCRkNbu5yk2fotZT7HYDGrXBSA)

그리고 Ctrl+X 를 누르고 저장하고 종료

nano .env

환경설정을 해줍니다.

PORTS=2001
DOCKER_NAME=witness

그리고 Ctrl+X 를 누르고 저장하고 종료

이제 환경이 마무리 되었습니다.
그럼 증인 노드 실행 명령어를 써볼까요

./run.sh replay

그리고 잘 동작하고 있는지 로그를 살펴보면

/run.sh logs

잘 시작되었습니다.
이제 기다림의 시간입니다. 현재 스팀 블럭이 약 53,450,000 블럭이니 해당 블럭까지 동기화를 맞춰야 합니다. 이게 약 5일 정도 소모 됩니다 ㅎㅎㅎㅎ

중간에 멈춤도 있을 수 있지만, 계속 기다려보고 또 기다려야 합니다...

업데이트가 완료되면 그 이후에 해야 하는 작업에 대해서 2탄을 작성하겠습니다. 아마도 이 글이 페이아웃 되는 시점에 다시 만날 수 있지 않을까 싶습니다 ㅎㅎ

2021-05-04 16:30분 시작
2021-05-07 12:40분 replay

작성 예정인 글 List

  • 스팀 증인 노드 세팅 방법 1탄
  • 스팀 증인 노드 세팅 방법 2탄
  • Nodejs 를 이용한 스팀 API 사용해보기
  • @tipu 사용법 1탄
  • @tipu 사용법 2탄
  • 비밀 메모 사용 방법
  • 스팀에 표시되는 달러표시의 의미
  • Steemit wallet의 History 부분
  • sct , zzan 스테이킹으로 보팅받는 방법
  • 업비트 이용방법
  • 스팀/스달 입금 출금 방법
  • 해킹 대비법

누군가에게는 도움이 될 수 있는 글

Sort:  

[US$80.50](▼16%)[SONGJING]SONGJING SJ-125E 제습기 / 송징 SJ-125E 제습기 / 36평적용 / 165W 고출력 / 대용량 물탱크 / 관부가

WWW.QOO10.COM

@ayogom transfered 1.0 KRWP to @krwp.burn. voting percent : 2.65%, voting power : 78.68%, steem power : 1761857.42, STU KRW : 1200.
@ayogom staking status : 316.9 KRWP
@ayogom limit for KRWP voting service : 0.95 KRWP (rate : 0.003)
What you sent : 1.0 KRWP
Refund balance : 0.05 KRWP [53464634 - f9d47f6ac825231085ad462db214932a8a0ea5da]

만약에 누가 한다면 누가 해주기 전에는 엄두도 못 낼것 같습니다.

successgr님이 ayogom님의 이 포스팅에 따봉(10 SCT)을 하였습니다.

항상 좋은 정보 감사합니다. ^^

상세한 설명글 감사합니다.

질문이 있는데요,
증인노드를 돌리는데 왜 그렇게 높은 사양이 요구되나요?
특히 증인노드는 풀노드를 돌릴 필요가 없는데, 1TB 이상의 스토리지가 필요한 이유가 있을까요?

참고로, Blurt 증인노드를 집에서 라즈베리 파이 4 (8GB ram)에서 돌리고 있습니다. 생각에 증인노드는 고사양이 필요없을거 같은데 어떤가요?

Coin Marketplace

STEEM 0.28
TRX 0.12
JST 0.033
BTC 61641.91
ETH 2997.57
USDT 1.00
SBD 3.45