[Ethereum] 테스트 네트워크에서 Geth를 실행해보고 계정을 만들어보자!
로컬 테스트넷에서 Geth기동을 위해 다음 두가지를 준비한다.
- 데이터 디렉터리
- Genesis 파일
데이터 디렉터리에 송수신한 블록 데이터와 계정 정보를 저장한다.
지정하지 않으면 '~/.ethereum'이 데이터 디렉터리가 된다.
디렉터리가 실행에는 무방하다.
다음과 같이 'test_data' 폴더를 만든다.
cmd(명령 프롬프트)를 이용하여 실행해본다.
cmd는 관리자의 권한으로 실행한다.
help를 입력하면 간단하게 명령어를 볼 수 있습니다.
그냥 윈도우 상에서 폴더를 만들어봐도 되지만 cmd 창에서 명령어로 만들어 보겠습니다.
바탕화면으로 이동 후
보시는 바와 같이 'mkdir'명령어로 폴더를 생성 후 만든 폴더로 이동한다.
'copy con' 명령어를 이용해 genesis.json 파일을 만든다.
genesis 블록(0번째)의 정보가 저장된 json형식의 파일이다.
메모장에 미리 만들어 놓은 내용을 복사 후 컨트롤+Z 키 누르고 엔터를 누른다.
(참고로 붙혀넣기는 마우스 오른쪽 버튼)
{
“nonce”: “0x0000000000000042”,
“mixhash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“difficulty”: “0x400”,
“alloc”: {},
“coinbase”: “0x0000000000000000000000000000000000000000”,
“timestamp”: “0x0”,
“parentHash”: “0x0000000000000000000000000000000000000000000000000000000000000000”,
“extraData”: “0x”,
“gasLimit”: “0xffffffff”,
“config”: {
“chainId”: 4224,
“homesteadBlock”: 0,
“eip155Block”: 0,
“eip158Block”: 0
}
}
'type genesis.json' 명령어를 통해 내용이 잘 들어간 것을 확인할 수 있다.
테스트넷을 구축할 경우 0부터 블록체인을 만들어 가므로 Genesis파일이 필요하다.
위와 같이 다 준비되었다면 이제 초기화를 해보자!
생성한 디렉토리 내에서 초기화를 아래와 같이 해준다.
geth --datadir C:\Users\Ian\Desktop\test_data init C:\Users\Ian\Desktop\test_data\genesis.json
경로는 컴퓨터마다 환경에 맞게 하시길
tree 명령어를 통해 geth 폴더 내에 chaindata, lightchaindata 와 keystore가 생성된 것을 확인할 수 있다.
초기화가 완료되면 Geth를 실행해보도록 한다.
geth --networkid 5959 --nodiscover --maxpeers 0 --datadir C:\Users\Ian\Desktop\test_data console 2>> C:\Users\Ian\Desktop\test_data\geth.log
networkid 5959
0~3은 예약된 숫자라 그 밖의 정수 5959를 입력해 보았습니다.
0 = Olympic(disused), 1 = Frontier, 2 = Morden(disused), 3 = Ropsten) (default : 1)nodiscover
생성자의 노드를 다른 노드에서 검색할 수 없게하는 옵션입니다.
노드추가는 수동으로 해주고요, 지정하지 않으면 동일한 블록체인 네트워크 생성자와 연결될 가능성이 있습니다.maxpeers 0
생성자의 노드에 연결할 수 있는 노드의 수를 지정합니다.datadir 주소
데이터 디렉터리 지정입니다. 지정하지 않으면 기본 디렉터리를 사용해요.
환경에 맞게 지정하시면 됩니다.console
콘솔을 가동합니다.
C:\Users\Ian\Desktop\test_data\geth.log
로그 파일 만들 때 사용하는 옵션입니다. 에러를 해당 경로 파일에 저장합니다.
Geth 콘솔에 다음 명령어를 실행하여 EOA를 만듭니다.
personal.newAccount("hiyo0")
명령어를 입력하여 계정을 생성합니다.
"hiyo0"은 암호입니다. 실제 환경에서는 보안을 고려해 적절하게 설정합니다.
이더리움에는 EOA(Externally Owned Account)와 Contract
두 종류의 계정이 있습니다.
EOA는 일반 사용자 계정으로 비밀키로 관리 되고
Ether를 송급하거나 계약을 실행할 수 있습니다.
Contract 계정은 계약용 계정으로 블록체인에 배포할 때
만들어지는 계정으로 블록체인에 존재합니다.
오늘은 테스트 네트워크에서 Geth를 실행하고 계정을 간단하게 만들어 봤습니다.
감사합니다~
Congratulations @iann! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!