제네시스 설정
계정, 파라미터, 모듈 설정을 포함한 마루 블록체인의 초기 상태를 정의합니다.
제네시스 설정은 마루 네트워크의 시작 상태를 명시하는 JSON 파일(genesis.json)입니다. 이것은 첫 번째 블록이 생성되는 기초적인 청사진입니다. 이 설정은 초기 토큰 분배와 검증인 집합부터 EVM, 수수료 시장, 그리고 마루의 커스텀 PCL 및 OKRW 모듈과 같은 핵심 모듈의 기본 파라미터에 이르기까지 모든 것을 결정합니다.
`genesis.json`의 구조
genesis.json 파일은 최상위 키가 애플리케이션에 등록된 모듈의 이름에 해당하는 큰 JSON 객체입니다. 각 키의 값은 해당 특정 모듈의 초기 상태를 나타내는 또 다른 JSON 객체입니다. 예를 들어, bank 키는 초기 계정 잔액을 보유하고, staking 키는 초기 검증인 집합을 정의합니다.마루 고유의 기본값
app/genesis.go 파일은 마루 생태계에 맞게 조정된 핵심 모듈의 기본 제네시스 상태를 생성하는 함수를 제공합니다:NewEVMGenesisState: EVM 모듈을 설정합니다. 결정적으로, 사용 가능한 모든 정적 프리컴파일을 활성화하여 스마트 컨트랙트가 체인 시작 첫날부터 PCL 및 신원과 같은 마루의 핵심 기능에 접근할 수 있도록 합니다.NewFeeMarketGenesisState: EIP-1559 수수료 시장을 설정합니다. 마루는 BaseFee 활성화로 운영됩니다 — 발신자가 base fee (소각됨)와 priority tip (검증인에게 지급)을 모두aokrw로 지불합니다. 표준 EVM 툴이 별도 설정 없이 올바른 값을 계산합니다. 전체 메커니즘은feemarket-module참조.NewMintGenesisState:mint_denom을aokrw로 설정하여, OKRW 스테이블코인을 새로운 블록 보상 민팅에 사용되는 토큰으로 지정합니다.NewOkrwGenesisState&NewPclGenesisState: 마루의 커스텀 모듈을 기본 파라미터로 초기화하여, 체인이 시작되자마자 작동할 수 있도록 준비합니다.
생성 및 수정
기본
genesis.json은 marood init 명령을 사용하여 생성할 수 있습니다. 개발자와 노드 운영자는 네트워크를 시작하기 전에 이 파일을 수정하여 테스트넷을 위해 특정 계정에 토큰을 할당하거나 다른 거버넌스 파라미터를 설정하는 등 초기 상태를 사용자 정의할 수 있습니다.