굳헬로의 스팀 프로그램 일기!! 아흔여덟번째 #98 SSC(Steem Smart Contracts) 테스트넷 증인 노드 설 치 완료!!

in sct •  23 days ago  (edited)


오늘은 오랜만에 스팀 프로그램일기로 돌어왔습니다.

한참 파이썬 스팀몬스터 자동 배틀 프로그램을 만들다... 덱 짜는게 너무 힘들어서... 좀 쉬고 있었네요.

그래도 자동으로 퀘스트 받고, 죽음 Death 덱 퀘스트 일경우에는 새 퀘스트로 변경하는 자동 프로그램이 잘 돌아가고 있어 퀘스트를 늦게 받아 지연되는 일은 사라졌네요.

이제 스팀몬스터 아니 이제부터는 스플린터랜드라고 불러야 겠군요. 스플린터랜드의 언테임드 Untamed 출시가 얼마남지 않아서 새로운 정보가 많이 올라오고 있네요.

그런데 최근 정신줄을 좀 놓고 살아서 그런가... 새로운게 나올때마다 적응 하는게 너무 힘들다는... ㅠㅠ

과연 잘 따라갈 수 있을지 모르겠네요.

그래도 빨리 언테임드 카드팩 받아서 까보고 싶은 마음은 굴뚝같네요.

그리고 게임 밸런스 잘 맞추어서 나오면 좋겠어요.

그래야 스플린터랜드의 흥행이 계속 이어지리라 생각됩니다.

그럼 본론으로 들어가서 오늘은 SSC (Steem Smart Contract) testnet node를 설치한 이야기를 남겨보겠습니다.

스팀에서는 스마트 컨트랙트를 지원하고 있지 않기 때문에 SSC를 이용하여 스마트 컨트랙트를 지원하려고 한다는군요.

@harpagon이 몇달에 걸쳐 시스템을 개발해 왔으며 최근 테스트넷을 가동하기 시작했고 증인 노드를 모집하였습니다.

Steem Smart Contracts: a few words regarding the consensus layer

사실 처음에는 별로 관심 없었는데...

슈퍼 개발자 원사마 @wonsama 님과 스팀코인판에서 여러가지 기능을 개발중인 햅뽀이 @happyberrysboy 님의 도움을 받아 저도 SSC 노드를 설치해 보았습니다.

SSC 노드 설치 방법은 원사마님이 잘 정리해 주시고 설명도 잘 해주셔서 별 무리 없이(?)는 아니고... 몇번의 시행 착오를 격고 현재 정상적으로 잘 돌아가고 있네요.

저도 일단 설치 방법을 잘 정리해 두어 계속 참고할 수 있도록 이곳에 정리를 해두어야 겠습니다.

전 윈도우10에 WSL(Windows Subsystem for Linux )을 이용하여 Ubuntu를 설치하고

여기에 SSC 노드를 설치하였습니다.

SSC 노드를 돌리기 위해서는 먼저 nodejs와 mongodb 가 필요합니다.

원사마님의 SSC 설치 가이드를 참고하여

SSC) 개인 기록용 - 테스트 넷 증인을 위한 설정 가이드

몽고db를 설치 하였습니다.

몽고db 제거
sudo service mongod stop
sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

몽고db 설치
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get install -y mongodb-org
sudo service mongod start

몽고db 설치 후 SSC 노드를 설치 하고 몇가지 셋팅을 해주면 설치가 완료 됩니다.

설치 가이드 : https://gist.github.com/harpagon210/4c1e0421c9b90f2d3b6d3574478c83f9
git clone https://github.com/harpagon210/steemsmartcontracts.git
cd steemsmartcontracts
git checkout witnesses
npm install
wget https://testapi.steem-engine.com/ssc.testnet1.archive
mongorestore --gzip --archive=ssc.testnet1.archive
update the config.json file with startSteemBlock: 38000462
cp .env.example .env
.env 에 계정명 및 ACTIVE 키 추가하기

그리고 노드를 돌리기 위해서 필요한 포트 5000,5001의 방화벽을 열고

자기 자신에게 0.001 스팀을 다음의 메모와 함께 보내면 됩니다.

{
    "id": "ssc-testnet1",
    "json": {
        "contractName": "witnesses",
        "contractAction": "register",
        "contractPayload": {
            "IP": "본인아이피",
            "RPCPort": 5000,
            "P2PPort": 5001,
            "signingKey": "본인 엑티브키 공개키 정보",
            "enabled": true
        }
    }
}

