Об этом проекте

Chainlink — проект с открытым исходным кодом, расширяющий возможности смарт-контрактов за счёт доступа к данным реального мира и вычислениям вне цепи при сохранении гарантий безопасности и надёжности блокчейна. Этот репозиторий содержит базовый узел Chainlink и контракты. Базовый узел — это поставляемый бинарный файл, запускаемый операторами узлов, участвующими в децентрализованной сети оракулов. Ключевые возможности, описанные в README: - Бинарный файл базового узла с веб-интерфейсом (порт по умолчанию 6688) и удалённым CLI-клиентом для администрирования, входа в систему и управления заданиями. - Управление заданиями через CLI-команды, такие как `chainlink jobs list`, с документацией по созданию заданий. - Конфигурация через комбинацию переменных окружения и прямых настроек через API, UI или CLI. - Внешние адаптеры, делающие систему расширяемой и позволяющие интегрировать пользовательские вычисления и специализированные API через простой REST API. - Поддержка плагинов, определяемых в YAML-файлах в директории `plugins/`, устанавливаемых с помощью loopinstall; некоторые плагины ссылаются на приватные репозитории. - Предварительно собранные Docker-образы для основных версий релизов, а также рабочие процессы для сборки тестовых образов из веток или PR. - Верификация релизов с использованием cosign с безключевым подписанием OIDC. Заметки по сборке и разработке: - Требуются Go, NodeJS и pnpm, а также PostgreSQL (>= 15.x); официальный Docker-образ поддерживает до Postgres 18.x из-за встроенного клиента. - Сборка с помощью `make install`, затем запуск `chainlink help` или `chainlink node start`. - Для запуска узла требуется доступ к клиенту исполнения Ethereum с открытым websocket-соединением. Официально поддерживаемые клиенты: Parity/Openethereum (устарел), Geth и Besu; Nethermind и Erigon описаны как поддерживаемые, но неработающие из-за известных проблем. - Для тестирования можно использовать `make test` с временной тестовой базой данных или ручной процесс, включающий настройку тестовой базы данных, миграции и `go test ./...`. Поддерживаются обнаружение гонок и фаззинг-тестирование. - Репозиторий содержит три Go-модуля (root, integration-tests, core/scripts) с относительными заменами, а `make gomodtidy` приводит в порядок все три. - Генерация кода использует mockery для моков; предоставляется Nix shell/flake для воспроизводимой среды разработки. - Changesets используются для версионирования, проект следует конвенциям Semantic Versioning и Keep a Changelog. Сообщество и участие: Discord — основной канал связи; упоминаются руководства по участию и трекер проблем, официальная документация доступна на docs.chain.link.