首页
>课程体系>理论专题

Go语言与区块链课程体系

发布日期:2020-05-19信息来源:计算中心访问次数:字号:[ ]

【课程简介】

区块链技术是21世纪的重大创新技术,它是数字化资产的分布式账本,是构建价值互联网的基石,是驱动分享经济发展的新引擎。Go语言是区块链主流编程语言,简单易学、开发速度快且并发性好。 Go语言与区块链》就业课程涵盖 go进阶编程,go web开发,区块链密码学,以太坊,分布式微服务,hyperledger等技术要点,旨在打造基础扎实、知识面广、综合能力强的区块链应用层及底层技术引领者。

【课程目标】

熟练掌握go语言,熟练掌握计算机编程思维

熟练掌握go网络编程、并发编程

掌握tcp/udp协议和 HTTP 协议

熟练掌握 HTTPCSSJavaScriptJQueryreact等前端开发技术

熟练掌握beego等后端开发框架

熟练掌握docker容器等技术

熟练掌握go版本bitcoin源码编写,具备公链开发能力

熟练掌握以太坊平台Dapp开发

熟练掌握hyperledger fabric联盟链技术

熟练掌握mysqlredis等常见数据库技术

熟练掌握常见数据结构、算法

熟练使用密码学中相关加密解密算法

熟练掌握GoMirco微服务框架

熟练掌握gRPC远程调度机制

【课程内容】

阶段一 : Go语言开发实战

知识要点

Go基础-变量与基本数据类型

初识Go语言、变量操作、基础数据类型、常量、运算符

Go基础-程序结构

分支选择结构、循环结构

Go基础-函数

函数应用、递归函数应用

Go基础-复合类型

数组、切片、排序算法、Map、结构体、指针、拓展知识--基础加强、通讯录案例实战

Go基础-面向对象

面向对象、微博案例实战

Go基础-文件、字符、异常、工程管理

异常处理、文本文件处理、字符串处理、工程管理

go基础-项目

【项目】--文件压缩与解压缩

【阶段目标】 Go语言基础的学习,培养编程思维和动手能力、培养面向过程及编程思想,为之后的深入学习打下坚实基础。

阶段二 : Go语言高并发服务器开发

知识要点

Golang基本语法强化及拓展

指针强化、切片强化、map强化、结构体强化、Go语言与文件IO操作

并发编程与协程Groutine

并发编程理论、Groutine编程详解

协程间通信与Channel

channel基础用法、channel进阶用法

并发编程与同步机制

综合案例:生产者消费者模型、多路监听Select、同步与锁、条件变量

网络编程详解

网络编程理论、socket网络编程服务器开发、TCP/IP协议详解、UDP协议详解

项目:网络编程案例

综合案例:文件传输服务器案例

项目:网络聊天室

网络聊天室分析与实现、聊天室服务器拓展功能

HTTP服务器开发

GolangHttp、综合案例:HTTP服务器实现

http爬虫开发

百度贴吧、Golang与正则表达式、综合案例:豆瓣爬虫开发、综合案例:内涵段子爬虫开发、综合案例:斗鱼图片爬虫开发

zinx服务器框架

初始zinxzinx框架基础路由模块与全局消息配置、zinx框架消息封装、Zinx的多路由模式、Zinx的读写分离模型、Zinx的消息队列及多任务机制、Zinx的链接管理以及属性设置

zinx服务器应用-MMO游戏

MMO游戏介绍以及AOI算法、数据传输协议Protobuf、服务构建、游戏玩家上线、世界聊天、AOI位置广播、位置信息同步

【阶段目标】 具备企业标准用人规范,具有游戏服务器开发能力

阶段三 : 去中心化前端开发与web服务器开发

知识要点

Linux操作系统

环境安装与介绍、Linux文件基本操作、文件拷贝压缩权限操作、进程与网络配置、文本查找与过滤、编辑器Vim、远程访问

数据库操作

数据库基础、数据库操作、表操作、数据操作、数据库扩展

列属性与数据完整性

数据类型、列属性、数据完整性、客户端介绍

数据库设计

数据库设计

数据查询

