このプロジェクトについて

Chainlinkは、ブロックチェーンのセキュリティと信頼性の保証を維持しながら、現実世界のデータとオフチェーン計算へのアクセスを提供することでスマートコントラクトの機能を拡張するオープンソースプロジェクトです。このリポジトリには、Chainlinkコアノードとコントラクトが含まれています。コアノードは、分散型オラクルネットワークに参加するノードオペレーターが実行するバンドルされたバイナリです。 READMEに記載されている主な機能: - Web 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`を実行します。 - ノードの実行には、開かれたwebsocket接続を持つEthereum実行クライアントへのアクセスが必要です。公式にサポートされているクライアントは、Parity/Openethereum(非推奨)、Geth、Besuです。NethermindとErigonはサポート対象とされていますが、既知の問題により壊れています。 - テストには、一時的なテストデータベースを使用した`make test`、またはテストデータベースのセットアップ、マイグレーション、`go test ./...`を含む手動フローを使用できます。レース検出とファズテストがサポートされています。 - リポジトリには3つのGoモジュール(ルート、integration-tests、core/scripts)が含まれており、相対的なreplace指定があります。`make gomodtidy`で3つすべてを整理します。 - コード生成にはmockeryを使用してモックを作成します。再現可能な開発環境のためにNixシェル/flakeが提供されています。 - バージョニングにはChangesetsが使用され、プロジェクトはセマンティックバージョニングとKeep a Changelogの規約に従っています。 コミュニティと貢献:Discordが主要なコミュニケーションチャネルです。貢献ガイドラインと課題トラッカーが参照されており、公式ドキュメントはdocs.chain.linkで入手できます。