Steem 트랜잭션 정보 저장 위한 DB 구축 #1

in sct •  17 days ago 

안녕하세요 꿀푸입니다.

얼마전 부터 깨작이고 있는 것이 댓글이나 포스팅 관련 통계 정보를 볼수 있도록 만들어 보고 있습니다. 트랜잭션 정보 저장 위해 블록 모니터링과 데이터 저장을 위한 시스템을 구축하려고 하고 있는데요. 개인적으로 만들어 보고 싶은 거라서 즐겁게 삽질 중인데 결과를 포스팅 하고 공유해보려고 합니다.

1) 만들고자 하는 것

comment 관련된 다양한 통계 정보를 차트로 확인해 보자.

출처 : chart.js


2) Database 설치

가장 먼저 트랜잭션 정보를 저장하기 위해서 mysql DB 를 설치를 하였습니다.
전통적인 오라클만 사용을 하다 보니 nosql을 쓰면 왠지 인싸 개발자가 될 것만 같아서 mongodb 를 설치해보고 연동을 해보았는데요.
세팅을 끝내고 가만 생각을 해보니 통계를 뽑으려면 쿼리를 작성해야 하는데 mongodb 의 경우 쿼리 작성이 아주 힘들고, 또 쿼리 문법을 공부하기 위해 많은 시간을 투자해야 할 것 같아서 포기를 하고 아주 친숙한 mysql를 설치를 구축을 해보았습니다.

설치 서버는 aws 1년 무료 우분투 18.04 버전 서버에 하였습니다.

우분투에서는 apt로 mysql 패키지 설치가 가능합니다. 설치 하기 전 패키지에 대한 정보 업데이트를 수행 합니다.

$ sudo apt update

업데이트가 완료 되면 mysql 패키지를 설치합니다.
$ sudo apt install mysql-server

설치가 잘 되어 있는지 확인하려면 아래 명령어를 입력하면 됩니다. 저는 5.7.27 version 이 설치 되었네요.
$ dpkg -l | grep mysql-server

원격지에서 데이터베이스 접근이 가능하도록 하기 위해 config 파일을 수정합니다. 아래 명령어를 통해 config 파일의 bind address 를 0.0.0.0 으로 변경 해줍니다.
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

여기까지 DB 설치가 완료 되었네요.

3) 데이터베이스 생성, 사용자 등록

먼저 아래 명령어 입력하여 root 비밀번호를 세팅하여 줍니다.
$ sudo mysql -u root -p

데이터 저장을 위해 아래 명령어를 통해 "steemdb" 라는 데이터베이스를 생성하였습니다.
$ create database steemdb;

데이터베이스에 접근 할 계정도 생성을 해주었구요.
$ create user '<<계정명>>'@'localhost' identified by '<<비밀번호>>';

테스트를 위해 모든 IP 에서 접근이 가능하도록 접근 권한을 설정하였습니다. 시스템 구축이 완료 되면 특정 IP만 접근 가능하도록 변경을 하여야 하구요.
$ grant all privileges on *.* to ‘root’@‘%’ identified by '<<root 패스워드>>'


여기까지 데이터 저장을 위한 환경 구축이 완료 되었네요. 다음할일은 블록 정보를 가져와서 comment에 해당하는 정보를 추출하고 데이터베이스에 insert 하는 기능을 구축하려고 합니다.

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!