How to learn Blockchain development?

in #blockchain6 years ago (edited)

The blockchain is a very hot topic right now, and Blockchain developers are in high demand. So it makes sense for a developer to want to dive in and add Blockchain development capabilities in his/her repertoire.

What’s important to understand though, is that Blockchain has come a long way as a technology from the first paper published by Satoshi. Sure, it would be a good thing to start with that paper, but it might appear complicated and can be confusing.

Another important point is, Blockchain development is not concentrated to, and around, Bitcoins. You might be a Blockchain developer and still have never worked with Bitcoins. It is entirely possible.

I would try to explain in short, various concepts around which Blockchain development revolves. Then I would also provide a list of technologies which can be used to become a Blockchain developer.

Concepts

Decentralization: No one entity should own all the assets or resources in the network. It is important to understand how this is different compared to a distributed network. A distributed network can still be owned by one entity, for instance, Netflix. A distributed network is essential for a decentralized network, but it is not necessarily decentralized in its own right.

Immutability: The data once written, should always be a part of the network. Any change performed over the data must also be recorded in the network. This can be achieved by creating a hash of each transaction/operation performed in the network and add it to the next transaction as a metadata. This chains every new transaction to its previous transaction and that is where Blockchain derives its name from.

Assets/Entities: The storage network should support storage of data or some form of transferable asset in some form or the other. This can be Bitcoins for the Bitcoin network, or Ether or Smart contracts or other forms of data in Ethereum network or Assets in case of BigchainDB. (All these are different kinds of prevalent Blockchain networks or frameworks and I will talk about them in some detail later)

Sensor resistance: Although this point is inherent to Decentralization, some Blockchain enthusiasts make a point of mentioning it separately. Basically, any single authority should not be able to Censor the flow of data or exchange of information over a Blockchain. But with the advent of private Blockchain technologies, Censor resistance is not a compulsory component of a Blockchain.

To sum this section up, Blockchain is any decentralized network which supports the aforementioned characteristics.

Now that we have a basic broad explanation of Blockchain, we can move on to the topic of development.

When Bitcoin was launched, the underlying technology wasn’t much explored. But as the interest grew, experts started looking at the architecture which supported bitcoins. An analysis quickly revealed that this architecture had far-reaching potential. To put it in simple words, Bitcoin is to Blockchain, what Email was to the Internet. Sure it is one very important application of it, it is not the only possible application. And Blockchain is touted to be Internet 2.0.

To explore such potential, a lot of new development technologies have come up. Let’s talk about some of them.

Ethereum: Ethereum is not only a Blockchain where one can trade in Ethers. It is also a development framework where one can realize a lot of wonderful ideas and implement them using a Blockchain. The most important aspect of Ethereum Blockchain Development is a concept called Smart Contracts. Smart contracts are basically simple methods or functions which run on the Ethereum Blockchain. They can be imagined as something similar to a Java function for instance. But the difference is that every time the Smart Contracts are executed, the execution takes place over the Blockchain and it is written forever in form of a transaction in it. The transaction cannot be deleted. 

A lot of Blockchain developers are developing Smart contracts. Smart contracts are written in Solidity. According to the introduction, Solidity is a contact-oriented, high-level language for implementing smart contracts. It was influenced by C++, Python, and JavaScript and is designed to target the Ethereum Virtual Machine (EVM). You can learn the development of Solidity by following the tutorial and examples on the mentioned link.

BigchainDB: You might have guessed it by now, that Blockchain suffers from scalability problem. Storing a large amount of data on Blockchain is not a great idea. This is the problem that BigchainDb tries to solve. It is another Blockchain related technology which when used stand alone, can provide a very fast (1 million transactions per second) throughput. It can be used as a Blockchain in its own right. But it can also be used in conjunction with Ethereum to act as a Blockchain secure database where Ethereum acts as the logic processing part of the stack. The development of BigchainDB can be done using nodeJS or a variety of other programming languages.

Hyperledger: Hyperledger is a Business Blockchain tool developed by Linux Foundation and IBM. It provides the capability to create a private permission Blockchain. A good point to start learning Blockchain development using Hyperledger would be this.

There are a few other technologies too, like IOTA, Lisk, Interledger but they can be handled later on a need to know basis.

My advice would be to stay away from generic explanations about Blockchain and start with one of these technologies and dive into development. Not that those explanations aren’t good, but they don’t serve a lot of purposes when it comes to Blockchain development. The only way to really learn Blockchain development is getting your hands dirty.

Sort:  

Coins mentioned in post:

CoinPrice (USD)📈 24h📈 7d
BTCBitcoin6712.435$-0.22%3.25%
ETHEthereum239.690$-0.66%10.11%
LSKLisk3.469$0.86%2.21%
MIOTAIOTA0.607$0.51%6.74%