최신 Full node 설치 1편
안녕하세요 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일에 한번씩 데이터를 갱신해주고 있기 때문에 해당 날짜에 해당하는 데이터를 받아야 합니다.
설치.
현재 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"}
- 위 내용 보시고 설정 변경하시면 됩니다. 눈치 채셨겠지만
Port
와Plugin
만 잘 설정해주면 됩니다.
여기까지 완료되면 다시 또 시작을 합니다.
./run.sh start
그리고 로그를 확인 하면
./run.sh log
아까 API Node와 동일하게 나오게 됩니다. 이상한 것은 아닙니다. 정상적이게 잘 동작 하는 겁니다.
이 이외에 Hive mind 설치가 있는데, Jussi 설치 할떄 포함해서 별도로 다시 포스팅 하겠습니다. 이유는 Hive mind 자체가 API 노드가 완성되어야 하는데 현재 상태에서는 완성되지 않을 상황이라 내일 Jussi 를 포스팅 하면서 다시 한번 소개를 해드리겠습니다.
작성 예정인 글 List
- Nodejs 를 이용한 스팀 API 사용해보기 (계속)
누군가에게는 도움이 될 수 있는 글
스팀잇 기본 이야기
- 복잡한 키&패스워드는 그만 손쉬운 로그인 키체인의 사용법
- 계정 옆의 숫자 평판? "reputation" 이란
- 스팀잇 내부 거래 사이트, 마켓
- 오랜만에 스팀잇에 돌아왔더니 로그인이 안됩니다 (Logging in with non-posting key)
- 스팀잇에 기존 사용하던 트론 지갑을 연결하는 방법
- 스팀 체인의 패스워드 / 키의 역활
- Steemit의 태그 사용법과 커뮤니티스 사용법
- Steemit 프로필 변경 방법
- 스팀파워 임대가 안된다 왜?
- 스팀잇 계정 만들기
- 스팀잇 저장 보상의 종류와 뭐가 좋을지
- 스팀잇 속닥속닥 비밀 메모 사용하기!
- 스팀/스달 입금, 출금 그리고 업비트 이용방법
- 갑자기 steemit 사이트가 접속이 안된다면?
- 스팀잇 내에 붉은 글씨 사용법
- 스팀잇 지갑에 접속이 되지 않을 때
- 스팀잇 글 작성 문법 [마크다운편]
- 스팀잇 글 작성 문법 [HTML]
- 스팀잇 가독성 및 작성을 편하게 해주는 "Steemit.com Enhancer" 툴
- 스팀 키 권한을 해제 해 보자
니트로스 (SCT, ZZAN 등 ) 이야기
- Steem체인의 또하나의 커뮤니티 "zzan"
- Steem체인의 또하나의 커뮤니티 "sct"
- [요청] 스팀엔진 Explorer 가 접속이 되지 않아요
- [요청] 스팀엔진 사용방법
- SCT 포스팅피 납부 확인 및 납부 방법
- 니트로스(SCT, ZZAN, AAA) 에 대한 설정 확인해보기
스팀잇 심화 이야기
- 스팀의 인플레이션에 대해서
- 하루에 스팀 리워드 풀에 포함되는 스팀은 얼마나 될까?
- 하루에 도대체 어느정도의 스팀은 생성될까요?
- 내가 보팅 했더니 보상이 떨어졌다? 왜?
- 스팀달러가 1달러를 유지하는 방법
- 글이 써지지 않아요 왜? Resource Credits!? Your transaction failed to process
- 스팀잇 에서의 $ 는 USD(미국달러) 인가요?
- 스팀은 DPOS 기반의 블록체인입니다. 그럼 DPOS가 뭔가요?
- 증인에 역활은 무엇일까
- 스팀 증인 노드 세팅하기 1탄
- 스팀 증인 노드 세팅하기 2탄
- Steem Node 정리 (Full node 1편)
- Steem Node 정리 (Full node 2편) -설치
- 증인 노드 feed price 업데이트 방법
스팀잇 보상과 연결되는 이야기
해킹과 관련된 이야기
개발과 관련된 이야기
- Nodejs 가 무엇인지 그리고 어떻게 설치 하는지?
- [NodeJS] API 사용 법 1편 스팀 라이브러리 설치
- [NodeJS] API 사용 법 2편 보팅을 해볼까?
- [NodeJS] API 사용 법 3편 포스팅을 해볼테다!
- [NodeJS] API 사용 법 4편 예약 포스팅 해보기
- [NodeJS] API 사용 법 5편 예약 포스팅 해보기 -2편 (포스팅 수정)
- [NodeJS] API 사용 법 6편 예약 포스팅 해보기 -3편 (매일매일 글쓰기)
- [NodeJS] API 사용 법 7편 스팀 블럭 모니터링 하기
- [NodeJS] API 사용 법 8편 스팀 블럭 모니터링 하기 2편
- [NodeJS] API 사용 법 9편 Nodejs가 가지는 불편함 (콜백지옥)
- [NodeJS] API 사용 법 10편 간단한 보팅 봇 만들기
- [NodeJS] API 사용 법 11편 Steem enjin API 사용해보기 (설치편)
- [NodeJS] API 사용 법 12편 Steem enjin API 사용해보기 (자동 파워업!)
[US$80.50](▼16%)[SONGJING]SONGJING SJ-125E 제습기 / 송징 SJ-125E 제습기 / 36평적용 / 165W 고출력 / 대용량 물탱크 / 관부가
WWW.QOO10.COMstart 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.