Professional Blockchain
Course Description Overview
This is an intermediate-level course on distributed systems, the foundations of blockchain technology, elements, and blockchain tiers to improve your understanding of the technology. Serving as a comprehensive guide to professional blockchain, this course introduces you to blockchain types such as distributed ledger technology and public and private blockchains. As you progress, you'll discover what consensus is, how to reach it, and its various mechanisms. You'll also study CAP theorem and its applications.
The course will then cover decentralization, its impact, relationship with blockchain, and implementation. After this, concepts like symmetric cryptography, security services, cryptographic primitives, and stream ciphers will be covered in depth. Lessons in using OpenSSL will follow, where you can experiment with symmetric cryptography and asymmetric cryptography.
A highlight of this edition is the introduction to bitcoins and altcoins with hands-on exercises on how to install the Bitcoin client and interact with the blockchain Bitcoin. You'll also explore smart contracts, Ethereum, solidity language, and frameworks such as Ganache, TestRPC, and Truffle for smart contract development.
By the end of this course, you'll be an expert in the making, learning about issues delaying the maturity of blockchain technology and what lies ahead in the future.
This course will provide you with knowledge of the following:
- Understand decentralization and its relationship with blockchain
- Use cryptography to provide security services
- Describe the inner workings of Bitcoin and alternative cryptocurrency
- Implement smart contracts
- Grasp how Ethereum blockchain works
- Develop decentralized applications using Solidity and other frameworks
- Examine applications of the blockchain technology beyond currencies
- Implement blockchain solutions including Hyperledger and Corda
- Explore the blockchain revolution, research topics and the future scope of blockchain technology
You'll also need the following software installed in advance:
- OS: Windows 7 SP1 64 bit, Windows 8.1 64 bit Windows 10 64 bit, macOS 10.13.2, or Linux Ubuntu 16.04.1 LTS (Xenial)
- Browser: Google Chrome, latest version
- OpenSSL 1.0.2g 1 Mar 2016 command-line tool
- Remix IDE available at https://remix.etherum.org
- Ethereum Byzantium, Geth client available from https://www.ethereum.org
- Node.js V 8.9.3
- NPM V5.5.1
- Truffle from http://truffleframework.com
- Ganache from http://truffleframework.com/ganache/
For the optimal student experience, we recommend the following hardware configuration:
- Any entry-level PC/Mac with Windows, Linux or macOS is sufficient.
- Processor: Intel Core i5 or equivalent.
- Memory: 4 GB RAM.
- Storage: 35 GB available space.
Day One
Lesson One
Lesson one will cover the distributed system, the foundation of blockchain technology, elements, and tiers of blockchain technology.
- Distributed systems
- History of blockchain and Bitcoin - covering electronic cash, Merkle trees
- Definition of blockchain
- Elements of a generic blockchain
- Tiers of Blockchain technology
Lesson Two
More technical details of Blockchain technology
- Types of blockchain, distributed Ledger technology, (DLTs), public blockchains, private blockchains.
- Consensus, what is consensus, how to reach consensus.
- Consensus mechanisms used in blockchains.
- CAP Theorem and blockchain
Lesson Three
Understand the concept of decentralization, its impact and its relationship with blockchain technology. Its implementation using Blockchain technology will also be discussed.
- Decentralization
- Methods used to decentralize existing systems
- Different types of networks (centralized, decentralized, distributed)
- Exercises to show that how a system can decentralize e.g. decentralization of a payment system.
- Blockchain and full ecosystem decentralization, computing, storage, communication decentralization.
- DAOs, DAPPs, DOs, DASs
- Platforms for decentralization
Day Two
Lesson One
Symmetric cryptography and practical exercises to complement the theoretical material.
- What is symmetric cryptography
- Security services
- Cryptographic primitives, stream ciphers, block ciphers, DES, AES
- Using OpenSSL to experiment with symmetric cryptography
Lesson Two
Asymmetric (Public key cryptography) cryptography and practical exercises to complement the theoretical material.
- What is public key cryptography
- RSA
- Elliptic curve cryptography
- Digital signatures
- Hash functions
- Using OpenSSL to experiment with public key cryptography and hash functions.
Day Three
Introduce Bitcoin and altcoins and relevant concepts in detail with hands-on exercises on how to install Bitcoin client and interact with Bitcoin blockchain.
At the end of this day, students should be able to:
- Define Bitcoin
- Describe cryptocurrencies
- Explain altcoins
- Understand ICOs
- Install Bitcoin client and perform interactions with the Bitcoin blockchain
Lesson One
An introduction to Bitcoin, how it works, why it works and technical details about the blockchain structure.
- Bitcoin definition
- Bitcoin Bird's eye view, how transactions work
- Digital keys and addresses
- Transactions, a technical view
- Blockchain structure in Bitcoin
- Mining
Lesson Two
An introduction to the blockchain network, its components, nodes, Wallets, and clients. Also, some introduction to programming APIs and client installation and usage will also be presented.
- Bitcoin Network
- Bitcoin Wallets, types and usage
- Bitcoin clients and APIs
Lesson Three
An introduction to Alternative coins, why they exist, also discuss some examples of Altcoins and differences with Bitcoin. Introduction to Initial coin offering (ICO), and tokens standards will be provided.
- Alternative coins
- Some example coins, Namecoin, Litecoin, Primecoin, Zcash
- ICOs
- ERC20 and other standards for tokens
Day Four
Detailed introduction to smart contracts, Ethereum, solidity language and relevant frameworks such as Ganache, TestRPC, and truffle for smart contract development.
At the end of this day, students should be able to:
- Explain smart contracts
- Describe Ethereum
- Write smart contracts in Solidity
- Use Frameworks and tools for Ethereum development
- Build private networks using Ethereum
Lesson One
Learn what are smart contracts, how to write smart contracts and relevant Ethereum blockchain concepts.
- What are smart contracts, definitions, and background theory
- Introduction to Ethereum and discussion of all releases of Ethereum.
- Types of Ethereum networks, private, public, MainNet, Morden, kovan etc.
- How Ethereum works
- Transactions, keys, addresses, accounts, types of accounts, gas, fee, mining
Lesson Two
Further details on technical concepts related to smart contracts, Ethereum, and solidity.
- How to develop smart contracts
- Introduction to Ethereum Virtual machine
- Remix IDE
- Solidity
- Solidity code examples
- How to deploy smart contracts
Lesson Three
Deeper introduction to frameworks and development tools used for Ethereum development, along with an introduction to Web3 and how to use relevant frameworks and tools.
- Ethereum development tools and frameworks
- Practical examples of how to build, test and deploy smart contracts.
- Introduction to Web3
- Using Ganache, TestRPC, Metamask, remix IDE
Day Five
Further introduction to Ethereum programming. Introduction to alternative blockchain solutions and its convergence with other technical fields. Also, issues being faced by blockchain technology creating hurdles towards its maturity are also introduced along with an overview of existing research and future of blockchain technology.
At the end of this day, students should be able to:
- Learn Ethereum programming, development and deployment continued
- Understand Altchains (Alternative chains)
- Explore Blockchain, beyond cryptocurrencies
- Convergence of blockchain with other technologies
- List the challenges that blockchain faces such as scalability and privacy and their solutions
- Explain the current landscape and future of Blockchain technology
Lesson One
Continuation from Day four, introduction to Ethereum and relevant frameworks and tools for development. Ethereum programming in solidity and further examples.
- Ethereum programming, implementation of smart contracts using truffle framework
- Example of a simple sample contract
Lesson Two
This lesson will introduce applications of blockchain technology beyond cryptocurrencies in industries such as finance, government, and media.
- Blockchain beyond cryptocurrencies
- Convergence of blockchain with other technologies, such as IoT and Artificial Intelligence.
- IoT practical example
Lesson Three
This lesson will introduce alternative blockchain solutions in contrast to the more common Bitcoin and Ethereum. In addition, research areas and future of blockchain technology will also be presented.
- Alternative blockchains, for example, Hyperledger Fabric
- Challenges in blockchain technology
- Research areas
- Future
- Closing remarks