※ 참고 (2026년 기준) 2022년 머지(The Merge) 이후 geth 혼자서는 메인넷을 동기화할 수 없고 컨센서스 클라이언트(Lighthouse, Prysm 등)가 함께 있어야 한다. personal API 는 geth 1.14 에서 제거되었다. 또 --http.corsdomain "*" 와 계정 잠금 해제(--unlock)를 같이 쓰면 외부에서 지갑을 쓸 수 있으므로 외부에 열린 서버에서는 절대 쓰지 않는다.
- 환경
- Ubuntu 20.04
- 설치
- 소스를 받아서 빌드하는 방법도 있겠지만 간편하게 시스템을 운영하기 위해 apt를 사용하는 방식으로 설치
|
1 |
sudo apt install ethereum |
- 개발 환경 구성
- genesis.json 구성 : 특별히 eiplxxblock 부분은 ethereum이 발전되어 가면서 계속 항목이 추가 되는 것 같다. 만약 이 글을 보고 그 후에 돌리려 하는데 제대로 안 도는 경우 새로 생성된 부분이 있는지 확인이 필요
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "config": { "chainId": 8484, "homesteadBlock": 0, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, "istanbulBlock": 1000 }, "alloc" : {}, "coinbase" : "0x0000000000000000000000000000000000000000", "difficulty" : "0x2", "extraData" : "", "gasLimit" : "0x47e7c5", "nonce" : "0x0000000000000042", "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp" : "0x00" } |
- geth 초기화 (최초 블록 생성 genesis.json 사용)
|
1 |
geth --datadir ethereum init genesis.json |
- geth 실행
|
1 2 3 4 5 6 7 8 9 10 11 |
geth --networkid 8484 \ --nodiscover \ --maxpeers 0 \ --http --http.corsdomain "*" \ --http.api web3,miner,eth,debug,personal,net,admin,clique \ --allow-insecure-unlock \ --snapshot=false \ --unlock 0xbaeea1f241f74a95e33db04a70c3c115868c58b9 \ --password pword \ --ethstats bootnode1:anydragon@0.0.0.0:8080 \ console 2>> eth.log |

Leave a Reply