Ethereum 초보자 가이드 (3) — 제네시스 파일을 설명하고이를 사용하여 블록 체인을 사용자 지정

개요

이 튜토리얼은 더 나은 이해를 위해 이더 리움 히스토리 배경을 포함하여 제네시스 파일에 대해 필요한 모든 정보를 결합한 완전한 가이드 역할을합니다 🙂

시작하기 전 중요 사항

이더 리움 재단에서 변경 (하드 포크)을 할 경우 아래 제시된 제네시스 파일의 설정이 향후 구식이 될 수 있습니다. 아래 튜토리얼은 개발자가 처음부터 evrything을 시작하여 더 잘 이해할 수 있도록 돕기위한 것입니다. 하지만 항상 훨씬 더 쉬운 방법으로이 작업을 수행 할 수 있습니다. 자동으로 설치되는 공식 CLI를 사용하고 geth puppeth 를 사용하면 제네시스 파일을 만들고 사용자 정의하는 데 도움이됩니다. 터미널 창에 puppeth 를 입력하기 만하면 파일을 저장할 위치, 사용할 합의 (PoW 또는 PoA), 사전 자금 조달해야하는 계정과 같은 필수 매개 변수를 입력하라는 메시지가 표시됩니다. . 다음은 샘플 사용 자습서입니다.

이 문제를 제기 해 주신 Lycrus Hamster에게 감사드립니다!

제네시스 파일이란?

제네시스 블록은 블록 체인의 시작이고, genesis.json은이를 정의하는 파일입니다. 블록 체인의 “설정”과 같습니다. 예를 들어, 체인 구성, 블록 채굴 난이도 등

선택 사항입니다. 또한 — dev 플래그를 사용하여 geth에서 제공하는 사전 구성된 설정을 사용할 수도 있습니다.

참조 : https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options

geneis.json에 지정해야하는 4 개의 필수 값 (config, hard, gasLimit, alloc)이 있습니다. 모두 제거해 보았고 모두 XD가 필요한지 확인했습니다.

예제 genesis.json :

매개 변수 설명 :

참조 : https://github.com/ethereum/go-ethereum/blob/feeccdf4ec1084b38dac112ff4f86809efd7c0e5/params/config.go#L71

2. “난이도”: 채굴 난이도 // 채굴 블록을 너무 오래 기다릴 필요가 없도록이 값을 낮게 설정합니다.

3. “gasLimit”: 블록 당 가스 비용 제한 // 테스트시 제한되지 않도록이 값을 높게 설정

4. “alloc”: 사전 입금 된 주소, 각각의 첫 번째 매개 변수는 주소입니다. 40 자리 16 진수 문자열이어야합니다 (160 비트, 16 진수 1 개는 4 비트). 계정이 생성되지는 않습니다.

코딩 시작!

힌트 : 새 폴더를 만들어 테스트에 사용할 수 있습니다.

( mkdir & quot; your_folder & quot; 다음에 cd & quot; your_folder & quot; )

이전에 언급 한 genesis.josn 예제를 붙여 넣으세요.

저장하고 종료하려면 Enter 를 누른 다음 Ctrl + D 를 누르십시오.

2. 제네시스 파일의 설정으로 블록 체인을 초기화하고 체인 데이터를 저장할 폴더를 정의합니다.

‘test’폴더가없는 경우 geth에서 자동으로 생성하므로 생성 할 필요가 없습니다.

또한 geth 명령은 geth init 와 다릅니다. 다음과 같이 — help 플래그를 추가하여 확인하세요.

이것은“geth init”에서“— networkid”와 같은 플래그를 사용할 수 없음을 의미합니다.

3. Geth 콘솔로 Geth 노드 열기

하지만 출력에 경고가 있음을 알 수 있습니다.

경고 [07–05 | 17 : 36 : 27] etherbase 세트가없고 기본 계정이 없습니다.

제네시스 파일의 “alloc”매개 변수가 계정을 생성하지 않기 때문입니다. 균형이 잡힌 주소 일뿐입니다. 예를 들어이 경우

설정 한 정확한 값을 출력합니다.

4. 채굴 시작

다음과 같이 직접 채굴을 시작하는 경우 : miner.start () , 출력은 다음과 같습니다.

오류 : etherbase 누락 : etherbase 주소를 명시 적으로 지정해야합니다.

이것은 geth가 첫 번째 계정을 기본 코인베이스 계정 (채굴 보상이 이동하는 곳, 채굴 전에 필요함)으로 사용하므로 현재 계정이 없기 때문에 값이 지정되지 않았습니다.

먼저 코인베이스 주소를 설정합니다 (coinbase는 etherbase와 동일합니다)

그리고 채굴 시작

곧 마이닝 프로세스가 진행될 것입니다 🙂

이 줄에서 멈추는 경우

에포크 0에 대한 DAG 생성 완료

마이닝 난이도 (genesis 파일의 “difficulty”매개 변수)를 너무 높게 설정하여 더 오래 기다려야 할 수 있음을 의미합니다.

마무리

3 개의 튜토리얼을 마치고 나면 geth에 대해 더 많은 경험을 쌓고 블록 체인이 어떻게 설정되고 채굴을 시작할 수 있는지 맛보아야합니다. 네가 좋아하길 바래. 나는 어떤 제안이라도 열려 있습니다. 감사합니다 🙂