Chainlink Background
This project came into existence in October 2016 as an open-source software which was primarily developed by a group who call themselves "SmartContract ChainLink" at MIT . However, it gained a bit of popularity after the ICO in Q3 2017. The project was founded by Sergey Nazarov , Steve Ellis, and Evan Cheng.
The primary function of this network is to connect a smart contract on a blockchain platform to any external resource such as a third party data feeds, APIs, bank account payments and so on. In other words, it acts as an "oracle" which works together with different blockchains that allow it to communicate outside information or events directly with smart contracts.
Chainlink Main Components
In its main components, Chainlink has three major parts: on-chain decentralized node network called "Chainlink Core", middleware for off-chain access named Cloud Node and finally the interface between core nodes and cloud nodes which is known as "SmartContract".
The Chainlink Core comprises of a decentralized network of nodes which communicate and monitor the activity on each blockchain and matches with off-chain data feeds. If there is any match, it sends this information to the Smart Contract interface. Thereafter, additional business logic can be performed before making a decision based on the actual data from external sources. In addition, they also have a unique consensus mechanism that they call "Federated Byzantine Agreement" protocol which will help them keep track of all transactions in this system transparently and efficiently.
Also, smart contracts are deployed for different purposes such as requesting an API or payment from a bank account for example. Cloud Nodes enable access via APIs to these functions so they can read the data of specific transactions on blockchains. The interface or smart contract of Chainlink is used to pass data and currency from one blockchain to another.
If you want to set up a node, you need 10,000 LINK tokens as collateral and 20 hours of setup time. This will allow you to become an independent validator on the network and help facilitate more matches between external services and Smart Contracts automatically. Different nodes are categorized into 4 different groups i.e.: Controller Nodes , API Nodes , Oracle Nodes , Oracles . The controller nodes are responsible for setting up consensus in the system by monitoring each transaction happening on any blockchain which has been linked with them using their API service channels . On the hand, API Nodes are responsible for monitoring incoming requests for cryptocurrency transactions which they call "event data" or "off-chain data". Next, Oracle nodes are responsible for finding sources of off-chain information i.e. connecting with APIs , Web Services etc. One can become an Oracle by either setting up their own node to connect directly with the source of information or getting access through an API Node who is already connected to it. Finally, Oracles are the most important part because the smart contracts rely on them heavily to get external information before making any decisions. The smart contract pays for this information using Chainlink's native token LINK.