프로젝트 소개
# EVM 기반 체인
이 저장소는 이더리움 가상 머신(EVM) 호환 블록체인의 메타데이터를 관리하는 중앙 레지스트리 역할을 한다. 데이터는 `_data/chains` 디렉터리 내 JSON 형식으로 구조화되어 있으며, 각 파일은 [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md) 표현을 파일 이름으로 사용하는 특정 체인에 해당한다.
## 데이터 구조
각 체인 항목에는 필수 연결 및 식별 정보가 포함된다:
- **식별**: `name`, `shortName`, `chainId`, `networkId`.
- **연결**: 블록체인과 상호작용하기 위한 `rpc` URL 목록.
- **통화**: 이름, 심볼, 소수 자릿수를 포함한 `nativeCurrency` 세부 정보.
- **기능**: EIP155 또는 EIP1559와 같은 지원 표준.
- **익스플로러**: EIP3091 표준을 준수하는 블록 익스플로러 링크.
- **아이콘**: `_data/icons` 디렉터리를 통해 IPFS에 저장된 아이콘 자산 참조.
레이어 2 체인이나 샤드의 경우 `parent` 필드를 통해 기본 레이어와 연결할 수 있으며, 필요시 브리지 URL도 포함할 수 있다.
## 제약 및 거버넌스
리플레이 공격 방지와 데이터 무결성 보장을 위해 엄격한 규칙이 적용된다:
- **고유성**: `shortName`과 `name`은 모든 항목에서 고유해야 한다.
- **체인 ID 충돌**: 특정 체인 ID는 하나의 체인만 가질 수 있다. 해당 ID를 요청한 첫 번째 유효한 풀 리퀘스트가 소유권을 가진다. 기존 체인의 ID를 대체하는 것은 원본이 폐기되지 않는 한 금지된다.
- **상태 관리**: 체인은 `active`, `incubating`, `deprecated`로 표시될 수 있다. 폐기된 체인은 역사적 무결성을 유지하기 위해 절대 삭제되지 않는다.
- **아이콘 요구 사항**: 아이콘은 IPFS를 통해 공개적으로 확인 가능해야 하며(`ipfs get`), 250kb 미만이어야 하고 양의 정수 크기를 가져야 한다.
## 집계
자동 집계 스크립트는 다음 위치에서 통합 JSON 파일을 생성한다:
- 전체 데이터셋: `https://chainid.network/chains.json`
- 축소 버전: `https://chainid.network/chains_mini.json`
## 활용
이 레지스트리는 Web3 생태계의 다양한 도구에서 널리 채택되고 있다:
- **지갑**: TREZOR, WallETH, Minerva Wallet.
- **익스플로러**: Otterscan.
- **개발자 도구**: Wagmi 호환 구성, MESC(Metadata for Ethereum Supported Chains).
- **목록 사이트**: chainid.network, chainlist.org, evmchain.info.
## 기여
기여자는 풀 리퀘스트 제출 전에 CI 검사를 통과해야 한다. 여기에는 검증 스크립트 실행(`./gradlew run`)과 프로젝트 스타일 가이드에 따라 Prettier를 사용한 JSON 파일 포맷팅이 포함된다. CI에 실패한 풀 리퀘스트는 수정될 때까지 검토되지 않는다. 새 체인을 추가하려면 올바른 CAIP-2 파일 이름과 유효한 JSON 구조로 풀 리퀘스트를 제출하면 된다. 특정 체인 ID가 필요한 경우 풀 리퀘스트를 통해 요청하고, 기존 체인을 대체하려면 기존 항목을 먼저 폐기해야 한다. 질문이나 활용 목록 추가는 관리자에게 문의하면 된다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.