이렇게 goodhellonode가 등록이 되었네요.

원사마님이 돌리는 wdev와 스팀코인판에서 돌리는 sct.ssc 노드도 보입니다.

그리고 하파곤이 보내준 SSC 토큰을 스테이킹 하고 증인 노드를 돌리기 시작했습니다.

하파곤이 SSC 토큰을 늦게 보내줘서 어제 아침에서야 가동을 시작했네요.

그런데 그동안 블록이 하도 밀려서... 따라잡는데 며칠은 걸리겠더라구요.

거기다 버그로 SSC 블록도 이상하게 나오고...

또 다시 원사마님의 도움을 받아 다른 증인에게서 최신 db 정보를 받아서 복원을 하였습니다.

[ssc] 스팀엔진 테스트넷 증인 기록 v0.1.4

db drop
mongo --host 127.0.0.1:27017
use ssctestnet1
db.dropDatabase()

recovery
mongorestore --gzip --archive=ssc.testnet1.archive

그리고 노드를 재가동해서 드디어 저도 초록불이 뜨게 되었네요.

저를 위해 고생하신 원사마님과 햅뽀이님께 감사의 인사 올립니다.

테스트넷이 끝나고 정식으로 SSC가 스팀 사이드체인으로 운영되게 된다면 SSC 정식 증인으로 활동을 하고 싶은 욕심이 생겼네요.

그나저나 잘 모르는 생소한 분야라 앞으로 많이 배우고 공부해야 할 것 같습니다.

열심히 파이팅 해보겠습니다.

그럼 여러분들 오늘 하루도 행복하시고, 파이팅 하시기 바랍니다.


굳헬로의 스팀 프로그램 일기!! 시리즈

#1 Python 프로그램 설치 && steemengine 파이썬 api 설치 && 간단한 steemengine 예제

#2 비주얼 스튜디오 코드 프로그램 설치 && 비주얼 스튜디오 코드를 사용하여 파이썬 다루기 && 간단한 steemengine 예제

#3 스팀엔진 토큰의 정보를 가져오는 findOne() && 누군가의 토큰 사용 내역을 가져오는 get_history() && JSON 데이터 출력

#4 steemengine Token 클래스 && Token.get_holder() && Token.get_market_info() && Token.get_buy_book() && Token.get_sell_book()

#5 스팀엔진 블록을 뒤져서 원하는 정보를 찾아보자!! 스팀엔진 마켓 거래 내역을 뽑아내는 예제

#6 파이썬으로 스팀엔진 토큰들을 클레임 해보자.

#7 드디어 첫 실전!! 무한 반복 작업 수행하기!! 이제 직접 클레임 하는 손맛은 잊자. 무한 반복 자동 클레임!!

#8 텔레그램 봇을 이용해 알림을 받아보자!! && 무한 반복 자동 클레임의 정보를 텔레그램으로 받아보기!!

#9 무한 반복 자동 클레임 업그레이드!! && 토큰 잔고 확인 && 토큰 전송과 토큰 전송 내역을 텔레그램으로 받아보기!!

#10 토큰 전송내역을 검사하고, 토큰을 전송 받으면 텔레그램으로 알림을 받아보기!!

#11 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (1/2)

#12 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (2/2) 스팀엔진 토큰 임대내역 추적 완료!!

#13 웹 프로그래밍의 시작!! 파이썬을 이용하여 정보를 MySQL 데이터 베이스에 저장해보기!!

#14 파이썬을 이용하여 데이터베이스로부터 정보를 가져오기 && 스팀코인판 3대풀 임대내역 데이터베이스 작업 완료!!

#15 웹 프로그래밍을 이용하여 스팀코인판 3대조합의 임대 내역을 웹으로 확인해보자 !!

#16 스팀엔진 최신 블록을 검사하여 필요한 정보를 데이터베이스에 저장하기!! 3대 조합의 임대내역을 최신으로 저장하기!!

#17 조합들이 필요한 기능 드디어 완성!! 자동 클레임과 자동 분배 기능!!

#18 스팀코인판 3대 조합의 임대내역과 실시간 예상 분배 금액을 웹으로 확인해보자!!

#19 어제 만든 프로그램 업그레이드!! 개별 상세내역보기 기능 추가!!

#20 시행착오... 그리고 시련... 하지만 원사마님 덕분으로 엄청난 레벨업!! 감사합니다. 더욱 발전하겠습니다.

#21 레벨업을 했지만 또 다시 찾아온 시련!! 프로그램 결과와 블록체인에 기록된 결과가 다르다!! 어떻게 해야 할까...

#22 오늘부터 새로운 도전!! 자동 보팅 만들기!! 그 첫번째 스팀코인판의 소각글에 자동보팅을 해보자!! 첫번째 시간 (1/N)

#23 스팀코인판의 소각글의 정보를 가지고 와서 자동보팅을 해보자!! 그 두번째 시간 (2/N)

#24 스팀코인판 3대조합의 임대내역을 웹으로 확인해보자!! 업그레이드!!

#25 스팀코인판 3대조합의 임대내역을 웹으로 확인해보자!! 업그레이드 2!! 그리고 개발 예정 사항 공개!!

#26 드디어 첫 실전 가동 준비중... 스팀코인판 유니온 조합의 수익 자동분배 작업 완료중...

#27 스팀코인판 유니온 조합 첫 자동 분배 결과!! 그리고 보완!!

#28 스팀코인판 유니온 조합 자동 분배 프로그램의 결과를 웹으로 확인해 보자!!

#29 스팀코인판 유니온 조합 자동 분배 상황을 텔레그램으로 확인!! 임내 확인 페이지 정렬 기능 추가!!

#30 스팀코인판 조합의 임대량 페이지 정렬 기능 업그레이드!! 그리고 임대량 파이 차트 완성!!

#31 스팀코인판 조합의 하루하루 임대량 변화를 차트로 확인해보자!!

#32 트리플A를 이용하면서 그동안 번거로웠던 클레임 스테이킹 전송 작업 이젠 안녕!! 자동으로 AAA를 전송하고 클레임하고 스테이킹을 해보자!!

#33 굳헬로가 만든 스팀코인판 조합 자동 클레임과 자동 분배 프로그램 원피스 조합에도 사용 개시!!

#34 스팀코인판 조합 원피스 자동 클레임과 자동 분배 프로그램 업그레이드!! 텔레그램 봇으로 그룹 메시지를 받아보자!!

#35 스팀에서 새글 정보를 텔레그램으로 받아보자!! 함께 정보를 받아보는 텔레그램 그룹방 개설!!

#36 스팀엔진 블록 검사 놓치는 블록이 없도록 해보자!! 파일 입출력 기능 활용!!

#37 스팀엔진 블록을 검사하여 본인글의 댓글을 텔레그램 알람으로 받아보자!!

#38 드디어 완성!! 보팅 알람봇!! 스팀엔진 블록을 검사하여 본인글에 보팅이 찍히면 텔레그램 알람으로 받아보자!!

#39 파이썬과 텔레그램을 이용한 챗봇 프로그래밍의 시작!! 그 첫번째!! 챗봇과 대화를 해보고,특정 메시지에 반응을 해보자!!

#40 파이썬과 텔레그램을 이용한 챗봇 프로그래밍!! 파이썬에 CommandHandler를 사용하여 특정 명령어를 내려보자!!

#41 굳헬로의 텔레그램 보팅알람 서비스 일단은 완성!! 앞으로 다양한 기능 추가 예정!! 사용해보고 후기 남겨주세요!!

#42 업비트의 원화 마켓 코인들의 시세를 텔레그램으로 받아보자!! /get 비트코인, /get 스팀, /get 코인이름 명령어 등록!!

#43 업비트의 원화 마켓 코인들의 시세를 텔레그램으로 받아보자2!! 알려줘 비트코인, 알려줘 스팀 노노!! 이제 바로 비트코인 스팀 명령어 등록!!

#44 매일 매일 새로운 기능이 추가되고 있는 굳스팀 챗봇!! 챗봇을 이용하여 스팀엔진 토큰의 시세 정보를 받아보자!!

#45 텔레그램 챗봇을 이용하여 최신 코인 주요 뉴스를 받아보자!! 굳스팀 챗봇 소개!!

#46 굳스팀 텔레그램 챗봇 새 기능 추가!! 굳스팀 챗봇을 이용하여 최신 헤드라인 뉴스 정보를 받아보자!!

