Introduction to Blockchain & Ethereum
|Date:||9th May 2018|
|Grant Aided Cost:||On request|
In this one day course, participants are introduced to the fundamentals of blockchain and cryptocurrency technologies and when to apply these approaches to existing or greenfield architectures.
Participants will be able to see the power of the approach by building and working with a simple blockchain from scratch. With this context, the course moves on to discuss the Bitcoin network and currency in detail and the design choices that it makes.
The second half of the course introduces the Ethereum network and its notions of smart contracts, gas and related tech, including the Ethereum Virtual Machine (EVM). We discuss distributed apps and look at some recent high-profile case studies.
The Solidity programming language is introduced from scratch as well as a typical development environment for new smart contracts. Finally, we show how to integrate Ethereum smart contracts with existing applications by using the Web3j library to bridge Java applications with the Ethereum network and blockchain.
Also suitable for architects or lead developers who are investigating suitability of blockchains.
Attendees must already be experienced programmers. Any knowledge of blockchains, cryptography or cryptocurrencies is a notable advantage.
You will be required to bring a laptop to attend this course. Your laptop will need to be preloaded with an IDE (ideally Java 8) and require the ability to install new software.
A: BLOCKCHAIN BOOTCAMP
1. Fundamental Concepts
- Public Key cryptography
- Hash chaining (e.g. Git)
- Cryptographic glossary
2. An introductory blockchain
- Append-only ledgers
- Proof of work and difficulty
- Specification for a simple example – FirstBlockchain
Lab: Build & implement FirstBlockchain
Lab: Try to forge entries in someone else’s implementation of FirstBlockchain
- Full nodes, mining and PoW
- Addresses, wallets & client tools
- Setting up Bitcoin Wallets
- Economics of Bitcoin
- Future Directions
1. Ethereum concepts
- Fundamentals: Ethereum, EVM, Smart Contracts & Gas
- Client tools & wallets
Lab: Setting up Ether Wallets
- How Ethereum differs from Bitcoin
- The “Why” of Ethereum
- Distributed apps and ICOs
- Case Studies
2. Solidity & Web3j
- Solidity programming
Lab: A first Ethereum smart contract
- Zeppelin contracts and ERC20
- Case studies: Pitfalls of Solidity contracts
- Introducing web3j
- Interacting with the Ethereum blockchain with Web3j
Lab: Working with contracts on the Ethereum blockchain