Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
GO (golang): Brief Guide To Programming a Blockchain with GO
Rating: 4.5 out of 5(36 ratings)
399 students

GO (golang): Brief Guide To Programming a Blockchain with GO

A Workshop Using A Practical Example To Make Cryptocurrency Transactions Through Blockchain Technology With A Web Wallet
Created byJens Schendel
Last updated 4/2024
English

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

Course content

7 sections55 lectures6h 29m total length
  • The Obligatory About Me - Let Me Introduce myself3:03

    The lecture serves as an engaging self-introduction. With my background in programming languages like Basic, Pascal, C, C++, and GO, I bring a wealth of experience to the table. Through my exploration of Bitcoin since 2013, I like to offers insights into the foundational principles and mechanisms of cryptocurrencies.

  • The Impact of Bitcoin, Cryptocurrencies and Blockchain Technology on Society2:32

    In this lecture, you will explore the transformative impact of Bitcoin, cryptocurrencies, and blockchain technology:

    • Bitcoin enables decentralized, borderless transactions, fostering financial inclusion.

    • Other cryptocurrencies like Ethereum introduce innovations such as smart contracts, revolutionizing various sectors.

    • Blockchain serves as the decentralized ledger powering cryptocurrencies, ensuring transparency and security.

    • Its potential extends beyond finance, disrupting industries like supply chain management.

    • As students of this programming course, you're not just witnesses but architects of this digital revolution.

  • A Side Note on the Term web31:49

    "Web3" is the latest internet buzz, but it's often more marketing than substance. Blockchain, the technology behind it, remains widely misunderstood. Before diving into "web3," understand blockchain's nuances. Its potential spans beyond finance. Focus on grasping blockchain's intricacies for genuine innovation and meaningful contributions to the digital landscape.

  • Blockchain’s Effects on the Economy as Well as the Programmer HR Market3:37

    This lecture explores the impact of blockchain on the economy, particularly on the programmer HR market. It highlights the importance of understanding blockchain as a strategic advantage, citing examples like supply chain management. The increasing demand for blockchain-savvy professionals is illustrated through statistics from Glassdoor, indicating lucrative job opportunities worldwide. Additionally, it mentions the potential for higher salaries and benefits for skilled individuals. Overall, it stresses the necessity for entrepreneurs and programmers to grasp blockchain's power as the economy evolves.

  • Course Outline0:22
  • Objectives: Executing Transactions, Mining, Wallet, Verification of Transactions2:44

    What you will achieve in this course is the programming of a

    • simple web wallet and

    • a basic blockchain node

    For that you will use the GO programming language.

    The final demonstration will include

    • transferring values with a transaction from one user's wallet to a second user's wallet,

    • confirming transactions by mining through the involved nodes

    • implementation of a competitive proof of work algorithm,

    • proper creating and validating transactions,

    • storing the transactions in blocks,

    • distributing a blockchain to each node,

    • achieving consensus,

    and much more.

  • Prerequisites for This Course (An IDE, GO, Compiling Code, etc)2:29

    This lecture provides instructions and recommendations for participants of the course. It emphasizes the necessity of having Google's programming language GO installed on the computer and being familiar with compiling and executing code. Different options are suggested for setting up an Integrated Development Environment (IDE) supporting Golang, including GoLand, Visual Studio Code, or setting up one's own IDE around a preferred text editor. Additionally, you get advices having access to a text shell and possibly a GitHub account for version control.

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 with

  • Testing/unit tests/table tests

  • Extensive error handling

  • Detailed 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 with

  • Basic HTML5/CSS/DOM

  • jQuery

  • Decoding/encoding JSON

Besides trivial packages from GO’s standard library to be highlighted here are:

  • crypto/ecdsa

  • crypto/elliptic

  • crypto/rand

  • crypto/sha256

  • math/big

The project includes external dependencies:

  • btcsuite/btcutil/base58

  • x/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.

Who this course is for:

  • 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