The commonly used definition of an oracle in regards to blockchain technology is to retrieve data from the internet and feed it to a smart contract. Chainlink provides the functionality to do that in a decentralized manner, but it also adds some extra power, by making use of external adapters to produce outputs. The outputs can be passed on to other external adapters within the Chainlink node and can even give Chainlink the capability to utilize private resources and blockchains residing in a company’s network. Throughout this article, I’m going to refer to this fictional company as such, without a specific name.

The process above is simple and can be applied for any oracle service. However, Chainlink specifically can retrieve the data by utilizing several nodes to return a single aggregated answer to a smart contract. The Chainlink symbol will always be used to represent a network of nodes in my diagrams.

For each of the diagrams shown, I’ll break down and explain each significant step in a workflow like this:

A) Data resides on the internet, or some data provider

B) Chainlink nodes retrieve that data

C) The data is given to a smart contract residing on the blockchain

This does a good job at explaining the entities, but we also need to be looking at the processes.

A simplified workflow for this diagram is:

A) Chainlink nodes are selected for the contract, referred to as a job

B) The nodes return a result to a smart contract

Through the rest of this article, I’ll be mainly focusing on the processes, represented by the arrows, but I’ll include entities in the workflow where explanation is needed.