core

package
v2.5.1-mercury-20230908 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2023 License: MIT Imports: 8 Imported by: 0

README


Chainlink logo


Go Report Card GoDoc

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
evm
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/gas/cmd/arbgas
arbgas takes a single URL argument and prints the result of three GetLegacyGas calls to the Arbitrum gas estimator.
arbgas takes a single URL argument and prints the result of three GetLegacyGas calls to the Arbitrum gas estimator.
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.
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.
ocr2vrf
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.
gethwrappers2
Package gethwrappers keeps track of the golang wrappers of the solidity contracts
Package gethwrappers keeps track of the golang wrappers of the solidity contracts
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
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).
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
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