#47 뉴스를 구독해보자!! 명령어 입력없이 특정 시간 챗 봇이 뉴스를 자동으로 보내 드립니다.

#48 본격적으로 스팀코인판 조합의 자동 보팅시스템 제작 돌입!! 기본 설계 및 보팅 설정 페이지 작업 완료!!

#49 스팀코인판 조합의 자동 보팅시스템 제작 2번째 시간!! 보팅 설정에 따라 각 조합원 별로 보팅룰을 적용해 보자!!

#50 스팀코인판 조합의 자동 보팅시스템 제작 3번째 시간!! 설 정된 보팅룰을 파이썬 자동 보팅 프로그램에 가져오기!!

#51 스팀코인판 조합의 자동 보팅시스템 제작 4번째 시간!! 블록을 검사하여 설정된 보팅룰로 보팅하기!!

#52 스팀코인판 조합의 자동 보팅시스템 제작 5번째 시간!! 자동 보팅시스템 테스트 현황!! 굳!! 따봉~~

#53 스팀코인판 조합의 자동 보팅시스템 제작 6번째 시간!! 보팅룰 검사 프로그램과 자동 보팅 프로그램의 분리!!

#54 스팀코인판 조합의 자동 보팅시스템 제작 마지막 시간!! 드디어 실전 가동!! 오류 수정 및 보팅 현황 확인 웹 페이지 제작 완료!!

#55 이번에는 유니온 조합의 자동보팅 시스템을 만들어 보자!! 유니온 조합의 보팅설정 프로그램과 보팅 설정 결과 확인 기능 완료!!

#56 스팀 블록을 검사하여 유니온 조합의 조합원 글에 보팅 룰셋 적용 및 자동 보팅 수행!!

#57 유니온 조합 우량 임대자 우대 조치!! 특별 규칙에 따른 보팅 설정 적용!!

#58 유니온 조합 자동 보팅 프로그램 테스트 결과 성공!! 보팅 현황을 확인할 수 있는 웹 페이지 추가 완료!!

#59 새로운 프로그램 공부를 시작!! 스팀몬스터 자동화를 위해 스팀몬스터 API를 분석해보자!! 그 첫시간!!

#60 스팀몬스터 사용자 정보를 출력해보고, 사용자가 가진 카드 정보를 출력해보자.

#61 조합의 자동분배 프로그램 수정 및 유니온 자동보팅 프로그램 가동 시작!! 오늘도 파이썬으로 스팀몬스터 API를 공부해 보자!!

#62 조합의 자동보팅 프로그램 업그레이드!! 오늘은 스팀몬스터 마켓의 정보를 가져오는 API를 공부해 보자!!

#63 파이썬 스팀몬스터 API를 이용하여 사용자가 보유하고 있는 모든 카드의 값을 계산해보자!!

#64 파이썬 스팀몬스터 API를 이용하여 사용자가 보유하고 있는 모든 카드의 값을 웹 프로그램으로 확인해보자!!

#65 파이썬 스팀몬스터 API를 이용하여 카드 최저가 합산 프로그램 업그레이드!! 소팅 오류 수정 및 이미디 적용 완료!!

#66 파이썬 스팀몬스터 API를 이용하여 스팀몬스터 배틀 결과 정보를 출력해 보자!!

#67 오늘은 스팀몬스터 배틀 결과 정보를 확인할 수 있는 웹 페이지를 만들어 보자.

#68 스팀몬스터 배틀 결과 정보를 이미지로 보기 쉽게 만들어보자.

#69 스팀몬스터 API get_cards_stats()과 get_card_details()를 이용하여 리워드 카드 발매 수량을 확인해 보자!!

#70 스팀몬스터 리워드 카드의 발행량과 소각량을 웹 페이지에 출력해 보자.

#71 스팀몬스터 일일퀘스트 보상으로 받은 리워드카드의 정보를 웹 페이지에서 확인해 보자.

#72 스팀몬스터 일일퀘스트 보상으로 받은 리워드카드의 가치를 웹 페이지에서 확인해 보자.

#73 오늘은 트아 형님께서 만드신 나의 스팀 자산은? 프로그램을 웹 페이지로 확인할 수 있도록 만들어 보자!!

#74 나의 자산을 확인 하는 프로그램에 스팀파워 임대량 추가!!

#75 나의 스팀엔진 토큰들의 수량을 확인하고, 스팀 환 산 가치를 알아보자!!

