Smart Contracts with Go

This is a free, 2-Day event for engineers who want to learn how to write smart contracts in Solidity and leverage the Go programming language to deploy, test, and interact with those contracts.

Course Description

Learn Go and Solidity concepts by building three smart contracts with increasing levels of complexity. Learn how to write smart contracts in Solidity and leverage the Go programming language to deploy, test, and interact with those contracts. The class will run a local Ethereum node in dev mode, but the class will also show how to deploy the contract to a TestNet. This class is perfect for any Go developer wanting to better understand Ethereum and how smart contracts work.

Check out the course outline in [GitHub] (https://github.com/ardanlabs/smartcontract/wiki/course-outline).

Course Features

  • Writing and deploying a simple smart contract to learn the basics.
  • Writing a more complex smart contract to learn more of the language.
  • Writing a proxy-based smart contract to learn how to handle code changes.
  • Writing a contract that can verify Ethereum digital signatures.
  • Put it all together with a production-level contract, business package, and tests.
  • Learn the cost of API design and what you need to think about when building dApps.
  • Learn idioms and code styles for the Solidity programming language.
  • Running a local version of Ethereum for development.
  • Deploying and executing smart contracts on a TestNet.

Course Curriculum

1.0 - Introduction

Introduction to the class and all the engineering that you will learn.

  • 1.1: Design Philosophy, Guidelines, What to Expect
  • 1.2: Tooling to Install
  • 1.3: Initial Code for the Project

2.0 - Smart Contract Dev Environment

An understanding of what a smart contract is and what is needed to write code.

  • 2.1: Smart Contract Fundamentals
  • 2.2: Understanding the deployment process
  • 2.3: Understanding the costs
  • 2.3: Development Environment
  • 2.4: Running the Development Environment

3.0 - Basic Smart Contract

We start with writing a basic smart contract, deploying the contract, and interacting with it using Go.

  • 3.1: Writing the Contract
  • 3.2: Building the Contract
  • 3.3: Writing the Go Deployment Program
  • 3.4: Writing a Go Program to Access the Smart Contract API

4.0 - Simplecoin Smart Contract

We write a more complex smart contract to showcase more of the Solidity language.

  • 4.1: Writing the Contract
  • 4.2: Thinking about the cost of the API design
  • 4.3: Building the Contract
  • 4.4: Writing the Go Deployment Program
  • 4.5: Writing a Go Program to Access the Smart Contract API

5.0 - Bank Smart Contract

We write a production level smart contract used in the Liar’s Dice game.

  • 5.1: Writing the Contract
  • 5.2: Thinking about the cost of the API design
  • 5.3: Building the Contract
  • 5.4: Writing the Go Deployment Program
  • 5.5: Writing a Go Program to Access the Smart Contract API

6.0 - Bank Proxy Smart Contract

We implement the proxy pattern for the bank smart contract.

  • 6.1: What is the proxy pattern
  • 6.2: Writing the Contract
  • 6.3: Thinking about the cost of the API design
  • 6.4: Building the Contract
  • 6.5: Writing the Go Deployment Program
  • 6.6: Writing a Go Program to Access the Smart Contract API

7.0 - Digital Signature Verification

We implement a smart contract that can receive a digital signature and verify it.

  • 7.1: What is a digital signature
  • 7.2: Writing the Contract
  • 7.3: Thinking about the cost of the API design
  • 7.4: Building the Contract
  • 7.5: Writing the Go Deployment Program
  • 7.6: Writing a Go Program to Access the Smart Contract API

8.0 - Book Smart Contract

We implement a production level contract with business package and tests.

  • 8.1: Writing the Contract
  • 8.2: Writing the business package
  • 8.3: Writing the business package tests

9.0 - Accessing a TestNet

  • 9.1: Using a faucet to add money to your address
  • 9.2: Accessing a TestNet using Infura
  • 9.3: Deploying, testing, and interacting

Before you come to [class] (https://github.com/ardanlabs/smartcontract#before-you-come-to-class)

The following is a set of tasks that can be done prior to showing up for class. We will also do this in class if anyone has not completed it. However, the more attendees that complete this ahead of time the more time we have to cover additional training material.

Prep Work

You will get the most out of this class if you have taken the Ultimate Go bundle of classes first.

This is a free and great class for learning concepts behind blockchains. Watch videos 1, 2, 6, and 8 for sure.

blockchain class - Patrick McCorry

Check more details in [GitHub] (https://github.com/ardanlabs/smartcontract#before-you-come-to-class)

Important: Upon completion of each session, there will be a video recording available for download. An email with instructions to access them will be sent.

About the Instructor:

Bill Kennedy is a managing partner at Ardan Labs in Miami, Florida, a group of passionate engineers, artists and business professionals focused on building and delivering reliable, secure and scalable solutions. He is also a co-author of the book Go in Action, the author of the blog GoingGo.Net, and a founding member of GoBridge which is working to increase Go adoption through diversity.