ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 블록체인 스터디 - 윈도우에서 Geth 새로운 계좌 생성
    블록체인/스터디 2018. 7. 11. 14:35

    출처



    이번에 블록체인에 대해서 실습해 볼것은 바로, 

    윈도우에서 Geth 클라이언트 게좌 생성하려고 한다.



    Geth란 무엇인가?

    CLI(Command Line Interface) 기반 메인 이더리움 클라이언트입니다. 메인 테스트 또는 사설 이더리움 네트워크에

    접근할 수 있는 입구와 같은 역할을 수행하는 프로그램으로 이더리움의 모든 상태를 저장하는 풀 아카이브 노드

    (full archive node) 또는 실시간으로 검색 데이터를 검색할 수 있는 라이트 노드(light node) 기능도 가지고 

    있습니다.


    또한, Geth는 HTTP의 최상단에 위치한 JSON RPC, 웹소켓(websocket) 또는 IPC 전송을 통해 이더리움 네트워크에 접근할 수 있는 게이트웨이로도 사용될 수 있습니다. Geth의 옵션에 대한 도움말은 geth --help와 같은 다음

    도움말 페이지에서 확인할 수 있습니다.

    https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options

    출처: 책(p.80, 이더리움 베이직)


    geth 설치

    geth 버전마다 안정성이 다르다.

    본문의 아래에 있는 내용은 geth 1.8.2버전으로 실습한 결과 다음과 같이 나왔고, 

    안정성을 위해서 geth 1.7.2 버전으로 다운그레이드 하여 실습하였더니 문제없이 정상적으로 잘 작동했다.

    따라서, 이 글을 보고 실습해보실 분도 geth 1.7.2버전으로 설치하시면 될 것 같다.


    설치 클릭





    계좌생성

    계좌 생성을 위해서는 cmd를 이용해야하는데, 일반모드로 실행하는것과 관리자모드로 실행하는것이 있는데 

    둘 다 결과가 다르게 나온다.



    계좌 생성을 위해 입력한 키워드는 다음과 같다.

    geth --datadir "C:\ethereum\data" account new 





    1. 1일반모드

    일반모드를 실행하게되면 cmd 프롬프트화면에서 계속 무언가가 출력이 된다.

    새로운 계좌를 생성했는데 왜 이상한 무언가가 출력되는지 정확한 이유는 모르겠다.

    다만, 이를 해결하기 위해서는 cmd를 관리자모드로 실행해서 계좌 생성 키워드를 다시 입력해야된다는 것이다.





    1.2. 관리자모드

    관리자모드로 접속해서 키워르를 타이핑하면 비번을 입력하라는 문구가 뜨고 정상적으로 새로운 계좌 주소값을 

    생성할 수 있다. 


    앞으로는 cmd 프로그램을 실행할 때 관리자 모드로 실행하는 것으로 한다.




    2. Genesis 블록 생성

    CustomGenesis.json.txt



    에러발생


    C:\Windows\system32>geth --datadir "C:\ethereum\data\" init "C:\ethereum\CustomGenesis.json"

    [에러내용]

    INFO [07-11|14:47:03.334] Maximum peer count                       ETH=25 LES=0 total=25

    Fatal: Failed to create the protocol stack: mkdir C:\ethereum\data" init C:: The filename, directory name, or volume label syntax is incorrect.



    에러이유?

    geth 버전이 불안전해서 에러가 발생한것으로 보인다.

    이를 해결하기 위해서 



    --dev는 이더리움 클라이언트가 자동으로 Genesis블록을 만들어 사용하도록 하는 명령어다.

    따라서, 이 문구를 사용하는 경우에는 Genesis블록 파일의 정의와 생성 파일은 필요하지 않다.

    --dev가 더 궁금하면 geth --help를 이용하여 --dev에 대한 설명을 확인할 수 있다.



    geth --dev를 실행해보았으나 마찬가지로 에러 발생



    [에러내용]

    WARN [07-12|09:56:02.348] Block sealing failed                     err="waiting for transactions"


    [해결방법]

    --dev를 지우고 다시 실행



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

    아래의 키워드를 입력하면 대화형 자바스크립트 콘솔환경에 접속할 수 있다.

    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


    계좌 잔고조회

    명령어1

    eth.accounts

    명령어2

    eth.getBalance(eth.accounts[0])

    명령어3

    eth.getBalance(eth.coinbase)


    단위 변환 (wei -> ether)

    web.fromWei(eth.getBalance(eth.coinbase), "ether");



    채굴기능 활성화

    1. cmd에서 geth 명령어를 이용하여 실행

    geth --mine

    2. 콘솔환경에서 명령어를 이용하여 실행

    채굴 시작

    miner.start()

    채굴 종료

    minder.stop()


    댓글

© 2018 T-Story. All right reserved.