체인 스펙을 커스텀하기
Substrate 노드를 만든 후에는 많은 피어와 함께 네트워크를 시작하고 싶을 것입니다! 이 가이드는 다른 노드가 네트워크를 명시적으로 발견하고 피어링할 수 있도록 체인 스펙 파일을 균일하게 생성하고 배포하는 한 가지 방법을 보여줍니다.
이 가이드에서는 다음을 설명합니다:
chain-spec.json
을 생성하고 다른 노드가 공통 네트워크에 참여할 수 있도록 포함하는 방법노드 소스 코드를 편집하지 않고 기존의 일반 체인 스펙을 수정하는 방법
체인 스펙 생성하기
일반 체인 스펙 파일
노드의 작업 디렉토리에서 다음 명령을 사용하여 일반 체인 스펙을 생성합니다:
이제
chain_spec.rs
파일에서 설정된 기본 네트워크를 위한 일반 체인 스펙 파일을 생성했습니다. 이 파일은 다른 노드에 전달할 수 있습니다.일반 체인 스펙 수정하기 (선택 사항):
이 선택 사항은 노드의 소스를 수정하여 _새 네트워크_에서 실행해야 하는 네트워크의 기존 일반 체인 스펙을 활용할 수 있습니다. 예를 들어, 이는 로컬 릴레이 체인 준비에서 Polkadot의 소스를 커스텀하지 않고 커스텀 _릴레이 체인_을 생성하려는 경우에 매우 유용합니다.
여기서는 동일한 체인 스펙을 사용하지만 부트노드를 비활성화하기 위해 플래그를 전달합니다. 이렇게 하면 이러한 노드가 다른 새 네트워크를 위해 다른 노드가 될 수 있는 _새 네트워크_가 필요합니다.
이
no-bootnodes-chain-spec-plain.json
은 SCALE 저장소 인코딩된 배포 가능한 원시 체인 스펙을 생성하는 데 사용될 수 있습니다.
원시 체인 스펙 파일
원시 체인 스펙 생성하기.
일반 사양이 준비되면 다음을 실행하여 최종 원시 체인 스펙을 생성할 수 있습니다:
원시 체인 스펙은 노드에 전달될 때 항상 사용되어야 합니다.
원시 체인 스펙 생성하기
Rust로 빌드된 WebAssembly 대상은 최적화되어 있기 때문에 바이너리는 결정론적으로 재현할 수 없습니다. 각 네트워크 참가자가 일반 및/또는 원시 체인 스펙을 생성한다면, 결과적인 Wasm 블롭의 차이로 인해 합의가 깨질 수 있습니다.
일반적으로는 노드의 소스 코드 자체에 체인 스펙 파일을 포함하여 노드를 동일한 방식으로 빌드할 수 있도록하는 것이 좋습니다. 이렇게 하면 다른 genesis 블롭(blob)과 비교하기 쉬워집니다. 인프라블록체인(InfraBlockchain) 같은 네트워크 체인 스펙 파일은 여기에서 찾을 수 있으며, .gitignore
파일도 함께 제공되어 이러한 !/*.json
파일을 실수로 변경하지 않도록 합니다. 이렇게 하면 노드 소프트웨어를 더 발전시키고 런타임 업그레이드를 수행하는 동안 안정성을 유지할 수 있습니다.
새 노드 시작하기
노드 바이너리를 게시하거나 사용자가 직접 빌드한 다음 네트워크에 참여하려는 경우, 필요한 것은 동일한 원시 체인 스펙 파일과 다음 명령을 사용하여 바이너리를 실행하는 것입니다:
이는 기본 네트워크로 간단히 구성할 수도 있습니다. 참고로, Polkadot은 다양한 네트워크에 대한 체인 스펙을 사용하는 기본 명령을 구현하는 방법을 볼 수 있습니다. 여기에서 이러한 체인 스펙을 찾을 수 있습니다.
예시
Last updated