*originally published at CSB Tech Blog
The Blockchain sector has undergone dramatic growth since the beginning of 2017. Meanwhile, the demand for programmers familiar has vastly outpaced their supply. This February, Toptal launched an On-Demand Talent Network for Blockchain Engineering, saying the demand for blockchain talent increased by over 700% since early 2017. In Q2 of 2018, Blockchain was Upwork’s fastest growing skill. That talent gap is only widening, as more positions open for blockchain developers every day. Experienced blockchain developers command sky-high salaries, leaving many wondering how to become a blockchain developer.
The aim of this guide is to serve as a thorough introduction to popular paths to begin developing with blockchain, including a curated collection of resources for each.
The Blockchain sector has undergone dramatic growth since the beginning of 2017. Meanwhile, the demand for programmers familiar has vastly outpaced their supply. This February, Toptal launched an On-Demand Talent Network for Blockchain Engineering, saying the demand for blockchain talent increased by over 700% since early 2017. In Q2 of 2018, Blockchain was Upwork’s fastest growing skill. That talent gap is only widening, as more positions open for blockchain developers every day. Experienced blockchain developers command sky-high salaries, leaving many wondering how to become a blockchain developer.
The aim of this guide is to serve as a thorough introduction to popular paths to begin developing with blockchain, including a curated collection of resources for each.
Contents:
- What is Blockchain?
- Foundations
- Core Development
- Smart Contracts and dApp Development
- Permissioned Ledgers
- Hackathons
- Developing Chat
- Conclusion
- Additional Resources
What is Blockchain?
Bitcoin pioneered the use of blockchain, creating a peer-to-peer digital payment protocol. Bitcoin is maintained by decentralized network of miners who validate transactions while competing to solve a cryptographic challenge and seal the block. Each new block that a miner produces comes with a reward in tokens, providing an incentive for maintaining the network.The success of Bitcoin inspired the creation of many other cryptocurrencies, with governments and enterprise working to recreate the benefits of blockchain in private networks, without proof-of-work mining.
Foundations
The Bitcoin whitepaper is where blockchain began, and is only 8 pages long. Next on our reading list is Andreas Antonopoulos’ Mastering Bitcoin is essential reading for everyone interested in learning about the technical operations of Bitcoin.
If you can use a programming language, this book will teach you how cryptographic currencies work, how to use them, and how to develop software that works with them. The first few chapters are also suitable as an in-depth introduction to bitcoin for noncoders—those trying to understand the inner workings of bitcoin and cryptocurrencies. Mastering BitcoinEthereum’s ConsenSys Academy recently published a free course called Blockchain Foundations and Use-Cases as an introduction to blockchain for developers and non-developers alike. It also serves as an introduction to some of the philosophy behind decentralization.
Core Development
If you want to dive deeper into Bitcoin, check out Bitcoin.org’s Developer Guide. A great resource for helping with the Bitcoin protocol on Github is: A Gentle Introduction to Bitcoin Core Development. That guide may also prove useful for participating in other blockchain Github repositories. lopp.net/bitcoin.html has the largest collection of Bitcoin resources available anywhere.Other resources for Bitcoin developing:
Build your own blockchain:
Besides Bitcoin, there are thousands of open-source blockchain initiatives to participate in. If you'd like to learn more about building a blockchain from scratch, you'll find an excellent collection of resources through the following links.- github.com/openblockchains/awesome-blockchains – README.md
- From “What is Blockchain?” to building one, in less than an hour.
- Programming the Blockchain in C#
- Building a Blockchain - The Grey Paper
- Mechanism Labs - Open Source Blockchain Research Lab
Ethereum Smart Contracts
While exploring blockchain fundamentals, the simplest entry point is to build applications on an already established blockchain. Smart contracts are one of the most important innovation made possible by blockchain. These blockchain enabled programs eliminate the need for trusted third parties to administrate programmatically verifiable conditions. Ethereum was the first blockchain designed to enable smart contracts. Its tokens are programmable, and their code is run simultaneously by every node in the network.In the most basic example, a smart contract can verify conditions for tokens to be transferred to another user, or refunded to the issuer. In short, a smart contract enables the verifiable execution of a programmable agreement. This feature allows developers to harness the capabilities of the Ethereum blockchain, without having to build and maintain their own.
Ethereum smart contracts are written in Solidity, which was specifically designed for that purpose. Although Solidity was designed for Ethereum, it is gaining support with other blockchains, as well.
Ethereum Developing Resources:
- Ethereum White Paper
- ConsenSys Academy
- Mastering Ethereum - Andreas Antonopolis
- Ethereum.org’s Starter Tutorial
- Solidity Documentation
- dappsforbeginners.wordpress.com
- Learn Solidity — The Ethereum smart contract programming language
- github.com/pirapira/awesome-ethereum-virtual-machine
- Remix – A browser based Solidity Editor
- Nethereum is the .Net integration library for Ethereum
- Securify - Security Scanner for Ethereum Smart Contracts
- ZK Labs Community Audits - for Non-ICO Projects
It won’t necessarily take a long time to learn how to create a smart contract, but becoming a good smart
contract developer requires diligence. Mistakes in smart contracts have
turned out to be quite costly. Once deployed, an Ethereum smart
contract is unalterable, making any bugs in the code permanent. Because
of the risks involved, efforts have organized around peer review and formal verification.
Permissioned Ledgers
There
are many different blockchains, cryptocurrencies, and feature-rich
platforms currently being developed. However most of them are public
blockchains that anyone may access, and all of their transactions are
broadcast to the entire network. While those features are essential in
decentralized systems, they don’t quite fit the needs of many enterprise
applications.IBM’s Introduction to Distributed Ledger serves as a general introduction to blockchain for Governments and Enterprises who wish to make use of permissioned ledgers. Hyperledger’s offers a free online course called Blockchain For Business which is a general introduction to blockchain and the Hyperledger family, including information and examples regarding its use.
The Hyperledger Project
Hyperledger
is a cross-industry open source collaborative hosted by the Linux
Foundation, co-founded with IBM. Their aim is to improve the performance
and reliability of blockchain technology so that it can be suitable for
global enterprise.
The Hyperledger Foundation hosts the following projects:
- Hyperledger Fabric is a modular, permissioned blockchain, customizable to suit each implementation. Its smart contracts are referred to as “chaincode” and can be written in Go, Javascript, and Java. Fabric was the first to graduate from incubation and has the most popular appeal.
- Hyperledger Sawtooth is also highly modular and was initially developed by Intel. It is made for both public and private networks, introducing a new consensus mechanism “Proof of elapsed time.” PoET uses a hardware-based random number generator that chooses the next block producer. Sawtooth was the second Hyperledger project to graduate from incubation.
- Hyperledger Burrow is
an instance of the Ethereum Virtual Machine made to run in permissioned
networks. Burrow is in the incubation phase of the Hyperledger project,
and makes it possible to share processes across company boundaries.
- Hyperledger Iroha is aimed at applications requiring fast synchronous transactions with small payloads. It is considered ideal for building decentralized backends of mobile applications.
- Hyperledger Indy is also in the incubation phase of the Hyperledger project, and the one I’m the most excited about. The focus of Indy is in providing the tools for decentralized self-sovereign identity management. Indy is in the incubation phase but getting close to graduation.
All of the Hyperledger projects have discussion channels available via chat.hyperledger.org.
Corda
Introduced by R3, Corda
is an enterprise blockchain platform designed specifically for
financial services. It is gaining traction in the market, and on GitHub.
There is a strong possibility of Corda becoming a preferred enterprise
solution over the coming years.
Hackathons
The role of hackathons in the blockchain revolution should not be underestimated. Competitors apply creative solutions, and collaborate to solve practical challenges and win prizes. Hackathons are a great way to learn and meet other developers from different walks of life. The Hackathon encourages efficiency and creativity in a competition against a deadline. They also foster a friendly atmosphere, a low barrier to entry, and the opportunity to work with new people solving real world problems. The following blockchain hackathon directories are a good place to start:Blockchain Developing Chat
- Blockchain Developer Club – Is a great space to discuss blockchain developing and ask questions, many of the resources in this guide came from that server.
- Crypto Devs - is a channel that's new to me, but appears to be a good place to check out.
Conclusions
The blockchain sector is rife with possibilities, especially for developers. The world is just beginning to become aware of the potential of blockchain, and there is still plenty of time to learn the trade. There is a lot to learn in this sector, and many paths to go down. There are a multitude of open source projects to participate in, smart contract platforms to build onto, along with the permissioned chains under development by Hyperledger, and R3.If you aren't immediately inspired cryptojobslist.com is one of the more popular job boards that deals explicitly with cryptocurrency related jobs, you may also want to try blockchainjobz.com to get some ideas of where you'd like to focus your efforts.
There are also a ton of additional blockchain resources in the Crypto Public Library chat server, including developing resources organized by crypto project, a hackathons channel, and much more.
Refrences
- Bitcoin White Paper
- Andreas Antonopoulos - Mastering Bitcoin
- Bitcoin.org Developer Guide
- A Gentle Introduction to Bitcoin Core Development
- teachbitcoin.github.io
- bitcointechtalk.com
- programmingwithbitcoin.com
- Awesome Blockchains - Epic Collection of Blockchain Dev Resources
- Blockchain Foundations and Use-Cases
- Ethereum Whitepaper
- ConsenSys Academy
- Ethereum's Smart Contract Starter Tutorial
- Solidity Documentation
- Solidity Resources
- Remix - A browser based Solidity Editor
- Dapps for Beginners
- Preparing a Smart Contract Code Audit
- solidified.io Solidity Peer Review
- IBM - Blockchain Developer Center
- Blockchain For Business
- hyperledger.org - Training
- Hyperledger Fabric Documentation
- https://github.com/wearetheledger/awesome-hyperledger-fabric
- Hyperledger Sawtooth Documentation
- Introducing R3 Corda™: A Distributed Ledger Designed for Financial Services
- New to Corda? Start here!
- docs.corda.net
- Corda community forum
- Corda slack
Additional Resources
- Crypto Public Library - A chat server of useful resources for everything crypto, including blockchain developing resources.
- Blockchain Developer Club - Blockchain developing chat
- From "What is Blockchain?" to building one, in less than an hour.
- Programming the Blockchain in C#
- Coinbase API
- The Legion of the Bouncy Castle - Cryptography \ Open Source Enthusiasts
- Compilation of useful documents and scientific papers about Blockchain & cryptocurrencies
- Neo Smart Contract Development
- Introduction to Neo Smart Contracts
- developers.steem.io
- SteemDevs Discord Server
No comments:
Post a Comment