웹 개발 메모장
[블록체인 어플리케이션 개발] Geth 기동하기 본문
Geth (go-ethereum) 개발 시작하기
이더리움 소개
이더리움은 스위스의 비영리 단체인 이더리움 재단에서 개발한 오픈소스 프로젝트 입니다.
이더리움은 단순한 코드로 스마트 계약을 구현할 수 있는 블록체인 기술이며 이더리움 사용자는 이더리움 코드를 작성할 수 있는 언어를 배우는 것 만으로 스마트 계약을 만들어 실행할 수 있습니다.
이더리움 클라이언트
이더리움은 스마트 계약을 실행할 수 있는 플랫폼이며 Go, C++, 파이썬 등 다양한 언어로 클라이언트가 구현되어 있습니다.
클라이언트 |
언어 |
개발자 |
|
1 |
go-ethereum |
Go |
Ethereum Foundation |
2 |
Parity |
Rust |
Ethcore |
3 |
cpp-ethereum |
C++ |
Ethereum Foundation |
4 |
pyethapp |
Python |
Ethereum Foundation |
5 |
etherumjs-lib |
JavaScript |
Ethereum Foundation |
6 |
Ethereum(J) |
Java |
<ether.camp> |
7 |
ruby-ethereum |
Ruby |
Jan xie |
8 | ethereumH | Haskell | BlockApps |
라이브 네트워크가 아닌 테스트 네트워크이며 라이브 네트워크처럼 전 세계의 노드가 참가할 수 있는 'Morden 테스트넷'과 달리 자신의 노드 하나만 (또는 한정된 노드만) 참가할 수 있고 채굴의 난이도를 설정할 수 있기 때문에 스터디 목적에 적합한 네트워크 입니다.
테스트 네트워크에서 Geth (go-ethereum) 기동
로컬에서 Geth를 기동시키기 위해서는 송수신할 블록 데이터와 계정 정보를 저장할 디렉터리를 생성하고
그 디렉터리에 0번째 블록의 정보가 저장된 파일을 만들고 $ geth init 명령을 통해 초기화를 해야 합니다.
1. 디렉터리 생성
아래 명령어를 통해 testnet 디렉터리를 생성합니다.
$ mkdir ~/testnet
2. genesis.json 파일 생성
아래와 같은 0번째 블록의 기본 정보를 담고있는 json 파일을 생성합니다.
[genesis.json]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | { "config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "nonce": "0x0000000000000042", "timestamp": "0x0", "parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x00", "gasLimit": "0x8000000", "difficulty": "0x04000", "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase":"0x3333333333333333333333333333333333333333", "alloc": {} } | cs |
(tree 명령어를 통해 초기화 결과 확인)
'옛날.. > 블록체인 어플리케이션 개발 실전 입문' 카테고리의 다른 글
[Geth] Geth 백그라운드에서 실행하기 (0) | 2018.10.22 |
---|---|
[Geth] 계정 생성하고 채굴 및 송금하기 (0) | 2018.10.21 |