How to start with Blockchain?
I usually write tutorials here but this post is going to be different: I am going to share my personal opinion about the best resources to learn blockchain. I do this because I got a comment under one of my earlier post asking:
what are the best resources for beginners to start with blockchain?
Blockchain is a broad term. Let's focus on Ethereum first.
Ethereum
If you want to learn the concept you can start with Austin Griffith's playlist. Pro tip: start from the second video as the first one might look intimidating (i.e. sounds like gibberish to beginners). Once you understand the very basics like hashing, gas, addresses, contracts, etc... you can move to another great video of him, where he explains his project, scaffold-eth to a couple of guys. Scaffold-eth is definitely worth experimenting with. Be careful though as running the built-in blockchain will freeze a weaker computer after a while.
Dappuniversity is another great place to start. It is absolutely very beginner-friendly. On his youtube channel he meticulously explains every details as no prior blockchain experience is assumed. He builds dapps (decentralized applications) step-by-step with frontend. The frontend he uses is the class-based, nowadays slightly outdated version of React, though. I did not buy his paid courses so I can't judge them but the free material on his channel is definitely a smooth start for beginners.
On Ethereum the language for smart contracts is solidity. At the first glance it resembles javascript. You can learn solidity on this interactive site. I learned solidity by going through this interactive tutorial. I even built an oracle. But whenever I need a reference or an example solidity-by-example.org is my first place to visit.
As for tools, I can recommend Hardhat. They have a cool, up-to-date tutorial. Other developers prefer Truffle. They also have great tutorials.
As you progress on your blockchain-journey sooner or later you'll bump into the oracle
problem. You will realize that smart contracts can not access data from the outside world through http request
as almost any other application can. Instead, smart contracts pull data through something called an oracle. This will lead you to chain.link. Here is the best place to start.
Finally I would like to mention another interesting youtube channel, EatTheBlocks, run by a French guy. This channel has plenty of videos which look quite promising but I did not really have the time to watch. Tell me your opinion in the comments if you watched them.
Beyond Ethereum
Hyperledger
As blockchains are moving more and more to the direction of being the dominant form of digital agreement I expect more and more companies to set up their own personalized and private blockchains.
Hyperledger itself is not a blockchain, nor a cryptocurrency. It is a software, a project within the Linux foundation to advance cross-industry blockchain technologies. Hyperledger Fabric is one of the blockchain projects within Hyperledger to create one's own personalized, private and permissioned blockchain service. Like many other blockchain technologies, it has a ledger, uses smart contracts, and is a system by which participants manage their transactions. The good news is that you don't have to learn a new language as it is available in java
, javascript
and go
. The bad news is that you could easily come across with monstrosities like the one below, which well, let's admit looks quite intimidating:
peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name basic --version 1.0 --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
The best place to start is here and here. They are also present on youtube.
Internet Computer
They are the next step of the blockchain evolution. Dfinity's Internet Computer aims to transform blockchain into a full compute platform by giving it unbounded capacity and enebling it to run at web speed. They want to create a public network that can be used as a complete replacement for today’s legacy IT stack, including Big Tech’s cloud services, and legacy infrastructure software such as file systems, web servers, middleware, and databases. It is also a fundamentally different way of persisting data. It is basically an extension of internet that allows developers to build and deploy software directly on the internet without databases or third party cloud providers(AWS, etc...). With their blockchain-based architecture they want to completely re-define how the internet works and their vision is to “reboot” the internet in a way that destroys the ability to create virtual monopolies like Facebook, LinkedIn, Instagram and WhatsApp. Despite the whole thing is based on blockchain, the users will not necessarily notice anything blockchain-like. They don't have to install Metamask or any other wallet. They can access the application the same way as any other website (i.e. there is no gas fee). It runs at web speed. The only bad news about Internet Computer is that you need to learn yet another language. Does it worth the effort? Probably yes, because even if they can only hold half of their promises they will eventually grow huge. The best place to start is here.
They also have a very informative educational Github repo: github.com/DFINITY-Education
and a cool, responsive forum: forum.dfinity.org
IPFS
The InterPlanetary File System (IPFS) is not a blockchain. It is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. But it perfectly works together with Ethereum to store large amount of data when storing it otherwise would be either cost-prohibitive or not decentralized.
I also wrote this and this tutorials which stored data on IPFS.
Cardano
How could I forget about Cardano??? Well, the added benefit of learning Cardano, is to learn Haskell. By the way, it's not only a benefit, but also a prerequisite of anything. Very different, very unique way of thinking.
Start here: learnyouahaskell.com/starting-out