develop custom_top_html:no
default debug random = 0 / type = READ / detected = READ

안녕하세요.

쌩광부입니다.

 

한동안 ESN 재단 설립 때문에 너무 바빠서 강좌를 못했었는데요.

오늘 ESN 재단 구성원 모집이 완료되어 한시름 놓았습니다.

그리하여... 다시 강좌를 시작하도록 하겠습니다.

 

지난 강좌는 땡글 블로그와 스팀잇에서 보실 수 있고요.

https://steemit.com/@topmining

https://www.ddengle.com/@TopMining

 

오늘 강좌는 계정 트랜젝션 개수를 확인하는 방법인데요.

트랜젝션 개수가 왜 필요한 걸까요?

 

트랜젝션 개수는 새로운 트랜젝션을 만들기 위한 Nonce 값으로 활용됩니다.

코인을 전송하기 위해서 트랜젝션이 필요한데요.

Nonce는 그 트랜젝션의 일련번호라고 보시면 되겠습니다.

즉, 맨 처음 전송을 할 때는 트랜젝션의 일련번호는 0입니다.

그다음은 1입니다.

이런 식으로 자신의 트랜젝션이 생성될 때마다 고유한 번호를 붙여줘야 하는데요.

그때 사용하기 위해 이전에 생성된 자신의 트랜젝션의 개수를 읽어와 Nonce 값으로 적용하게 되는 것이죠.

 

1. get_txcount.php 파일을 만들고 아래와 같이 코딩합니다.

<?php

require "json-rpc.php";

require "api-config.php";

 

header('Content-type: application/json');

 

$account = array_key_exists('account', $_GET) ? $_GET['account'] : '';

 

if(strlen($account) == 42 && ctype_alnum($account) && strpos($account, '0x') >= 0) {

  $id = 1;

  $json = getEtherRpc($api_host, $api_port, 'eth_getTransactionCount', '"'.$account.'", "latest"', $id++);

 

  $data = json_decode($json, true);

  $error = array_key_exists('error', $data) ? $data['error'] : null;

 

  $result = array();

  if($error) {

    $result['error'] = $error;

  }

  else {

    $value = $data["result"];

    $result['error'] = null;

    $result['result']['count'] = hexdec(str_replace('0x', '', $value));

  }

 

  echo json_encode($result);

}

else {

  $result = array();

  $result['error']['code'] = '-1';

  $result['error']['message'] = 'Invalid address';

 

  echo json_encode($result);

}

 

한 줄 한 줄 살펴볼까요?

 

require "json-rpc.php";

require "api-config.php";

require를 이용해 필요한 파일들을 로드하고요.

 

header('Content-type: application/json');

출력 Content-type을 JSON 형태로 지정합니다.

 

$account = array_key_exists('account', $_GET) ? $_GET['account'] : '';

HTTP GET 형식으로 지갑 주소를 받습니다.

 

