사설 Ethereum 네트워크 생성하기
사설 Ethereum 네트워크 생성하기
계좌 만들기
1
% geth --datadir {경로} account new
만들어진 계좌 확인하기
1
% geth --datadir {경로} account list
Genesis Block을 위한 설정
제네시스 블록이란?
블록체인에서 첫번째로 생성된 블록을 말합니다.
private network를 만들기 위해서는 네트워크를 시작하는 블록에 대한 정보가 필요하고, 이때 시작하는 블록이 제네시스 블록!
1
% puppeth
이를 실행하면 여러 옵션을 선택해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
jisoo@jisooui-MacBookPro ~ % puppeth
+-----------------------------------------------------------+
| Welcome to puppeth, your Ethereum private network manager |
| |
| This tool lets you create a new Ethereum network down to |
| the genesis block, bootnodes, miners and ethstats servers |
| without the hassle that it would normally entail. |
| |
| Puppeth uses SSH to dial in to remote servers, and builds |
| its network components out of Docker containers using the |
| docker-compose toolset. |
+-----------------------------------------------------------+
// 네트워크 이름 설정
Please specify a network name to administer (no spaces or hyphens, please)
> hello
Sweet, you can set this via --network=hello next time!
INFO [12-13|18:52:30.925] Administering Ethereum network name=hello
WARN [12-13|18:52:30.933] No previous configurations found path=/Users/jisoo/.puppeth/hello
// 새로운 genesis 파일 생성
What would you like to do? (default = stats)
1. Show network stats
2. Configure new genesis
3. Track new remote server
4. Deploy network components
> 2
// POW 합의 알고리즘 선택
Which consensus engine to use? (default = clique)
1. Ethash - proof-of-work
2. Clique - proof-of-authority
> 1
// 선입금 계정 설정 - 그냥 enter 누르면 기본 설정.
Which accounts should be pre-funded? (advisable at least one)
> 0x
// 체인 / 네트워크 id 설정 - 그냥 enter 눌러 기본 설정.
Specify your chain/network ID if you want an explicit one (default = random)
>
INFO [12-13|18:57:01.828] Configured new genesis block
// genesis 파일 관리 (2번) 선택
What would you like to do? (default = stats)
1. Show network stats
2. Manage existing genesis
3. Track new remote server
4. Deploy network components
> 2
// 생성한 genesis 파일 내보내기
1. Modify existing fork rules
2. Export genesis configuration
3. Remove genesis configuration
> 2
// 기본 그대로 enter 누름.
Which file to save the genesis into? (default = hello.json)
>
INFO [12-13|19:00:41.038] Exported existing genesis block
이렇게 실행하면 hello.json 파일이 생성됨.
1
%mv hello.json firstgeth
위 명령어를 통해 json파일을 데이터폴더로 이동시켜주자.
최신 버전의 geth를 사용하는 경우 중간에 폴더 선택하는 과정이 존재한다.
버전에 따라 선택 과정이 상이한 것 같으니 유의하자!
Genesis Block 생성하기
1
% geth --datadir {경로} init {경로/파일이름.json}
Ethereum 실행하기
1
% geth --datadir {경로} console
콘솔을 실행하면 명령어를 입력할 수 있다.
- 보통의 명령어는
eth.
로 시작한다.
1
> eth.accounts
This post is licensed under CC BY 4.0 by the author.