salsa source

[이더리움 베이직] 사설 이더리움 네트워크 실행하기 본문

STUDY/블록체인

[이더리움 베이직] 사설 이더리움 네트워크 실행하기

dayofday 2018. 3. 12. 04:29

<출처 : 이더리움 베이직>



이더리움 클라이언트는 Geth를 통해 두 가지 모드로 실행될 수 있습니다.


1. 단순 이더리움 클라이언트만을 실행하는 모드

이더리움 클라이언트를 실행하고 더 이상의 기능 및 설정을 변경할 필요가 없을 때 사용합니다.


2. 이더리움 클라이언트를 실행함과 동시에 대화형 자바스크립트 콘솔 환경으로 접근하는 모드

다양한 API를 이용하여 실시간으로 계좌를 생성하거나 / Ether를 전송하고 / 채굴과 같은 기능 등을 활성/비활성화 할 때 사용합니다.

Geth에 'console'옵션을 함께 넣어주면 됩니다.



둘 중 2번 방법으로 접근해 봅니다.


대화형 자바스크립트 콘솔 환경에 접속

cmd창에서  아래 명령어 실행

geth --identity "PrivateNetwork" --datadir "c:\ethereum\data" --port "30303" --rpc --rpcaddr 0.0.0.0 --rpcport "8123" --rpccorsdomain "*" --nodiscover --networkid 1900 --nat "any" --rpcapi "db, eth, net, web3, miner" console



마지막 3줄에서 에러가 나서  참고

geth --identity "PrivateNetwork" --datadir "c:\ethereum\data" --port "30303" --rpc --rpcaddr 0.0.0.0 --rpcport "8123" --rpccorsdomain "*" --nodiscover --networkid 1900 --nat "extip:자신의 아이피 주소" --rpcapi "db, eth, net, web3, miner" console

로 바꾸어 다시 진행하였다.

(자신의 아이피 주소는 cmd창에서 ipconfig 명령 실행하여 IPv6로 사용하면 된다)


로컬에서 사용할 경우 0.0.0.0이나 localhost 로 사용해도 무방하다.

geth --identity "PrivateNetwork" --datadir "c:\ethereum\data" --port "30303" --rpc --rpcaddr 0.0.0.0 --rpcport "8123" --rpccorsdomain "*" --nodiscover --networkid 1900 --nat "extip:0.0.0.0" --rpcapi "db, eth, net, web3, miner" console


오류가 없이 진행된 것을 확인할 수 있다.



이 콘솔 환경에서 이더리움의 몇 가지 기능 실행해보기


1) 계좌 잔고 조회

eth.accounts  명령어 실행



개설된 계좌가 1개 뿐이므로 한 개의 계좌의 주소를 확인할 수 있습니다.



이 계좌의 주소를 이용하여 해당 계좌의 잔고를 확인할 수 있습니다.




acoounts 배열로 확인하는 방법 :   eth.getBalance(eth.accounts[0])

리턴 값 : 10


getBalance() 함수로 확인하는 방법(wei 단위로 출력) : eth.getBalance(eth.coinbase)

리턴 값 : 100000000000000000000


ether단위로 바꾸어 출력하는 방법 : web3.fromWei(eth.getBalance(eth.coinbase), "ether")

리턴 값 : 10


(리턴값 오류 해결 못함 ㅠㅠ)



2) 채굴 기능 활성화


활성화 하는 방법

(1) Geth 실행 시 '--mine'옵션을 함께 넣는 방법 (2) 자바스크립트 콘솔환경에서 실시간으로 채굴기능을 활성화하는 방법

두 가지 중 (2) 방법으로 채굴기능을 활성화 해 봅시다.


cmd창에 miner.start() 를 실행합니다.


위 사진과 같이 채굴이 시작됩니다.

사설 이더리움 네트워크에서의 난이도는 낮게 설정되어있기 때문에 채굴 속도가 빠릅니다.


miner.stop()을 입력하면 채굴을 중단할 수 있습니다.








외부에서 자바스크립트 콘솔 환경 접속하기


앞에서는 Geth에서 명령 프롬프트를 통해 이더리움 클라이언트의 실행과 동시에 자바스크립트 콘솔에 접속하였습니다.



이번에는 다른 IP를 가진 원격지 또는 로컬 컴퓨터의 또 다른 명령 프롬프트에서 

해당 이더리움 클라이언트의 자바스크립트 콘솔에 접근 해 봅시다.


이를 위하여 Geth 실행 시 반드시 '--rpc' 관련 옵션을 설정해야합니다.


>geth attach http://이더리움 클라이언트의 노드 IP : (RPC 포트)


로컬 컴퓨터(현재 이더리움 클라이언트가 실행 중인 컴퓨터)에서 접속 방법

(1)  geth attach http://localhost:8123

(2)  geth attach http://127.0.0.1:8123

원격지에서 접속하는 방법

(1)  geth attach http://123.123.123.123:8123



Comments