单表查询、多表查询

数据库进阶

视图、事务、索引、 内置函数、 预处理、存储过程

GO操作MySQL

GO操作MySQL

html+css

html初识、css初识、html提高、css提高、photoshop测量与取色

javascript

javascript初识、javascript函数、javascript数组、javascript定时器、javascript提升

jquery

jquery选择器、jquery样式操作、表单、事件、dom操作、综合案例:jquery小案例

ajax

ajax初识、es6ajax提高

react

react初识、react事件与属性操作、综合案例:react案例

beego框架

beego框架介绍、beego路由设置、beego数据库操作、ORM创建操作及登录、综合案例(文章管理系统): 登录注册、文章列表分页展示实现、综合案例(文章管理系统):文章创建、文章图片上传、文章更新实现、综合案例(文章管理系统):记录用户名、用户退出、文章详情实现以及优化

git版本控制器

git介绍、git创建、git存储过程、git文件操作、git分支操作、31git操作

redis数据库

redis介绍与安装、redis数据操作、GO语言操作数据库、编解码、服务器搭建

项目:beego天天生鲜项目

项目需求分析、架构设计、项目数据库设计与项目环境搭建、登录注册、用户中心管理、分布式文件系统FastDFS、商品信息展示、浏览记录处理、分页控制实现、商品排序搜索 、购物车详情页js实现、添加购物车数据、获取购物车条目数、订单页面显示、并发处理、支付

【阶段目标】 可担任web全栈工程师,独立开发前端和后端业务

阶段四 区块链密码学安全理论与开发

知识要点

密码学

密码学概述

对称加密

编码解码、desaes、按位异域、分组模式

非对称加密

非对称加密概念、公钥、私钥生成、rsa加密算法应用

单向散列函数

单向散列函数概述、哈希算法、单向散列函数应用

从消息认证到数字签名

消息认证介绍、消息认证应用、数字签名介绍、rsa实现数字签名、椭圆曲线加密算法

证书

证书的介绍、证书ca认证

SSL/TLS

sslhttps

【阶段目标】 具备信息安全开发能力和区块链安全开发能力,为区块链搭建知识体系做铺垫。

阶段五 : 区块链与智能合约开发

知识要点

项目:Go语言与区块链开发

比特币历史、比特币详解、比特币依赖技术、比特币结构、核心Bitcoin-CoreBolt数据库、gob编码、区块迭代器、比特币交易、 解锁脚本的作用、UTXO流程分析、coinbaseTX实现、output/input原理、UTXO实现原理、钱包原理、 gob.Register原理、Wallets结构、FindNeedUTXO改写原理、GetBalance原理、IsValidAddress原理、Sign签名实现、VerifyTransaction实现及验证

区块链与以太坊

区块链概念入门、共识机制、智能合约简介、分叉、以太坊概述、Metemask、以太坊交互演示、 gas_gasprice_gaslimit概念介绍、比特币与以太坊、remix、合约编译及部署

solidity

solidity基础语法、solidity进阶语法、综合案例:代币介绍

node.js

node.js

智能合约

综合案例:编译及部署合约

项目:彩票项目

彩票项目演示与分析、彩票合约编写、彩票项目实现与部署

项目:金融项目

金融项目演示与介绍、金融项目合约编写、项目实现与部署

truffle框架

truffle入门

web3.js框架

web操作账户、私有链搭建

ipfs使用

ipfs基础、ipfs上传图片

项目:ebay(见拓展资料)

竞拍演示与分析、竞拍合约编写、项目实现与部署

【阶段目标】 熟练学习和掌握后,可满足企业区块链应用层开发的初中级需求

阶段六 : 分布式微服务开发

知识要点

docker基础

了解docker

docker核心

镜像操作、容器操作、数据卷操作、网络操作

Docker进阶

dockerfile基本操作、dockerfile创建go环境搭建、Docker-compose基本使用

微服务框架

微服务概述、protobufgrpc环境搭建、consul集群搭建、micro框架

项目:微服务租房项目

