Sobre o projeto

Chainlink é um projeto open-source que amplia as capacidades dos contratos inteligentes ao fornecer acesso a dados do mundo real e computação off-chain, preservando as garantias de segurança e confiabilidade da blockchain. Este repositório contém o Chainlink core node e os contratos. O core node é o binário empacotado executado pelos operadores de nós que participam de uma rede de oráculos descentralizada. Principais capacidades descritas no README: - Binário do core node com uma interface web (porta padrão 6688) e um cliente CLI remoto para administração, login e gerenciamento de jobs. - Gerenciamento de jobs por meio de comandos CLI como `chainlink jobs list`, com documentação sobre como criar jobs. - Configuração por meio de uma combinação de variáveis de ambiente e configurações diretas via API, UI ou CLI. - Adaptadores externos que tornam o sistema extensível, permitindo a integração de computações personalizadas e APIs especializadas por meio de uma API REST simples. - Suporte a plugins definidos em arquivos YAML no diretório `plugins/`, instalados com loopinstall; alguns plugins referenciam repositórios privados. - Imagens Docker pré-compiladas para versões principais de release, além de fluxos de trabalho para compilar imagens apenas para testes a partir de branches ou PRs. - Verificação de releases usando cosign com assinatura keyless OIDC. Notas de build e desenvolvimento: - Requer Go, NodeJS e pnpm, e PostgreSQL (>= 15.x); a imagem Docker oficial suporta até Postgres 18.x devido ao cliente incluído. - Compile com `make install` e execute `chainlink help` ou `chainlink node start`. - Executar o nó requer acesso a um cliente de execução Ethereum com uma conexão websocket aberta. Os clientes oficialmente suportados listados são Parity/Openethereum (obsoleto), Geth e Besu; Nethermind e Erigon são descritos como suportados, mas com problemas devido a questões conhecidas. - Os testes podem usar `make test` com um banco de dados de teste efêmero, ou um fluxo manual envolvendo configuração do banco de dados de teste, migrações e `go test ./...`. Detecção de condições de corrida e fuzz testing são suportados. - O repositório contém três módulos Go (root, integration-tests, core/scripts) com replaces relativos, e `make gomodtidy` organiza os três. - A geração de código usa mockery para mocks; um shell/flake Nix é fornecido para um ambiente de desenvolvimento reproduzível. - Changesets são usados para versionamento, e o projeto segue Semantic Versioning e as convenções Keep a Changelog. Comunidade e contribuição: Discord é o canal de comunicação principal; diretrizes de contribuição e o rastreador de issues são referenciados, e a documentação oficial está disponível em docs.chain.link.