Skip to content

libocr consists of a Go library and a set of Solidity smart contracts that implement the Chainlink Offchain Reporting Protocol

License

Notifications You must be signed in to change notification settings

smartcontractkit/libocr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

175 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

libocr

libocr consists of a Go library and a set of Solidity smart contracts that implements various versions of the Chainlink Offchain Reporting Protocol, a Byzantine fault tolerant "consensus" protocol that allows a set of oracles to generate offchain an aggregate report of the oracles' observations of some underlying data source. This report is then transmitted to an onchain contract in a single transaction.

You may also be interested in libocr's integration into the actual Chainlink node. (V1 V2 V3)

Protocol Description

Please see the whitepapers available at https://chainlinklabs.com/research for detailed protocol descriptions.

Protocol Versions

  • OCR1 is deprecated and being phased out.
  • OCR2 & OCR3 are in production.
  • OCR3.1 is in alpha and excluded from any bug bounties at this time. So are the associated Key-Value-Database in offchainreporting2plus/keyvaluedatabase/ and helpers in internal/jmt, internal/randmap, internal/singlewriter.

Organization

β”œβ”€β”€ bigbigendian: helper package
β”œβ”€β”€ commontypes: shared type definitions
β”œβ”€β”€ contract: OCR1 Ethereum contracts
β”œβ”€β”€ contract2: OCR2 Ethereum contracts
β”œβ”€β”€ contract3: OCR3 Ethereum contracts
β”œβ”€β”€ gethwrappers: go-ethereum bindings for the OCR1 contracts, generated with abigen
β”œβ”€β”€ gethwrappers2: go-ethereum bindings for the OCR2 contracts, generated with abigen
β”œβ”€β”€ gethwrappers3: go-ethereum bindings for the OCR3 contracts, generated with abigen
β”œβ”€β”€ networking: OCR networking layer
β”œβ”€β”€ offchainreporting: OCR1
β”œβ”€β”€ offchainreporting2: OCR2-specific
β”œβ”€β”€ offchainreporting2plus: OCR2 and beyond (These versions share many interface definitions to make integration of new versions easier)
β”œβ”€β”€ permutation: helper package
β”œβ”€β”€ quorumhelper: helper package
β”œβ”€β”€ ragep2p: p2p networking
└── subprocesses: helper package

About

libocr consists of a Go library and a set of Solidity smart contracts that implement the Chainlink Offchain Reporting Protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8