About this project
Chainlink is an open-source project that extends smart contract capabilities by providing access to real-world data and off-chain computation while preserving blockchain security and reliability guarantees. This repository contains the Chainlink core node and contracts. The core node is the bundled binary run by node operators participating in a decentralized oracle network.
Key capabilities described in the README:
- Core node binary with a web UI (default port 6688) and a remote CLI client for administration, login and job management.
- Job management via CLI commands such as `chainlink jobs list`, with documentation on creating jobs.
- Configuration through a combination of environment variables and direct settings via API, UI or CLI.
- External adapters that make the system extensible, allowing integration of custom computations and specialized APIs through a simple REST API.
- Plugin support defined in YAML files under the `plugins/` directory, installed with loopinstall; some plugins reference private repositories.
- Pre-built Docker images for major release versions, plus workflows to build testing-only images from branches or PRs.
- Release verification using cosign with OIDC keyless signing.
Build and development notes:
- Requires Go, NodeJS and pnpm, and PostgreSQL (>= 15.x); the official Docker image supports up to Postgres 18.x due to the bundled client.
- Build with `make install`, then run `chainlink help` or `chainlink node start`.
- Running the node requires access to an Ethereum execution client with an open websocket connection. Officially supported clients listed are Parity/Openethereum (deprecated), Geth and Besu; Nethermind and Erigon are described as supported but broken due to known issues.
- Testing can use `make test` with an ephemeral test database, or a manual flow involving test database setup, migrations and `go test ./...`. Race detection and fuzz testing are supported.
- The repository contains three Go modules (root, integration-tests, core/scripts) with relative replaces, and `make gomodtidy` tidies all three.
- Code generation uses mockery for mocks; a Nix shell/flake is provided for a reproducible development environment.
- Changesets are used for versioning, and the project follows Semantic Versioning and Keep a Changelog conventions.
Community and contribution: Discord is the primary communication channel; contribution guidelines and issue tracker are referenced, and official documentation is available at docs.chain.link.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.