所处部份 主讲内容 技术要点 学习目标
第二部份:
区块链后端技术体系:
Go语言高并发服务器开发 1.Linux命令 1.Linux下的目录结构;2.工作日程应用命令;3.Ubuntu下的软件安装和卸载 课程设计理念:
高并发服务器开发,掌握Linux操作系统groutines协程/进程/线程管理和网络socket编程,熟练编写C/S客户机服务器通信程序,理解Go协程的调度器机制具备常见高并发服务器开发,游戏服务器开发能力。
区块链的学习知识体系,是后端编程的知识体系,以太坊,瑞波币,比特币目前主流的区块链成型项目多数都是选择Go语言和C++语言实现,所以搭建后端服务编程知识体系才是打好区块链开发的首选基石,对于今后发展至为重要。
可掌握的核心能力:
1.具备常用后台服务器开发方向基本知识和常用技能,并具备基本的开发能力;
2.掌握gouroutine、channel等go语言并发机制和高并发服务器解决方案;
3.掌握Linux平台系统编程;
4.掌握网络编程协议,实现网络间点对点通信。
可解决的现实问题:
能够实现包括服务器后台、服务器数据库的开发。
2.linux开发与调试工具 1.Go语言Linux下IDE开发工具安装与配置;2.文件描述符,虚拟地址空间;3.Linux系统IO函数;4.阻塞和非阻塞的概念
3.系统I/O操作 1.os包;2.文件属性相关函数;3.链接相关概念及函数;4.目录操作相关概念及函数
4.进程与IPC通信 1.进程相关的概念;2.进程操作相关函数;3.孤儿进程;4.僵尸进程;5.进程回收;6.进程间通信
5.线程与同步 1.互斥量;2.死锁以及解决方案;3.读写锁;4.条件变量;5.条件变量实现生产消费者模型;6.线程同步解决哲学家就餐问题;7.Sync包
6.goroutine协程与调度器 1.Goroutine协程的概念;2.Goroutine调度器机制;
3.协程的高并发编程
7.channel管道与CSP同步机制 1.CSP通讯顺序同步机制;2.channel管道及特性;
3.缓存channel与非缓存channel;4.并发的循环;5.select
8.网络协议与网路编程 1.OSI七层模型结构;2.TCP/IP 4层模型结构;3.B/S、C/S优缺点对比;4.常见网络协议格式;5.套接字;网络字节序;6.IP地址转换函数;7.编写TCP的C/S网络程序;8.UDP通信机制与模型;9.本地套接字;10.三次握手建立连接过程;11.四次握手断开连接过程;12.滑动窗口概念;13.错误处理函数封装;14.TCP状态转换;15.2MSL概念;16.端口复用方法;17.半关闭;18.socket网络编程
9.Go高并发服务器开发实战 1.socket客户端编程;2.socket服务端编程;3.案例:并发的时钟服务器;4.案例:并发的回显服务器;5.实战:高并发网络聊天室
10.Go并发的爬虫系统开发实战 1.url基本概念;
2.http协议;
3.正则表达式;
案例:并发的百度贴吧爬虫
案例:高并发内涵段子爬虫
第三部份:
去中心化前端开发与web服务器开发 1.关系型数据库-mysql 1.mysql表的约束;2.mysql中出现的中文乱码问题;3.mysql函数库连接数据库;4.mysql API访问数据库;5.使用基础类API实现mysql客户端工具;6.预处理类API访问mysql数据库;7.使用api修改mysql事务特性 课程设计理念:
去中心化Dapp的页面开发还是基于传统的Web2.0的技术,html/css/javascript是整个互联网页面的基石,学好他们打好基础非常的重要。
Beego是目前大型互联网公司主流的web服务器框架,由于Go的先天性支持高并发,所以很多大型互联网公司都在web服务框架做Go语言的转型,可以轻松实现亿万级别的高并发,更加节约企业运营成本。
可掌握的核心能力:
1、 可根据产品原型图,开发web网站的前端界面;
2、 可根据业务流程图,开发web网站的后台业务;
3、 可根据web框架设计,开发对应的数据库;
4、 缓存服务器的操作和设计;
5、 异步任务的实现。
可解决的现实问题:
1、高并发全功能的web网站开发;
2、提供数据响应速度灵活运用缓存;
3、根据实际问题设计出相应数据库表。
2.no-sql缓存型数据库-redis 1.key-value存储方式特性;2.redis的环境安装和redigo驱动安装;
3.redis中key相关操作;4.redis中string相关操作;5.redis中list相关操作;6.redis中hash相关操作;7.redis中set和sort-set相关操作
3.分布式文件系统fastDFS 1.分布式概念;2.tracker、storage、client相关配置;
3.fastDFS中go的api封装
4.前端开发 1.静态页面:html入门;css入门;css高级;css高级;
2.动态页面:JavaScript编程;DOM操作;JQuery;JQuery高级;JQuery高级;3.前端框架Vue.js
5.git 1.代码版本控制工具git的常用指令;2.git的团队开发组建;
3.git代码仓库的创建与管理
6.beego框架 1.beego的框架环境搭建:
2.controller设计:
参数配置;
路由设置;
session控制;
多种格式数据输出;
请求数据处理;
3.model设计:
ORM使用;
CRUD操作;
高级查询;
原生SQL查询
4.view设计:
模板语法指南;
模板处理
7.大项目一 项目:RESTful接口设计电商项目
第四部份:
区块链密码学安全理论与开发 1.常用密码算法 1.对称加密体系;2.非对称加密体系;3.数字签名;
4.数据机密性;5.身份鉴别;6.数据完整性;7.抗抵赖 课程设计理念:
区块链技术实际上是一种对数据安全的更加完善的和抗风险技术,所以密码学是区块链技术的必备知识,本部份课程中会包括区块链底层实现中常见的密码学和安全密码协议。
可掌握的核心能力:
1.具备常见密码学原理及安全密码安全协议知识体系;
2.具备信息安全编程开发能力;
3.为信息安全系统开发和区块链开发提供理论支持。
可解决的现实问题:
能够解决信息安全加密数据传输及认证流程,具备信息安全领域开发能力,可解决中心化体系金融开发。
2.常用密码协议 1.密码学安全协议;
2.数字证书认证(CA)中心;
3.公钥基础设施PKI系统
3.密码学开发实战 1.基于中心化的安全;2.点对点的信息安全机密性、完整性;
3.安全中心:数字证书颁发中心
第五部份:
区块链与智能合约开发 1.区块链概念(链与币、通证) 1.链、软(硬)叉、挖矿、算力、双花、51%攻击等;2.共识机制(Pow、PoS、DPoS、Pbft、Raft等);3.智能合约与去中心化;4.公有链、私有链、联盟链;5.电子钱包、数字货币、融资(IPO/ICO);6.通证的价值与流转;7.行业动态
课程设计理念:
了解区块链系统基本原理,基于Go语言能够给企业定制区块链系统。
掌握主流区块链(Bitcoin,Ethereum)相关机制与原理,理解各类主流的共识算法(PoW,PoS,DPoS),熟练掌握区块链系统Go开发语言,能基于以太坊编写智能合约,能编写和发布代币;
可掌握的核心能力:
1.掌握主流区块链(Bitcoin,Ethereum)相关机制与原理;
2.理解各类主流的共识算法(PoW,PoS,DPoS);
3.熟练掌握区块链系统Go开发语言;
4.熟悉常见的安全协议和加密算法;
5.熟悉比特币优化协议和行业标准;
6.能基于以太坊编写智能合约;
7.能编写和发布代币。
可解决的现实问题:
扎实的理论基础,快速融入各种行业企业区块链相关开发需求。
2.Go语言与区块链系统开发 1.Golang区块链公链开发-区块链架构实现;2.Golang区块链公链开发-工作量证明;3.Golang区块链公链开发-持久化;4.Golang区块链公链开发-UTXO交易结构;5.Golang区块链公链开发-交易与地址;6.Golang区块链公链开发-交易与梅克尔树;7.Golang区块链公链开发-交易与网络
3.以太坊与智能合约
1.以太坊简介与环境搭建;
a. Mist钱包
b. MetaMask钱包
c. Remix编译器
2.智能合约简介与Solidity语法详解;
a. 基础语法:整型、布尔、浮点、internal、external、storage、memory等
b. 高级语法:数组、枚举、结构、映射、元组等
c. 合约相关:合约、继承、全局函数、地址、转账、事件、修饰器等
4.以太坊源码概览与源码分析 1. 下载、编译、启动Go-etherenum;2. Go-etherenum客户端代码和Node分析;3. 以太坊RPC通信实例和原理代码分析;4. Ethereum服务和以太坊P2P协议发送广播源码分析;5. 以太坊P2P协议接收广播的处理和Fetcher源码分析;6. 以太坊核心BlockChain源码分析;7. 以太坊通过EVM执行交易过程分析;8. 以太坊Bloom过滤器实现原理及应用场景分析;
5.Node.js简介 1. ES6介绍;2. ES6变量定义;3. ES6解构赋值;4. ES6函数扩展;5. ES6class语法;6. Nodejs发展历史;7. Nodejs异步IO机制;8. Nodejs功能介绍;9. npm包下载;10.全局变量;11.path模;12.fs模块;13.fs模块reader流;14.pipe的使用;15.http模块
6.以太坊开发框架 1. 区块链搭建并实现多个节点实现数据交互;
a. 私有链搭建
b. 联盟链搭建
2. Truffle框架学习;
a. 部署在不同的环境中(develop环境、Ganache、私有链、ropsten网络等)
b. 单元测试编写
c. 内置项目介绍
3. Web3.0.js学习;
4. Embark 框架介绍
7.IPFS 去中心化分布式文件系统 1. IPFS+react;2. 安装IPFS-api;3. IPFS服务的启动、关闭、及项目配置;4. IPFS常用数据结构指令;5. IPFS的合约部署
大项目二:以太坊DAPP开发实战 案例1:以太坊项目实战-投票系统;案例2:以太坊项目实战-发行代币;
案例3: 基于以太坊的去中心化游戏-以太猫开发实战;
项目: 基于以太坊的去中心化商品竞价系统
第六部份:
分布式微服务开发 1.虚拟化VS容器化 1.虚拟化基础知识;2.常见虚拟化种类及技术实现;
3.容器化基础知识 虚拟化 VS 容器化 课程设计理念:
区块链实际上是一种分布式的记账本,分布式的概念对于区块链开发很重要,该部份课程重要解决企业常见虚拟化部署及微服务相关分布式主流技能,Go语言作为Docker的开发语言,更是捧红了分布式的生态,所以分布式助于更加理解区块链的去区中心化。
可掌握的核心能力:
1.具备市场主流大数据分布式技术;
2.具备go语言高并发后台开发能力;
3.具备docker虚拟化容器技术;
4.具备分布式微服务架构设计能力。
可解决的现实问题:
1.解决企业容器虚拟化技术;
2.解决企业从资源的利用率和可用性优化方案;
3.解决传统PaaS企业,采用Micro Service(微服务)的方式来实现他们的应用。
2.Docker与Kubernetes(k8s)实战 1.Docker快速入门;2.Docker镜像管理;3.Docker容器管理;4.Docker数据管理;5.Docker网络管理;6.Docker集群管理;7.Kubernetes设计架构;8.Kubernetes集群与部署;9.基于Docker本地运行Kubernetes
3.分布式编程理论 1. 高可用设计; 2. 负载均衡; 3. 集群
4.Go语言与微服务 1.微服务的优势;2.docker容器构建微服务;3.protobuf微服务交互协议;4.gRPC远程调度机制;5.服务发现;6.基于go-micro微服务实战
第七部份:
区块链系统框架开发 1.区块链Hyperledger Fabric联盟链框架 1.Hyperledger Fabric框架概述;2.Hyperledger Fabric框架架构设计;3.Hyperledger Fabric SDK解析;4.Hyperledger Fabric 模块组成 课程设计理念:
hyperledger是IBM公司支持,linux基金会孵化的区块链商业级开发平台。hyperledger Fabric是完全用Go语言实现的,hyperledger是可以广泛运用在私有链和联盟链上,国内有众多的大公司加入了hyperledger联盟。
可掌握的核心能力:
1.具备区块链及相关产业的工作经验;
2.具备类Hyperledger,以太坊等公开区块链项目开发能力;
3.具备智能合约及其使用场景;
4.具备掌握Bitcoin,Ethereum,HyperLedger Fabric的区块链相关机制与原理;
5.熟悉;Hyperledger Fabric Technology的各种组件(Peers、Orderer、MSP、CA ...);
6.能够使用Go语言编写智能合约链码;
7.熟悉hyperledger febric的部署。
可解决的现实问题:
1.区块链底层产品的设计、研发工作;
2.区块链应用层产品的设计、研发工作;
3.研究底区块链底层协议及实现,参与优化重构。
市场价值:
熟练学习和掌握后,可满足企业开发的初中级、甚至高级需求,根据市场反馈数据看,薪资普遍在 15000-30000元 /月。
2.Go语言智能合约的开发与部署 1.实现智能合约接口;2.智能合约的依赖关系;3.智能合约的数据格式;
4.智能合约的接口解析
3.Hyperledger Fabric + Go/Node.js API 1.Fabric Go/Node.js 开发实战;2.背书策略解析;3.Ledger设计;
4.Channel安装部署与开发;5.转账交易;6.挂单交易;7.Escrow与 Payment Channel 交易
4. 华为BCS区块链平台开发实战 1.华为云平台区块链服务简介;2.云平台区块链服务搭建;
3.链代码管理;4.链代码编写;5.个人认证链代码;6.项目区块链服务系统搭建;7.交易信息上链
5.EOS开发实战 1.EOS介绍与白皮书解读;2.DApp要求与DPOS共识算法;3.账户与并行执行;4.Token模型与资源使用;5.基于EOS的智能合约开发
6.大项目三: 6.微服务分布式租房去中⼼心化系统
第八部份:
Golang面试强化与脚本编程 1.Go与数据结构 1.Go语言与队列;2.Go语言与链表;3.Go语言与堆栈;3.Go语言与二叉树 课程设计理念:
区块链的技能要求工程师掌握常见的数据结构与算法,为了更好通过笔试及面试,添加了Go的相关区块链算法的面试强化部份
可掌握的核心能力:
1、Unix/Linux下Shell编程开发;
2、掌握Shell的函数语法和工具制作;
3、掌握Linux常用Shell指令和问题定位方法;
面试强化训练;
4、掌握项目发布的流程规范;
5、掌握常用数据结构与算法;
6、了解项目生命周期及项目常见开发模式。
可解决的现实问题:
1、区块链相关算法;
2、Go语言常见面试算法;
3、项目生命周期理解;
复习和巩固所学知识,进行专题面试强化。
2.Go与常用算法 1.冒泡排序;2.选择排序;3.快速排序;4.二分查找;5.归并排序;6.堆排序
3.UnixShell脚本高级编程 1.高级指令引入;2.Shell函数;3.Shell特殊用法;4.Shell案例实战 |