if(strlen($account) == 42 && ctype_alnum($account) && strpos($account, '0x') >= 0) {

지갑 주소에 대한 유효성 검사를 하고요.

 

$json = getEtherRpc($api_host, $api_port, 'eth_getTransactionCount', '"'.$account.'", "latest"', $id++);

지정된 IP와 포트로 JSON-RPC를 호출합니다.

eth_getTransactionCount는 계정 트랜젝션 개수를 받아오는 RPC 명령입니다.

id의 경우 큰 의미는 없는데 내가 보낸 RPC의 고유번호라고 보면 됩니다.

여러 명령을 한 번에 보낼 때 유용하게 사용할 수 있지만 지금은 한 건만 보내기 때문에 큰 의미는 없습니다.

 

$data = json_decode($json, true);

받아온 데이터가 JSON 문자열이므로 PHP 배열로 변경합니다.

 

$error = array_key_exists('error', $data) ? $data['error'] : null;

오류가 있는지 확인하고요.

 

$result['error'] = $error;

오류가 있는 경우 오류 메시지를 출력합니다.

 

$result['result']['count'] = hexdec(str_replace('0x', '', $value));

16진수(Hex)값으로 되어있는 개수 값을 10진수로 변경하여 출력합니다.

 

echo json_encode($result);

최종 결과값은 JSON 형태로 변경하면 되는 거죠.

 

이것으로 트랜젝션 개수 가져오는 코딩은 끝나는 거죠.

참~~ 쉽죠!

 

그럼 결과값을 봅시다.

http://서버주소/get_txcount.php?account=지갑주소

 

{

  "result": {

    "count": 10

  }

}

 

위와 같이 나오면 성공입니다.

 

이 강좌의 전체 소스는

https://github.com/topmining/ethersocial-php-api

여기서 확인하면 되고요.

오류가 있으면 언제든 제보해주시면 감사하겠습니다.

 

그럼 다음 강좌도 많이 기대해주세요~~

 

 

-------------------------------------

꼬리말

* 게시글 내용 삭제레벨 강등

* 질문은 각 주제별 게시판에 적어주세요.

 

비트코인 암호화화폐 커뮤니티 땡글~ 땡글~

-------------------------------------

4,006

쌩광부님의 서명

댓글 3
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
1760 개발 [개념] 소프트 포크와 하드 포크 의미(삭제) 쌍둥아빠님에게 워터마크 삭제를 요청하였으나, 이를 거부하여 제 글은 부득이하게 삭제합니다. 참조: https://www.ddengle.com/board_free/5802746   9 15 14210
로움
2017.02.17
1759 개발 부팅 부터 자동으로 처리 하는 배치 파일 입니다. 간단한 배치파일을 소개 합니다. 매일 한번 리부팅하고, 1시간 마다 cgminer.exe를 restart하는 배치 입니다. 1) 첨부된 miner_rebooting_per_day.zip을 적당한 위치에 압축을 풉니다. 2) 압축 ... 7 file 15 7414
데포라쥬
2014.03.17
1758 개발 채린이의 채굴장 관리 프로그램(자동재부팅, 모니터링, 기타 셋팅 설정) 안녕하세요! 취미로 채굴 및 코딩을 하고있는 직장인겸 투자자 그랑굴러입니다.   채린이 입장에서 직접 채굴해보고, 필요한것이 뭘까 생각하며 만들어 보았습니다. 소개글: https://www.ddengle... 55 file 14 14599
그랑굴러
2021.02.14
1757 개발 <기술분석>왜 콘스탄티노플 하드포크는 연기되었나? - EIP1283분석 콘스탄티노플 하드포크가 연기된 이유에 대한 기술 세미나영상과 자료입니다.   영상 : https://youtu.be/cdTSxsajibo   프레젠테이션 : https://docs.google.com/presentation/d/1eNf3qpkMxtWg6... 7 14 3888
철학자
2019.01.16
1756 비트코인 캐시는 어떻게 전송속도 문제를 극복하는가? _ 블록체인 쿠키     비트코인 캐시는 빅 블록 스케일링을 채택하였습니다.      블록체인은 코인 전송 주문을 블록에 담아 처리하는데 비트코인은 1MB의 블록에 전송 거래건을 기록합니다. (segwit 제외)     반... 12 file 14 2122
도원Dowon
2018.12.14
1755 개발 블록체인 강의 04 - 암호화(1) *** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. *** *** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.*** ---------------------------------------... 16 14 1220
쌍둥아빠
2018.12.10
1754 개발 hdac을 사용한 private 체인 구성하기 hdac 테스트넷을 사용해서 payment 오류를 수정/테스트를 하려던 차에   hdac이 공개한 소스코드를 통해, hdac은 원래 멀티체인 소스코드 기반이라는 것을 알게 되었고, 멀티체인은 private 블록... 24 14 2986
ethminer
2018.05.28
1753 개발 어제 코인스노티파이에 첫 고객문의가 들어왔습니다. 어제 오후에 &quot;초밥매니아님?&quot; 이라는 전화를 받았습니다.   무슨 장난전화인가 했는데 알고보니 제가 만든 코인스노티파이 가입하고 인증메일이 안온다는 문의였습니다. (코인스노티파이는 제가 ... 27 14 4419
초밥매니아
2017.08.11
1752 개발 비트코인이 현실생활에서 많이 사용되길 기대하며 ^^   Hello world,   비트코인 의 영원한 발전을 희망합니다! 땡글인으로써 비트코인 관련한 새로운 제품을 선보이게 되서 기쁘게 생각합니다. 오늘 소개해 드릴 상품은 비트코인으로 물건을 판매하... 5 14 5628
마이닝링
2017.08.01
개발 [강좌] 이더소셜 PHP API 서버 만들기 #4. 계정 트랜젝션 개수 확인하기 안녕하세요. 쌩광부입니다.   한동안 ESN 재단 설립 때문에 너무 바빠서 강좌를 못했었는데요. 오늘 ESN 재단 구성원 모집이 완료되어 한시름 놓았습니다. 그리하여... 다시 강좌를 시작하도록 ... 3 13 3274
쌩광부
2019.01.29
1750 개발 Solidity - 스마트컨트랙트를 이용한 슬롯머신(확률게임) 만들기 1편 우선 결과화면은 다음과 같습니다. 배팅버튼을 클릭하면 메타마스크가 실행되며 승리여부를 알려주게 됩니다. 이곳을 방문하시면 실제로 테스트가 가능합니다. https://www.dunkpay.com/slot-te... 12 file 13 3557
비트코인요
2018.06.06
1749 개발 hiveOS 를 잠시 뜯어봤더니... hiveOS 의 핵심(?) 은 다음과 같이 요약될 수 있겠군요. * ubuntu xenial(16.04 LTS)기반 * /hive - 각종 마이너들이 모여있음 * /hive/opt - 각종 watchdog 관련된 것들이 모여있음 * /hive-dri... 10 13 3038
plextor
2018.06.05
1748 개발 HDAC NOMP+MPOS pool 테스트 중 (해쉬빼주셔도 됩니다) https://www.ddengle.com/develop/8154923   해쉬 빼고 다른 풀로 옮겨주세요~~~~ 윗 링크 참조해주시기 바랍니다.       일단 첫 블럭을 발견했습니다. (3.27% share 만으로 발견했으니 완전 LU... 51 file 13 2914
Dev_J
2018.05.24
1747 개발 안녕하세요 coinext개발자입니다. 오픈소스로 거래소 플랫폼을 공개한 coinext개발자입니다. 다음번으로 오픈소스 공개할 소스/플랫폼은 이더리움같은 분산 어플리케이션 플랫폼을 공개하도록 하겠습니다. 아직은 시작은 안했지만... 6 13 6077
coinext
2017.12.26
1746 개발 채굴 관리프로그램 MINE ASSIST v1.2 공개 및 상용 서비스 일정 안내 안녕하세요. MINE ASSIST를 개발하고 있는 파이리입니다.   MINE ASSIST 새 버전과 상용 서비스 일정에 대해서 알려드립니다.   MINE ASSIST 다운로드 링크( https://www.mineassist.net/control... 38 file 13 5700
파이리
2017.07.14
1745 개발 [테스트]거래소 시세 모니터링 웹 거래소 시세 모니터링용 웹 페이지를 만들어보았습니다.   웹은 처음하는거라 어렵네요...   거래소 데이터 폴링 주기는 약 5초 입니다.   사이트 주소는    http://www.goingcoin.com/   시세는... 47 13 4975
분홍몸매
2017.06.09
1744 개발 개발 공부가 처음이라고요? 이더리움 개발을 공부하기 위하여 파이썬에 관심을 가지는 땡글인이 늘어나고 있습니다.  당장 개발자로 참여하지는 못해도 나중이라도 기회를 가지기 위해서 또는 이더리움 개발이 아니라 취미... 13 13 7182
금마
2016.05.28
1743 개발 공짜 파이썬 강의 듣기 파이썬(Python) 언어가 여러분야에 많이 쓰이고 있지요. Ethereum 가 파이썬을 지원하고 있고, 카운티파티 같은 경우는 전체가 파이썬으로 짜여있더군요. 영어공부도 할겸 파이썬도 배우고 싶다... 6 file 13 10208
atomrigs
2014.11.19
1742 블록체인 강의 02 - 총론-트랜잭션, 블록, 블록체인의 구조 블록체인, 블록, 트렌젝션에 대한 총론입니다. L* 기업 개발팀을 교육한 실제 강의 영상입니다. 편집 기술이 전혀 없어서 그냥 대충 잘라서 넣은 점 양해 부탁드립니다. !!!!! 혹시라도 제가 틀... 3 12 765
쌍둥아빠
2018.11.21
1741 개발 웹 모니터링 - CCMINER, Claymore's Dual(Ethash), EWBF miner(Ethash), xmr-stak-*(Cryptonight), claymore...   안녕하세요.   조용히 운영중인 사이트 오랜만에 소개 합니다.   마이닝허브 모니터링 사이트에서    기존 지원 모니터링 툴 CCMINER, Claymore's Dual(Ethash), EWBF miner(Ethash), xmr-stak... 14 12 1342
stigma8326
2018.11.19
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 92 Next
/ 92
default debug random = 0 / type = READ / detected = READ