최신 Full node 설치 1편

in SteemCoinPan •  4 months ago  (Edited)

안녕하세요 ayogom 입니다.
오래전에 Steem Node 정리 (Full node 1편)Steem Node 정리 (Full node 2편) -설치에 대해서 작성했었는데, 최근 잦은 스팀지갑 오류로 인해서 새롭게 풀노드를 재구성 했습니다. 덕분에 이전보다 풀노드에 대한 이해도가 조금 더 올라갔습니다.

풀노드는 크게 3가지로 구성이 됩니다.

  • API Node
  • AH Node
  • Hive mind node

API Node 의 경우 일반적인 API에 대한 응답을 실시합니다.
AH Node 의 경우 Account History 의 약자로 계정에 대한 API에 응답을 실시 합니다.
Hive mind Node 의 경우 Hive-mind 웹페이지 관련 API에 대한 응답을 실시 합니다.

이전 제가 설정했던 풀노드 그러니깐 2편에서는 API Node와 Hive mind Node를 설정 했었습니다. 따라서 AH node의 경우 Steemit 공식 api 를 참조하게끔 하였는데, AH Node 자체가 용량이 상당히 커서 (약 670G) 설치가 부담스러운 부분도 있었습니다.

  • 20201년 6월 9일 기준 풀노드의 사용 용량은 API Node 400G, AH Node 670G, Hive mind *00G 정도 사용됨.
    ( 2021-06-10 추가 코멘트 : Hivemind 데이터에 대해서 지속적으로 업데이트 중으로 300G 정도로 예상 됨

그렇게 숙제로만 남겨둔 AH Node에 대해서 이번에 설정을 진행했습니다.

  • 물론 모든 Node를 다 설치할 필요는 없습니다.하지만 그러면 Full Node가 Full Node가 아니지 않을까 생각합니다.

노드의 블럭을 직접 받으면 너무 오랜 시간이 걸립니다. 예를들어 하이브마인드의 경우 고작 100G 정도 되는데 이 데이터를 받고 동기화 하는데 약 일주일이 소요되기 때문에 언제부터인가 블럭 데이터를 공유하여 받는 것이 편리해졌습니다.

블럭데이터는 @ety001 증인이 제공하고있는 웹사이트에서 확인 할 수 있습니다. 약 2~3일에 한번씩 데이터를 갱신해주고 있기 때문에 해당 날짜에 해당하는 데이터를 받아야 합니다.

https://files.steem.fans/

설치.

현재 Api.steemzzan.com 의 경우 우분트 20.04 가장 최신 버전에서 동작하고 있습니다. 128G RAM과 2T SSD를 사용하고 있고요.

1. 환경 설정

apt-get update -y && upgrade

최신 목록을 업데이트 실시 합니다.

apt install nano wget git lz4 screen docker.io

여기서 제 경험상 20.04 보다 낮은 버전을 사용시 lz4가 설치되지 않습니다. lz4는 블록데이터의 압축된 형태이기 때문에 블럭 데이터를 받지 않으시면 사실 필요없지만 저는 추천 드립니다. 낮은 버전에서도 lz4를 설치 하는 방법이 있습니다.

2. API Node 설치

깃허브에서 복사해옵니다.

git clone https://github.com/steemfans/steem-docker-ex.git steem-api

그리고 최신 버전을 설치 합니다.

cd steem-api
docker pull ety001/steem-full-mira:0.23.1
docker tag ety001/steem-full-mira:0.23.1 steem

그리고 환경 설정을 해 줍니다

mv example.env .env
nano .env

DOCKER_NAME="steemapi"
PORTS=2001,8090,8091

이 2가지만 고쳐주시면 됩니다.

먼저 별도의 스크린을 분리하고 다운로드를 해야 합니다.

screen -R steemapi

이렇게 스크린을 분리하면 섹션이 종료되어도 유지가 됩니다. 일명 백그라운드라고 생각하셔도 됩니다. 그리고 다운로드를 시작합니다.

wget -c -qO- https://files.steem.fans/data/steem_api-20210607.tar.lz4 | lz4 -d | tar x

설명을 조금 드리자면 steem_api-20210607.tar.lz4 원본 파일을 lz4 압축 해제 하고 tar 압축해제 하면서 다운로드가 됩니다. 그래서 조금 오래 걸릴 수도 있지만, 압축을 해제하는 일을 하지 않아도 되는 장점이 있습니다.

api 노드의 경우 약 285G 정도 되기 때문에 적당히 기다리시면 됩니다.

다운로드가 시작되면 Ctrl + A + D 를 누르면 CMD 창으로 나오실 수 있습니다. 다시 접속 하려면 screen -r steemapi 으로 들어가시면 됩니다.

다운로드가 완료되면 blockchain 폴더에 받아졌을 것입니다.
이 폴더를 옴겨야 합니다. * 폴더 명은 절대값을 기준으로 작성했습니다.

mv blockchain /root/steem-api/data/witness_node_data_dir/

옴겨졌으면 환경설정을 다시 합니다.

nano /root/steem-api/data/witness_node_data_dir/config.ini

p2p-endpoint = 0.0.0.0:2001

shared-file-full-threshold = 9900

webserver-http-endpoint = 0.0.0.0:8091
webserver-ws-endpoint = 0.0.0.0:8090

plugin = webserver p2p json_rpc account_by_key reputation market_history
plugin = database_api account_by_key_api network_broadcast_api reputation_api market_history_api condenser_api block_api rc_api

# Console appender definition json: {"appender", "stream"}
log-appender = {"appender":"stderr","stream":"std_error"}

# File appender definition json:  {"appender", "file"}
log-appender = {"appender":"p2p","file":"logs/p2p/p2p.log"}
log-appender = {“appender”:“rpc”,“file”:“logs/p2p/rpc.log”}

# Logger definition json: {"name", "level", "appender"}
log-logger = {"name":"default","level":"debug","appender":"stderr"}
log-logger = {“name”:“rpc”,“level”:“debug”,“appender”:“rpc”}
log-logger = {"name":"p2p","level":"warn","appender":"p2p"}
  • 위 내용 보시고 설정 변경하시면 됩니다.

여기까지 완료되면 시작을 해도됩니다.

./run.sh start

그리고 로그를 확인 하면

./run.sh log

이렇게 증인들이 블럭을 생성하는 것이 보이면 완성입니다.
그럼 여기까지 해서 Steem-api 노드가 준비 완료되었습니다.

3. AH Node 설치

위의 API Node 와 동일하게 깃허브에서 복사해옵니다. 폴더명만 다르게 하면 됩니다.

git clone https://github.com/steemfans/steem-docker-ex.git steem-ah

그리고 최신 버전을 설치 합니다.

cd steem-ah
docker pull ety001/steem-full-mira:0.23.1
docker tag ety001/steem-full-mira:0.23.1 steem

그리고 환경 설정을 해 줍니다

mv example.env .env
nano .env

DOCKER_NAME="steemah"
PORTS=2002,8092,8093

여기에서도 이 2가지만 고쳐주시면 됩니다.

먼저 별도의 스크린을 분리하고 다운로드를 해야 합니다.

screen -R steemah

앞에서 api Node 할 때 한번 해보셨기 때문에 어렵지 않게 진행 하실 수 있을 것입니다.

wget -c -qO- https://files.steem.fans/data/steem_ah-20210607.tar.lz4 | lz4 -d | tar x

ah Node 의 경우 약 530G 정도 되기 때문에 좀더 많이~ 기다리시면 됩니다.

다운로드가 완료되면 ah Node 역시도 blockchain 폴더에 받아졌을 것입니다.
이 폴더도 동일하게 옴기면 됩니다. * 폴더 명은 절대값을 기준으로 작성했습니다.

mv blockchain /root/steem-ah/data/witness_node_data_dir/

옴겨졌으면 환경설정을 다시 합니다.

nano /root/steem-ah/data/witness_node_data_dir/config.ini

p2p-endpoint = 0.0.0.0:2002

shared-file-full-threshold = 9900

webserver-http-endpoint = 0.0.0.0:8092
webserver-ws-endpoint = 0.0.0.0:8093

plugin = webserver p2p json_rpc condenser_api account_history_rocksdb account_history_api

# Console appender definition json: {"appender", "stream"}
log-appender = {"appender":"stderr","stream":"std_error"}

# File appender definition json:  {"appender", "file"}
log-appender = {"appender":"p2p","file":"logs/p2p/p2p.log"}
log-appender = {“appender”:“rpc”,“file”:“logs/p2p/rpc.log”}

# Logger definition json: {"name", "level", "appender"}
log-logger = {"name":"default","level":"debug","appender":"stderr"}
log-logger = {“name”:“rpc”,“level”:“debug”,“appender”:“rpc”}
log-logger = {"name":"p2p","level":"warn","appender":"p2p"}
  • 위 내용 보시고 설정 변경하시면 됩니다. 눈치 채셨겠지만 PortPlugin 만 잘 설정해주면 됩니다.

여기까지 완료되면 다시 또 시작을 합니다.

./run.sh start

그리고 로그를 확인 하면

./run.sh log

아까 API Node와 동일하게 나오게 됩니다. 이상한 것은 아닙니다. 정상적이게 잘 동작 하는 겁니다.

이 이외에 Hive mind 설치가 있는데, Jussi 설치 할떄 포함해서 별도로 다시 포스팅 하겠습니다. 이유는 Hive mind 자체가 API 노드가 완성되어야 하는데 현재 상태에서는 완성되지 않을 상황이라 내일 Jussi 를 포스팅 하면서 다시 한번 소개를 해드리겠습니다.

작성 예정인 글 List

  • Nodejs 를 이용한 스팀 API 사용해보기 (계속)

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

스팀잇 기본 이야기

니트로스 (SCT, ZZAN 등 ) 이야기

스팀잇 심화 이야기

스팀잇 보상과 연결되는 이야기

해킹과 관련된 이야기

개발과 관련된 이야기
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

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

WWW.QOO10.COM

start success go! go! go!

어이쿠~ 뭔 말인지...ㅎㅎ
날씨 덥네요! 건강 잘 챙기시고, 좋은 하루요^^

너무 더워져서 힘듭니다 ㅠㅠ
원기 보충이 필요해요

@ayogom transfered 8 KRWP to @krwp.burn. voting percent : 9.24%, voting power : 60.19%, steem power : 1785019.22, STU KRW : 1200.
@ayogom staking status : 825 KRWP
@ayogom limit for KRWP voting service : 1.65 KRWP (rate : 0.002)
What you sent : 8 KRWP
Refund balance : 6.35 KRWP [54470689 - 07a1b662af393888d84b5ee72b1602e20905df8f]

@banguri님이 당신을 멘션하였습니다.

https://www.steemit.com/@banguri/6-9

@bitai님이 당신을 멘션하였습니다.

https://www.steemit.com/@bitai/2uxfmy-4newb

Thanks for a good guide.