프로젝트 소개
Chainlink는 블록체인의 보안 및 신뢰성 보장을 유지하면서 실제 세계 데이터와 오프체인 연산에 대한 접근을 제공하여 스마트 계약 기능을 확장하는 오픈소스 프로젝트입니다. 이 저장소에는 Chainlink 코어 노드와 컨트랙트가 포함되어 있습니다. 코어 노드는 탈중앙화 오라클 네트워크에 참여하는 노드 운영자가 실행하는 번들 바이너리입니다.
README에 설명된 주요 기능:
- 웹 UI(기본 포트 6688)와 관리, 로그인, 작업 관리를 위한 원격 CLI 클라이언트를 갖춘 코어 노드 바이너리.
- `chainlink jobs list`와 같은 CLI 명령을 통한 작업 관리 및 작업 생성 문서.
- 환경 변수와 API, UI 또는 CLI를 통한 직접 설정의 조합을 통한 구성.
- 간단한 REST API를 통해 사용자 정의 연산과 특수 API 통합을 가능하게 하여 시스템을 확장 가능하게 만드는 외부 어댑터.
- `plugins/` 디렉터리의 YAML 파일에 정의되고 loopinstall로 설치되는 플러그인 지원. 일부 플러그인은 비공개 저장소를 참조합니다.
- 주요 릴리스 버전용 사전 빌드 Docker 이미지와 브랜치 또는 PR에서 테스트 전용 이미지를 빌드하는 워크플로.
- OIDC 키리스 서명과 함께 cosign을 사용한 릴리스 검증.
빌드 및 개발 참고 사항:
- Go, NodeJS, pnpm, PostgreSQL(>= 15.x)이 필요합니다. 공식 Docker 이미지는 번들 클라이언트로 인해 Postgres 18.x까지 지원합니다.
- `make install`로 빌드한 다음 `chainlink help` 또는 `chainlink node start`를 실행합니다.
- 노드를 실행하려면 열린 웹소켓 연결이 있는 Ethereum 실행 클라이언트에 대한 접근이 필요합니다. 공식적으로 지원되는 클라이언트는 Parity/Openethereum(지원 중단), Geth, Besu입니다. Nethermind와 Erigon은 지원되지만 알려진 문제로 인해 손상된 것으로 설명됩니다.
- 테스트는 임시 테스트 데이터베이스와 함께 `make test`를 사용하거나, 테스트 데이터베이스 설정, 마이그레이션, `go test ./...`를 포함하는 수동 흐름을 사용할 수 있습니다. 경합 감지와 퍼즈 테스트가 지원됩니다.
- 저장소에는 상대적 replaces가 있는 세 개의 Go 모듈(root, integration-tests, core/scripts)이 포함되어 있으며, `make gomodtidy`는 세 모듈을 모두 정리합니다.
- 코드 생성은 mockery를 사용하여 mock을 만듭니다. 재현 가능한 개발 환경을 위해 Nix 셸/플레이크가 제공됩니다.
- 버전 관리를 위해 changesets가 사용되며, 프로젝트는 Semantic Versioning과 Keep a Changelog 규칙을 따릅니다.
커뮤니티 및 기여: Discord가 주요 커뮤니케이션 채널입니다. 기여 지침과 이슈 트래커가 참조되어 있으며, 공식 문서는 docs.chain.link에서 제공됩니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.