이 페이지는 영문에서 기계 번역되었으므로 오역이나 어색한 표현이 있을 수 있습니다. 따라서 정확한 정보는 영어 원문을 참조하시기 바랍니다. 또한 잦은 업데이트로 인해 일부 콘텐츠는 영문이 그대로 남아있을 수 있습니다. Crowdin에서 이 페이지의 번역을 개선하는 데 동참하여 도움을 주세요. (Crowdin translation page, Contributing guide)
제네시스 파일
이 페이지는 genesis.json
파일에 대한 자세한 내용을 설명합니다.
제네시스 JSON 파일 구조
genesis.json
파일 구조는 다음 표에 설명되어 있습니다.
필드 이름 | 설명 |
---|---|
config | 블록체인 구성입니다. Config 섹션을 참조하세요. |
nonce | (사용되지 않음) 이 필드는 이더리움에서 파생되었지만 Klaytn에서는 사용되지 않습니다. |
timestamp | 블록이 생성된 유닉스 시간입니다. |
extraData | 서명자 vanity와 유효성 검사자 목록, 제안자 씰, 커밋 씰을 포함하는 RLP 인코딩된 Istanbul 추가 데이터를 위한 데이터 결합 필드입니다. |
gasLimit | 블록에 사용된 최대 가스 양입니다. |
difficulty | (사용되지 않음) 이 필드는 이더리움에서 파생되었지만 Klaytn에서는 사용되지 않습니다. |
mixhash | (사용되지 않음) 이 필드는 이더리움에서 파생되었지만 Klaytn에서는 사용되지 않습니다. |
coinbase | miner가 보상을 받을 주소입니다. 이 필드는 Clique 합의 엔진에만 사용됩니다. |
alloc | 미리 정의된 계정. |
number | 블록 번호 필드입니다. |
gasUsed | 블록에 사용된 가스 양입니다. |
parentHash | 이전 블록의 해시 값입니다. |
Config
config
필드에는 체인 관련 정보가 저장됩니다.
필드 이름 | 설명 |
---|---|
chainId | 현재 체인을 식별하며 리플레이 공격을 방지하는 데 사용됩니다. |
istanbulCompatibleBlock | Istanbul 변경이 적용되는 블록 번호입니다. |
istanbul, clique | 합의 엔진의 유형입니다. |
unitPrice | 단가 |
deriveShaImpl | 트랜잭션 해시 및 영수증 해시를 생성하는 메서드를 정의합니다. |
governance | 네트워크의 거버넌스 정보입니다. Governance 섹션을 참고하세요. |
extraData
extraData
필드는 제안자 vanity와 RLP로 인코딩된 Istanbul 추가 데이터의 연결입니다:
- 제안자 vanity는 임의의 제안자 vanity 데이터를 포함하는 32바이트 데이터입니다.
- 나머지 데이터는 RLP로 인코딩된 Istanbul 추가 데이터입니다:
- 검증자: 오름차순으로 나열된 검증자 목록입니다.
- Seal: 헤더의 제안자 서명입니다.
genesis.json
의 경우 65개의0x0
으로 초기화된 바이트 배열입니다. - CommittedSeal: 합의 증명을 위한 커미션 서명 씰 목록입니다.
genesis.json
의 경우 빈 배열입니다.
예제
필드 | 유형 | value |
---|---|---|
vanity | 32바이트 16진수 문자열 | 0x0000000000000000000000000000000000000000000000000000000000000000 |
Validators | []address | [0x48009b4e20ec72aadf306577cbe2eaf54b0ebb16,0x089fcc42fd83baeee4831319375413b8bae3aceb] |
Seal | 65개 요소의 바이트 배열 | [0x0,...,0x0] |
CommittedSeal | [][]byte | [] |
위 데이터가 포함된 extraData
는 다음과 같이 생성됩니다.
concat('0x',Vanity,RLPEncode({Validators,Seal,CommittedSeal}))
여기서 concat
은 문자열 연결 함수이고, RLPEncode
는 주어진 구조를 RLP 인코딩된 문자열로 변환하는 함수입니다.
With this function, the output extraData
for this example is 0x0000000000000000000000000000000000000000000000000000000000000000f86fea9448009b4e20ec72aadf306577cbe2eaf54b0ebb1694089fcc42fd83baeee4831319375413b8bae3acebb8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0.
합의 엔진
Kaia 네트워크에서 사용할 수 있는 합의 엔진은 Clique와 Istanbul입니다. 각 엔진에 대한 설명은 다음과 같습니다.