[연재] geth로 private network 구성하기 - alloc, etherbase 계정 생성

alloc, etherbase에 사용할 계정 생성


이번 연재에서는 alloc, etherbase에 사용할 계정을 geth 실행 전에 생성하기 위한 방법에 대해서 알아 보자.


아무것도 없는데 genesis.json에 alloc 으로 초기 ether를 설정하는 부분이 있다.

아니...블럭체인 망을 아직 만들지도 않았는데, 계정이 어디있어?

라고 생각했었던 적이 있다.

물론 geth 실행 옵션에서 etherbase를 설정하는 것은 처음 실행해서 계정 만들고 생성된 계정을 넣어서 다시 실행하면 되지..

아래와 같이
> personal.newAccount('비밀번호');
"0x43cecf92d93409f50148b22e1a17697f71af706f"

물론 이렇게 하면 되긴 된다.

하지만 genesis.json에 alloc 하는 부분은 다르다.

아래는 etherum github 에서 가져온 genesis 블럭이다.

{
    "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "200000000",
    "gasLimit": "2100000",
    "alloc": {
        "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
        "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
    }
}


아직 init도 안 했는데 계정을 어떻게 넣어?

생성

그럴 때 geth를 이용한다.

--datadir를 줘서 저장할 장소를 명시한 다음과 같이 명령을 실행하고, 비밀번호를 입력하면 계정이 생성된다.

vingorius@ssro:/data/node/geth$ geth --datadir ./data account new
INFO [04-26|14:42:00] Maximum peer count                       ETH=25 LES=0 total=25
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase:
Repeat passphrase:
Address: {8074b9a969d7a38d08c0f38da57ddb16ad72f66f}

확인

자 이제 생성된 계정이 존재하는지 ./data/keystore/ 디렉토리 밑을 검색해보자.

vingorius@ssro:/data/node/geth$ ls data/keystore/
UTC--2018-04-26T05-42-04.692389732Z--8074b9a969d7a38d08c0f38da57ddb16ad72f66f
vingorius@ssro:/data/node/geth$


자세한 계정 생성 및 핸들링에 대해서는 etherum의 Managing your account 편을 참고 하기 바란다.