Go (Golang): Brief Guide To Programming A Blockchain With Go
Go (Golang): Brief Guide To Programming A Blockchain With Go
Published 2/2024
MP4 | Video: h264, 1920×1080 | Audio: AAC, 44.1 KHz

A Workshop Using A Practical Example To Make Cryptocurrency Transactions Through Blockchain Technology With A Web Wallet
What you’ll learn

Learn to program a basic blockchain using Google’s programming language GO

Understanding of blockchain technology in theory by coding a practical application

Understanding of the algorithm that is used for deriving nonce mining and what difficulty means

Understanding how blockchain consensus mechanisms work and how proof-of-work (PoW)concept is applied

Understanding the verification process of blockchain transactions stored in blocks
Understanding the theory behind sending/receiving cryptocurrency through the blockchain

Understanding the role of hashing and storing hashes of values in blockchain management

Making use of jQuery in a simple GO HTML template

Requirements

Basic programming skills in GO or any other high efficient programming language (C/C++/C#, Java, Rust)

Basic understanding of blockchain technology, use case of cryptocurrency as well as definition and concept of transactions
GO (min version 1.21) installed and ability to compile and execute GO code

Helpful: Integrated Developing Environment (Ide) with support of the GO programming language

Helpful: Experience with scripting /bin/bash (Linux/maOS) or Command Prompt/PowerShell (MS Windows)
Description

Overview

Section 1: Introduction to This Course and the Impact of Blockchain Technology in General

Lecture 1 The Obligatory About Me – Let Me Introduce myself

Lecture 2 The Impact of Bitcoin, Cryptocurrencies and Blockchain Technology on Society

Lecture 3 A Side Note on the Term web3

Lecture 4 Blockchain’s Effects on the Economy as Well as the Programmer HR Market

Lecture 5 Course Outline

Lecture 6 Objectives: Executing Transactions, Mining, Wallet, Verification of Transactions
Lecture 7 Prerequisites for This Course (An IDE, GO, Compiling Code, etc)

Section 2: What Is Blockchain and What Can One Do With It?

Lecture 8 What Is Blockchain and What Are the Differences to a Trivial Database

Lecture 9 The Top Use Case: Blockchain as the Platform for Processing Payment Transactions
Lecture 10 More Possible typical uses cases and types of blockchains

Lecture 11 Example of a transfer of value as a transaction on the Bitcoin Network
Lecture 12 Definitions of Terms in the Realm of Blockchain: Value, Hash, Timestamp, etc

Section 3: Build a Blockchain: The Easiest Way to Understand a Blockchain Is to Create One

Lecture 14 Create a Block! And Satoshi Said: “Let There Be Block!”

Lecture 15 How to Generate the Hash Value of a Block

Lecture 16 Create a Blockchain Struct. Give Your Blocks a Structure!

Lecture 17 Add Transactions – The Payload Data in the Blocks of the Blockchain
Lecture 18 Always Something New! What Are Proof Of Work, Mining, Difficulty and the Nonce?

Lecture 19 Where Does the Nonce Derive From? Don’t Get Upset, Count Slowly to .

Lecture 20 All About Mining in This Model (And a Side Note on Minting New Coins/Values)

Lecture 21 Determine the Total Value of anAddress. The Receiver Gets, the Sender Gives!

Section 4: Program a Wallet: This Is GO, So It Will Be an Online Wallet!

Lecture 22 Private Key, Public Key, and Elliptic Curve Digital Signature Algorithm (ECDSA)

Lecture 23 Build Just a Very Basic Wallet. A Whole Wallet Is Too Much for This Example

Lecture 24 How Do You Get From a Private and Public Key to a Blockchain Address? Watch now!

Lecture 25 Implementation of the Creation of a Genuine Blockchain Address!

Lecture 26 Signatures! Sign here, here and here. Every transaction must be duly signed!
Lecture 27 Transaction Verification. Get Out Your Loupe, Check With Mathematical Precision!
Section 5: Making Connections: Create an Online Wallet and an API to Your Blockchain Node

Lecture 29 Blockchain API – Your Goal Is Transaction Execution on the Blockchain
Lecture 30 UI Server: Create a Server Providing User Interface To Wallets

Lecture 31 . And Now Create a Simple Web Frontend for the Wallets

Lecture 32 jQuery and AJAX Come Into Play. Wire Your UI and Wallets By Exchange of JSON

Lecture 33 User Interface to Wallet: Incoming Transaction, Prepare for Processing!
Lecture 34 Interpreting JSON: Teach Your Wallet a New Trick

Lecture 35 Take the ECDSA-Related String Data and Convert It Into a Suitable Data Types

Lecture 36 Sending a Transaction Request From the Wallet Server to the Blockchain Node
Lecture 37 Implement an API on the Blockchain Node’s Side to Receive Transaction Requests
Lecture 38 Create Another API, This Time for Transaction Processing. It’s About Mining.
Lecture 39 Mining Is Transaction Processing. Heigh-Ho, Heigh-Ho, It’s off to Work We Go!
Lecture 40 Check Your Address’ Total Amount: Creating a Blockchain Node API

Lecture 41 And Now an API Letting the Wallet Server Return the Total Amount on an Address

Lecture 42 Eventually, Display the Total Amount Stored on an Address in the User Interface

Section 6: Reaching a Consensus Enables the Synchronization of Nodes Across the Network

Lecture 44 Where Is Everybody? Search for Other Blockchain Nodes on the Net

Lecture 45 Crossing Borders – Leave the Limitations of Your Local Network Behind!

Lecture 46 Automatic Registration of Blockchain Nodes. I Saw You, You’re on My List Now!

Lecture 47 Sharing Is Caring – Synchronizing Transactions Across the Known Nodes
Lecture 48 What Is This Consensus That Everyone Is Talking About and How Do You Achieve It?

Lecture 49 Don’t Trust, Verify! Let Your Node Verify a Blockchain First, Then Accept It

Lecture 50 Resolving Conflicts – Length Does Matter: The Longest-Chain Rule

Lecture 51 Create Consensus API: Open a Door for New Blocks Propagated Through Other Nodes

Lecture 52 What is 51% attack?

Section 7: Final Demo, Notes and Some Words to Say Goodbye

Lecture 53 Mission Accomplished or Ta-Daa: A Transaction as Final Demonstration
Lecture 54 Disclaimer: This is not the basis for a production system or a cryptocurrency!

Lecture 55 Words of Farewell: Keep Coding, Keep Decentralizing, Keep Shaping Your Tomorrow!

Developers interesting to learn the basics programming a blockchain/cryptocurrency from scratch,Project manager and team leaders who want to understand blockchain and the underlying principles and concepts in necessary depth,Entrepreneurs who want to gain deeper understanding of the relatively new blockchain technology,School and university students who want to familiarize themselves with the concepts and terminology surrounding blockchain and cryptocurrencies,Self-taught individuals who don’t want to learn from textbooks only but experience the creation process as well,Tinkerer who are curious and want to discover new use cases of blockchain after gaining insights from developer’s perspective