Tags
Language
Tags
April 2024
Su Mo Tu We Th Fr Sa
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4

Go (Golang): Brief Guide To Programming A Blockchain With Go

Posted By: ELK1nG
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, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 3.63 GB | Duration: 6h 19m

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

Embark on an exhilarating journey as you delve into the world of programming with Google's programming language GO. Discover the power of GO as you master the basics of building a blockchain application from scratch, covering a spectrum of topics that are crucial for implementing blockchain technologies.Note: If you are looking for a course, template or guide to create a full cryptocurrency by changing a few values in a copied source code, you should stay away from this course.The application example in this course is to create a blockchain web application that makes it possible to transfer units of a cryptocurrency from one user's wallet to another user's wallet by an on-chain transaction. The transactions are verified by mining using a proof of work algorithm and stored in a blockchain which is synchronized throughout a network once consensus has been reached. The idea behind the teaching concept of this course is that a deeper understanding is achieved by engineering an example under guidance and thus learn the techniques used through the concrete implementation of a running blockchain model. This course is not strictly reserved for developers, but is also aimed at people with fairly advanced programming knowledge who are interested in understanding blockchain technology.Unlock the potential of GO and elevate your programming skills as you witness the transformation of a concept into a basic functional blockchain application which can be accessed by an online wallet. Join this enriching journey and empower yourself with the knowledge to craft sophisticated, scalable, and efficient applications using Google's programming language GO.While suitable for beginners with basic programming experience, this course is designed to be a resource for little to fairly advanced developers. It's filled with step-by-step lectures, explanations, and clarifications of concepts needed to deploy blockchain technology to a real world model and to understand the underlying principles and concepts used in actual blockchain applications. The course comes with a code repository on Github and a detailed course outline as PDF, which serves as part of the course.In order to achieve the necessary compactness and to keep the focus on the core mechanisms of the blockchain and wallet, the course shows the programming in the necessary depth, but  intentionally dispenses withTesting/unit tests/table testsExtensive error handlingDetailed further implementation (e.g. persistent storage of the blockchain on hard disk)External packages (e.g. for routing, handlers, models, sessions, templates, security, middle ware)… and does NOT claim to implement a complete cryptocurrency, nor to function flawlessly in a production environment.Besides programming in GO, this course also deals withBasic HTML5/CSS/DOMjQueryDecoding/encoding JSONBesides trivial packages from GO’s standard library to be highlighted here are: crypto/ecdsacrypto/ellipticcrypto/randcrypto/sha256math/bigThe project includes external dependencies:btcsuite/btcutil/base58x/crypto/ripemd160 (deprecated/experimental, but needed)When you sign up for this course, you have lifetime access to the course. You can learn at your own pace and return to content at any time for deeper insights or to learn additional concepts when you are ready.This course also comes with a 100% money back guarantee.I think this is one of the most compact courses in English language that comprehensively explains the concepts and principles of blockchain by developing a basic blockchain application from scratch.And if for some reason the course doesn't work for you, you can get a full refund within the first 14 days*.Enroll now!You can get great value from this course and, more importantly, you'll have a great time learning one of the best programming languages ever - the GO programming language, the fastest growing programming language with the highest paid programmers in the US within the last years.GO is an open-source programming language that makes it easy to develop simple, reliable, and efficient software.GO was developed by computer science luminaries at one of the best, if not the best, software development companies ever - Google. The design and implementations are by Robert Griesemer, Rob Pike and Ken Thompson.GO is a very good choice for learning a programming language because it was developed by some of the same people who created the C programming language, Unix, and UTF-8 - some of the most influential contributions to computer science. With GO Robert Griesemer, Rob Pike, and Ken Thompson created a modern programming language that can easily run on multiple processors in parallel, works smoothly in different environments, and makes it easy for programmers to write programs with a very streamlined and user-friendly syntax.Why did Google develop a new programming language?In Google's words, "GO was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. GO is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, working with GO is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for."Learn with me the advantages in web programming of one of the best programming languages ever developed. You will get knowledge, ideas, concepts, inspiration and code examples to design software and applications yourself according to your wishes.* Check Udemy's Terms and Conditions for details.

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 13 What You Need to Get Started Besides Your Favorite Soft Drink

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 28 Start Your Web Server and See GO Flexing His Muscles!

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 43 Section Overview: Unraveling Blockchain Mystery - Decentralization Demystified!

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