项目数据库设计、地区请求服务、图片验证码服务、短信服务、注册服务与session服务、 登录服务、退出服务、用户信息获取服务、头像上传服务、用户信息更新服务、实名认证服务、获取房源服务、 发布房源服务、获取房源信息服务、房源搜索服务、订单服务与订单评价服务、项目部署

【阶段目标】 具备分布式微服务解决方案开发能力,具备分布式集群、微服务、区块链等综合场景解决方案能力。

阶段七 : 区块链系统框架开发

知识要点

shell

shell脚本入门

实操案例:hyperledger fabric单机多节点部署链码

fabric安装、fabric入门、cryptogenconfigtx.yaml配置、docker 综合案例:链码安装、hyperledger fabric API

实操案例:hyperledger fabric多机多节点部署链码

链码函数介绍、fabric账号管理、fabric-ca、证书、通道文件、创世块、节点配置与操作、交易测试、共识机制、链码的打包、安装

实操案例:kafka集群

kafka集群

综合案例:fabric供应链溯源

configtx配置、链代码部署、溯源原理分析

fabric应用(拓展资料)

华为云服务器搭建、华为BCS服务搭建、BCS服务SDK讲解、govendor包管理工具、业务数据上链、configtx.yaml配置、 docker配置、hyperledger fabric、自定义SDK编写

【阶段目标】 掌握企业主流联盟链框架Hyperledger Fabric与华为区块链平台应用。

阶段八 : Golang面试强化与脚本编程

知识要点

数据结构与算法

切片、链表、双向链表、循环链表、链栈、树与二叉树、排序算法、查找算法

shell脚本

shell语法-变量、逻辑表达式、shell常用命令、综合案例:shell脚本开发实战

【阶段目标】 通过本阶段复习和巩固所学知识,进行专题面试强化

【实训项目】

 

1.区块链去中心化众筹项目

通过区块链技术规避各种众筹黑幕,让你的投资资金笔笔可溯源,笔笔可追回。

 

2.华为区块链平台开发项目

本项目基于华为云区块链平台的系统搭建,采用联盟链,将公安局、房管局、征信中心纳入联盟来实现一个完整的租房项目。

 

3.租房网(GoMicro+docker/k8s

本项目是基于Docker分布式容器, GoMicro搭建服务架构、Consul作为服务发现, 其中采用gRPC/Protobuf作为微服务间通信机制, 解决大企业高并发分布式理论后端服务方案。

 

4. CMS系统

该系统可以实现让用户方便快速管理新闻、图片、评论等信息,并且该系统自适应各种终端, 而且还具有利于搜索引擎SEO优化以及营销特点,并且可以基于该CMS系统构建企业级系统、 政府电子政务系统、电子商务系统等。

 

5.电商平台(beego框架)

大型电子商务生鲜平台,包含用户中心、商品展示、购物车、订单、支付、评论、搜索等功能。

6.区块链去中心化博彩项目

满足彩民博彩需求,让彩民能够轻松简单一键购票,通过区块链技术解决彩民和博彩公司两个角色间信任问题,让博彩项目公开透明。

 

7.eBay以太坊商品竞价

基于以太坊平台编写智能合约,通过公开竞拍规则,解决竞拍过程中买卖双方恶意哄抬物价,虚假拍卖等问题。

 

8.数字代币项目

基于以太坊ERC20代币标准,通过编写智能合约发行属于自己的数字货币,通过web3接口,与前端进行交互,具有转账功能。

 

9.以太坊钱包

以太坊钱包是一款用于转账交易的钱包,钱包涵盖,私钥、助记词、KeyStore创建以太坊账户,并包含用户转账、用户提现等功能,让以太坊转账随时随地。

 

10.hyperledger fabric

供应链溯源案例

牛奶供应链溯源平台,保障消费者的权益,实现供应链上全环节追踪,通过全程透明可视化、让产品可溯源,让产品的质量安全得到保障。

 

11.Golang轻量级游戏服务器

Zinx框架开发

设计Zinx的目的是我们可以通过Zinx框架来了解基于Golang编写一个TCP服务器的整体轮廓,让更多的Golang爱好者能深入浅出的去学习和认识这个领域。