I want to start development with Cardano but Im confused about these three.
- Cardano Node
- Cardano Stake Pool
- Cardano Relay
Are these three interchangeable , or are they entirely different to each other?
If I wanted to start developing for Cardano, like smart contracts using Plutus, which of these three do I need?
Hello @cardanoxchange
Cardano has many types of nodes.
Stake Pool consists of a collection of nodes:
- It contains one block producing node that is kept off-chain (for security reasons) and contains keys and certificates.
- It also contains multiple relay nodes that connect block producing node to other relay nodes and blockchain.
There are also passive nodes and wallet nodes, etc…
To start developing in Plutus you need to know Haskell and get familiar with Plutus program. When you are testing your contracts on the test net there is usually someone already running test nodes/stake pools. So you may not need to create any test nodes.
Plutus is a programing language made for Cardano (written Haskell) and it is what smart contracts are made out of on-chain. Once you write and deploy a smart contract it will be executed live on nodes during transactions. Off-chain part is just Haskell and that is how people will interact with smart contract.
So to start developing smart contracts on Cardano you need to know:
- Haskell
- Take a Plutus course to learn how that Haskell is applied on-chain.
- Have a basic understanding of Extended UTxO that Cardano runs.
That is assuming that your smart contracts do not include wallet building, bridging, wrapping, …
You can get more info on how to learn Plutus in pioneer program here:
https://iohk.io/en/blog/posts/2021/04/01/everything-you-need-to-know-about-our-new-plutus-pioneer-program/
Here is an article on how to get started in Plutus:
https://testnets.cardano.org/en/programming-languages/plutus/getting-started/
Hope this helps 
2 Likes
Hi @cardanoxchange!
Yes, this wasn’t clear for me in the beginning either, why use different terms that mean the same but are more or less interchangable? It is basically addressing different functions and properties, depending on your POV, which makes sense: (ELI5 version)
As you know, the Cardano blockchain is maintained on and by a network of computers. They are connected with each other and as the network architecture looks like a web and each computer can be seen as a knot (or a node) in this web, they are called network nodes. Each one communicates with the connected other nodes and relays information to them. So a relay and a node are the same, the term ‘relay’ is more referring to what each one does (relay information from one to the next node), and the term ‘node’ refers to it’s role in the network architecture (to form a web and connect with others).
Most nodes really only relay information, but we also have special nodes that produce blocks. They have certain keys and are for security reasons only connected with relays a stake pool operator controls, and they are called ‘block producing nodes’, this term also refers to the node’s function (produces blocks), and although it usually sits behind one or more relay nodes, it is still a part of the network (a node).
The term ‘stake pool’ or short ‘pool’ refers to how the selection mechanism to elect a block leader in a proof-of-stake algorithm works, and how participants cooperate to maximise their rewards. They delegate their ADA to block producers to increase their chance to produce a block and get rewards, and as the ADA of several delegators is put together in one pile, or is pooled, it is called a ‘stake pool’. So this term refers to what the delegators and the stake pool operator do with it (pool their ADA for staking). From a technical POV, a stake pool consists of a block producing node and at least one relay node.
1 Like