core

package
v2.15.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2024 License: MIT Imports: 8 Imported by: 0

README


Chainlink logo


Go Report Card Go Reference

Chainlink Core is the API backend that Chainlink client contracts on Ethereum make requests to. The backend utilizes Solidity contract ABIs to generate types for interacting with Ethereum contracts.

Features

  • Headless API implementation
  • CLI tool providing conveniance commands for node configuration, administration, and CRUD object operations (e.g. Jobs, Runs, and even the VRF)

Installation

See the root README for instructions on how to build the full Chainlink node.

Directory Structure

This directory contains the majority of the code for the backend of Chainlink.

Static assets are pulled in using Go's embed package and included in the final binary.

Common Commands

Install:

By default go install will install this directory under the name core. You can instead, build it, and place it in your path as chainlink:

go build -o $GOPATH/bin/chainlink .

Test:

# A higher parallel number can speed up tests at the expense of more RAM.
go test -p 1 ./...

This excludes more extensive integration tests which require a bit more setup, head over to [./integration-tests] (../integration-tests/README.md) for more details on running those.

The golang testsuite is almost entirely parallelizable, and so running the default go test ./... will commonly peg your processor. Limit parallelization with the -p 2 or whatever best fits your computer: go test -p 4 ./....

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Main

func Main() (code int)

Types

This section is empty.

Directories

Path Synopsis
Package build utilizes build tags and package testing API to determine the environment that this binary was built to target.
Package build utilizes build tags and package testing API to determine the environment that this binary was built to target.
remote/types
Note: the proto_path below directive ensures the generated protobuf's file descriptor has a fully qualified path, ensuring we avoid conflicts with other files called messages.proto
Note: the proto_path below directive ensures the generated protobuf's file descriptor has a fully qualified path, ensuring we avoid conflicts with other files called messages.proto
evm/client
The simulated backend cannot access old blocks and will return an error if anything other than `latest`, `nil`, or the latest block are passed to `CallContract`.
The simulated backend cannot access old blocks and will return an error if anything other than `latest`, `nil`, or the latest block are passed to `CallContract`.
evm/logpoller
Package logpoller is a service for querying EVM log data.
Package logpoller is a service for querying EVM log data.
cmd
Package cmd is the front-end interface for the application as a command-line utility.
Package cmd is the front-end interface for the application as a command-line utility.
docs/cmd/generate
Docs prints core node documentation and/or a list of errors.
Docs prints core node documentation and/or a list of errors.
env
Package gethwrappers provides infrastructure for generating and verifying go-ethereum wrapper packages for smart contracts.
Package gethwrappers provides infrastructure for generating and verifying go-ethereum wrapper packages for smart contracts.
functions
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
keystone
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
llo-feeds
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
operatorforwarder
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
shared
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
transmission
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
Package gethwrappers provides tools for wrapping solidity contracts with golang packages, using abigen.
internal
cltest
Importing cltest should only be for top level black box (X_test package) integration tests, for example testing against the Application object itself.
Importing cltest should only be for top level black box (X_test package) integration tests, for example testing against the Application object itself.
cltest/heavyweight
Package heavyweight contains test helpers that are costly and you should think **real carefully** before using in your tests.
Package heavyweight contains test helpers that are costly and you should think **real carefully** before using in your tests.
Package services contain the key components of the Chainlink node.
Package services contain the key components of the Chainlink node.
blockhashstore
The blockhash store package provides a service that stores blockhashes such that they are available for on-chain proofs beyond the EVM 256 block limit.
The blockhash store package provides a service that stores blockhashes such that they are available for on-chain proofs beyond the EVM 256 block limit.
blockheaderfeeder
The block header feeder package enables automated lookback and blockhash filling beyond the EVM 256 block lookback window to catch missed block hashes.
The block header feeder package enables automated lookback and blockhash filling beyond the EVM 256 block lookback window to catch missed block hashes.
job
llo
ocr
ocr2/plugins/promwrapper
promwrapper wraps another OCR2 reporting plugin and provides standardized prometheus metrics for each of the OCR2 phases (Query, Observation, Report, ShouldAcceptFinalizedReport, ShouldTransmitAcceptedReport, and Close).
promwrapper wraps another OCR2 reporting plugin and provides standardized prometheus metrics for each of the OCR2 phases (Query, Observation, Report, ShouldAcceptFinalizedReport, ShouldTransmitAcceptedReport, and Close).
p2p
pg
s4
signatures/cryptotest
Package cryptotest provides convenience functions for kyber-based APIs.
Package cryptotest provides convenience functions for kyber-based APIs.
signatures/ethdss
Package ethdss implements the Distributed Schnorr Signature protocol from the //////////////////////////////////////////////////////////////////////////////
Package ethdss implements the Distributed Schnorr Signature protocol from the //////////////////////////////////////////////////////////////////////////////
signatures/ethschnorr
Package ethschnorr implements a version of the Schnorr signature which is //////////////////////////////////////////////////////////////////////////////
Package ethschnorr implements a version of the Schnorr signature which is //////////////////////////////////////////////////////////////////////////////
signatures/secp256k1
Package secp256k1 is an implementation of the kyber.{Group,Point,Scalar} //////////////////////////////////////////////////////////////////////////////
Package secp256k1 is an implementation of the kyber.{Group,Point,Scalar} //////////////////////////////////////////////////////////////////////////////
vrf
ldapauth
The LDAP authentication package forwards the credentials in the user session request for authentication with a configured upstream LDAP server
The LDAP authentication package forwards the credentials in the user session request for authentication with a configured upstream LDAP server
Package store is used to keep application events in sync between the database on the node and the blockchain.
Package store is used to keep application events in sync between the database on the node and the blockchain.
Package utils is used for common functions and tools used across the codebase.
Package utils is used for common functions and tools used across the codebase.
big_math
Package bigmath compensates for awkward big.Int API.
Package bigmath compensates for awkward big.Int API.
web
schema
Package schema is used to read schema files go:generate go-bindata -ignore=\.go -pkg=schema -o=bindata.go ./...
Package schema is used to read schema files go:generate go-bindata -ignore=\.go -pkg=schema -o=bindata.go ./...

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL