Chainlink is a decentralized oracle network used to provide external data to Ethereum smart contracts. Connecting external data allows a contract to have the information from real-world external events, APIs, and other blockchains.
The Chainlink network provides reliable tamper-proof inputs and outputs for complex smart contracts on any blockchain. Smart contracts allow you to execute tamper-proof digital agreements, which are considered highly secure and reliable.
In order to maintain a contracts’ overall reliability, the inputs and outputs which the contract relies on also need to be secure. Chainlinks provide a reliable connection to external data, that is provably secure end-to-end.
Chainlink has been popular in the blockchain community with its architecture as a decentralized Oracle technology. Unlike other Oracle designs that rely on a centralized party to be trusted as a gateway, Chainlink is built on a network of independent node operators to offer unique integrations. The node operators are rewarded with the LINK tokens for performing verifiably honest and high-quality work. They can also be punished for being dishonest or turning up a result of poor quality.
The Oracle contract is at the center of the Chainlink design. This is a core aspect of how Chainlink is used in Kaleido blockchain networks.
The contract communicates with the Chainlink network nodes by publishing EVM events specifically designed to broadcast client requests for external data or job execution: OracleRequest. The request object contains the job ID, client payment amount, client’s desired job execution parameters, and callback addresses for the client contract to accept job execution results.
More than one Oracle contract may be active in a blockchain network. A Chainlink node operator may choose which Oracle contracts to register with in order to be permitted to handle job requests. A Chainlink client contract may choose which Oracle to send the job request to.
The main consumer of the Chainlink Oracle function is naturally a smart contract. This is what the application developers building enterprise blockchain solutions need to develop.
As described above, a client smart contract is not allowed to interact with the outside world. This must be done by going through a mechanism where the need for the external data is broadcast via transaction events, then an external party that listens for such events gets notified for the request, and grabs the requested data and finally sends it into the chain by calling the smart contract via a transaction.