[NodeJS] API 사용 법 8편 스팀 블럭 모니터링 하기 2편

안녕하세요 ayogom 입니다.
주말은 잘 쉬셨나요? 주말동안 딸아이 생일이 껴 있는 바람이 딸아이와 자발적으로.... 함께 놀아주었답니다. 언제 이렇게 컸는지 볼 때 마다 기쁘고 신기한 마음뿐입니다.

요 몇일 쉬는 바람에 Nodejs 에 대한 포스팅을 못 했는데요. 오늘 부터 다시 Nodejs를 배워보는 시간을 갖도록 하겠습니다. 참고로 어떤 분께서 개인적으로 연락을 주시면서까지 열정적으로 참여를 해주셔서 감사한 마음 뿐입니다.

지난 포스팅에서 스팀 블럭을 모니터링 하는 방법에 대해서 이야기를 했는데, 오늘은 그 2편으로 다른 방법으로 모니터링 하는 방법에 대해서 소개하고자 합니다. 지난시간에서 1가지 API로 진행을 했다면, 이번에는 2가지 API로 진행을 하게 됩니다.

첫번째는

var steem = require('steem');

steem.api.streamBlockNumber('head', function(err, result){
        console.log(err, result);
});

바로 스팀블럭의 번호를 호출하는 소스입니다. 이 내용을 수행하게 되면 아래와 같이 블럭이 갱신될때마다 알려주게 됩니다.

그리고 두번째 API는 바로 steem.api.getBlock 입니다. 이 API는 해당 블럭의 정보를 표시 해 주게 됩니다. 마치 이전 시간에 배웠던 steem.api.streamOperations 처럼요.

이걸 코드에 추가 하게 되면,

var steem = require('steem');

steem.api.streamBlockNumber('head',function(err, result){
        console.log(err, result);
        steem.api.getBlock(result ,function(err, result){
                console.log(result);
        })      
});

이러한 코드가 됩니다.
실행 시켜보겠습니다.

이렇게 되면 첫번째 streamBlockNumber에 의한 출력으로 54210720을 받게 되고 해당 블럭의 정보를 그 다음 출력되게 됩니다.

이러한 방식으로 모니터링을 하게 됩니다. 여기서 원하는 내용만 조금 추출해 보는 것까지 알려드리자면

var steem = require('steem');

steem.api.streamBlockNumber('head',function(err, result){
        console.log(err, result);
        steem.api.getBlock(result ,function(err, result){
            for (var i=0;i<result.transactions.length;i++){ 
                console.log(result.transactions[i].operations[0][0]);
            }
        })      
});

for을 통해 전체 transactions에 대한 갯수를 파악해서 해당 transactions의 옵션( 보팅인지, 글작성인지, 팔로우인지 등등)을 확인 하게 됩니다. 보팅봇이라면 글작성만 확인을 해서 원하는 저자가 나오는지 보면 되겠죠?

사실 이 코드에는 한가지 매우 불편한점이 하나 있는데요 어떻게 보면 nodejs의 특성이 묻어납니다. 내일은 이 부분에 대해서 이야기를 좀 드리겠습니다.

그럼 오늘도 이만

작성 예정인 글 List

  • Nodejs 를 이용한 스팀 API 사용해보기 (계속)
  • SCT 포스팅피 납부 방법
  • 니트로스별(SCT, ZZAN, AAA 등) 설정 확인하는 방법

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

스팀잇 기본 이야기

스팀잇 심화 이야기

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

해킹과 관련된 이야기

개발과 관련된 이야기
H2
H3
H4
3 columns
2 columns
1 column
5 Comments