#76 나의 스팀엔진 토큰들의 수량과 스팀 환산 가치를 웹 페이지에서 확인해 보자!!

#77 새로운 시작!! 파이썬 웹 프로그래밍을 위한 파이썬 웹 프레임워크 장고 설치 및 가동!!

#78 파이썬 웹 프레임워크 장고의 이해!! 장고 모델을 등록하고, 어플리케이션을 만들어 보자!!

#79 파이썬 웹 프레임워크 장고의 이해!! 장고 뷰를 이용해 모델을 템플릿으로 출력해 보자!!

#80 파이썬 웹 프레임워크 장고를 지원하는 개발 툴 파이참을 사용해 보자!!

#81 아니 이렇게 좋은걸 이제서야...프로그램 개발에 강력하게 도움이 되는 Git와 GitHub를 이용해 보자!!

#82 파이썬 장고를 이용해 웹 사이트 개발 착수!! mysql 데이터베이스를 연동 및 모델 생성!!

#83 스팀코인판 홍보글 보팅 운영방침 변경에 따른 새로운 눈치게임을 위해 일일 소각양을 체크해보자!!

#84 스팀코인판 홍보 소각 전쟁!! 홍보 소각 내역을 웹 페 이지에서 확인해 보자!!

#85 스팀코인판 홍보 소각 전쟁!! 홍보 소각 내역을 웹 페이지에서 확인해 보자2!! 금액별 상세내역 보기 업그레이드!!

#86 스팀코인판 홍보 소각 전쟁!! 홍보 소각 내역을 웹 페이지에서 확인해 보자3!! 일자별 소각 금액을 차트로 확인해 보자!!

#87 스팀코인판 유니온 조합의 유료 보팅 서비스 자동화 개발 착수!! 첫시간!!

#88 스팀코인판 유니온 조합의 유료 보팅 서비스 자동화 개발 두번째 시간!! 유료 보팅 신청 내역 데이터베이스에 저장 완료!!

#89 스팀코인판 유니온 조합의 유료 보팅 서비스 자동화 개발 세번째 시간!! 자동 보팅을 위한 오류 대비 및 자동 보팅 수행!!

#90 스팀코인판 유니온 조합의 유료 보팅 서비스 자동화 개발 완료!! 드디어 실전 투입!!

#91 스팀코인판 유니온 조합의 유료 보팅 서비스 자동화 서비스 오류 수정!! 유료 보팅 현황을 웹 페이지에서 화인해 보자!!

#92 파이썬 스팀 API를 이용하여 다양한 봇을 돌리면서 예 상 못한 오류로 대형사고(?) 발생!! 이렇게 또 하나씩 배워 나갑니다.

#93 유니온 조합의 유료보팅 자동화 서비스 오류 수정!! 예상치 못한 오류에 대한 대비!!

#94 다시 시작하는 파이썬 스팀몬스터 프로그램!! 오늘은 스팀몬스터 카드를 판매하는 코드를 만들어 보자!!

#95 파이썬 스팀몬스터 프로그램!! sm_start_quest, sm_refresh_quest, sm_find_match

#96 파이썬 스팀몬스터 프로그램!! get_from_block(), get_transaction(), get_battle_status(), get_battle_result()

#97 파이썬 스팀몬스터 프로그램!! 자동으로 퀘스트를 받고, 자동으로 퀘스트를 변경하고, 자동으로 배틀 시작!!

Sort Order:  

@tipu curate

ㅎㅎ 이런걸 올리시면 제가 댓글 달게 없잖아요! ㅋ
즐거운 오후 보내세요^^

·

함께 공부해 봅시다~~~ ㅎㅎㅎ

  ·  23 days ago (edited)

오늘 처음 파이썬을 깔고 굿헬로님 따라 하고 있습니다.
첫날부터 에러가 나네요.
코딩 생 초보라 뭘 해야 할 지 모르겠네요.
일단 설치는 완료했는데 스팀엔진 API 까는데 에러가 납니다.
에러.jpg

업그레이는 어떻게 하는 것인가요?

·

경고글을 보시면

pip를 업그레이드 하라고 나와있네요.
작은 따옴표 안에 있는걸 그대로 따라 치면 됩니다.

Hi @goodhello!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.012 which ranks you at #3993 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 89 contributions, your post is ranked at #16.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers appreciate your great work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server