본문 바로가기
비트코인

블록체인 애플리케이션 개발 실전 입문 : Solidity를 이용한 이더리움 스마트 계약 구현 (위키북스 해킹 & 보안 시리즈 11) 2장-7

by 자유코딩 2018. 4. 2.
블록체인 애플리케이션 개발 실전 입문 : Solidity를 이용한 이더리움 스마트 계약 구현 (위키북스 해킹 & 보안 시리즈 11) 2장-7

 

JSON-RPC

 

Geth 콘솔이 아닌 HTTP 를 이용한 작업입니다.

 

Geth에는 JSON-RPC 서버 기능이 포함되어 있습니다.

 

Geth 기동시 HTTP-RPC 서버를 활성화 해서 원격에서 각종 명령을 실행 할 수 있습니다.

 

 

--rpc

HTTP-RPC 서버를 활성화 한다.

 

--rpcaddr "0.0.0.0"

HTTP-RPC 서버의 수신 ip를 지정한다. 기본값은 "localhost"다. "0.0.0.0"을 지정하면 localhost뿐만 아니라 어떤 인터페이스에 대해 접근해도 수신한다.

 

--rpcport 8545

HTTP-RPC 서버가 요청을 받기 위해 사용하는 포트를 지정한다. 기본 포트번호는 8545이다.

 

--rpccorsdomain "*"

자신의 노드에 RPC 로 접속 할 ip 주소를 지정한다.

쉼표로 구분해서 여러 개를 지정할 수 있다. "*"로 지정하면 모든 ip에서 접속을 허용한다.

 

--rpcapi "admin, db, eth , debug , miner , net , shh , txpool , personal , web3"

RPC 를 허가할 명령을 지정한다.

쉼표로 구분해 여러 개를 지정 할 수 있다.

기본 값은 "eth , net , web3"이다.

 

 

curl 명령어를 실행한다.

 

 

method 뒤에 있는 것은 요청 함수이다.

 

 

계정 목록 출력

 

마이닝 상태 확인

 

해시레이트 확인

 

 

10진수 변환

 

 

블록 개수

 

 

잔고 확인

 

 

 

 

Geth 시작할때 자동으로 계정 잠금 해제하는 방법

 

 

--unlock 0

잠금 해제할 계정을 지정한다.

쉼표로 구분해서 여러개를 지정 할 수 있다.

0은 계정의 인덱스이다.

 

 

--verbosity 6

로그 출력 수준 지정

0=silent

1=error

2=warn

3=info

4=core

5=debug

6=detail

기본 값은 3이다.

 

6에 가까울수록 상세해진다.

 

 

송금 트랜잭션을 실행하는 화면입니다.

 

 

잔고가 10 ether가 되었습니다.

 

비밀번호 지정하기

 

 

패스워드를 파일에 생성합니다.

 

이 옵션을 추가해서 Geth를 실행해보도록 하겠습니다.

 

 

여러 개의 계정의 잠금을 해제 할 수도 있습니다.

 

먼저 패스워드를 1개 더 추가합니다.

 

 

 

 

 

unlock 0,1 옵션을 추가해서 여러 개의 계정 잠금을 해제하고 있습니다.

 

백그라운드로 실행할 때도 같은 옵션을 사용 할 수 있습니다.

 

 

이렇게 geth를 실행하면서 계정 잠금을 해제 할 수 있습니다.

 

하지만 시작시 계정 잠금해제는 보안상 매우 위험하다고 책은 이야기 하고 있습니다.

 

실제 서비스 환경에서는 사용되지 않도록 해야 한다고 합니다.

댓글