go语言与区块链工程师(黑马先锋学院)
第一阶段:Go语言基础
Go语言介绍:发展历程,语言优势,使用场景。
开发环境搭建:Linux 、Windows开发环境搭建;
HelloWorld: Go实现Hello World ,初步体验Go语言;
编程概念介绍:变量、常量、变量声明、变量赋值、变量命名规则;
基本数据类型:整数\浮点数\复数\布尔值\字符串,类型转换;
常见运算符:算数运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、其他运算符;
流程控制语句:条件语句、循环语句、跳转语句;
函数:函数概念、声明、实现、参数、返回值、调用、变量作用域;
复合数据类型:指针类型、数组类型、结构体类型、Map类型、切片类型、结构体类型、接口类型;
文件操作:新建文件、读文件、写文件、删除文件等;
错误与异常处理机制:error接口、defer延迟语句、panic-recover运行时异常处理机制。
项目练习:贪吃蛇游戏。
第二阶段:Go语言服务器开发
1. 服务器开发基础概念:Web应用的诞生、服务器、客户端、HTTP协议简介、HTTP请求、HTTP响应、URI;
2. 一个简单的Go web服务器;
3. 前端开发:html、css、JavaScript、jQuery、ajax;
4. 服务器开发:请求处理、响应;
5. 数据存储:文件操作,关系型数据库mysql,no-sql缓存型数据库-redis;
6. Go web服务器框架:beego框架;
7. 基于REST的Web服务器电商项目;
8. 并发编程:进程、线程、goroutine、channel、并行与并发区别;
9. Socket编程:网络七层模型,tcp/ip协议,socket客户端编程、socket服务端编程;
10. 高并发项目:高并发网络聊天室;
11. Go应用部署到服务器
12. Go应用部署到Docker:什么是Docker、安装Docker、Docker的理念与组件、Docker化一个Go Web应用、将Docker容器推送至互联网、Docker优势。
第三阶段:区块链基础、以太坊智能合约
1. 区块链概念:区块链思想的诞生、核心技术概览、典型应用场景;
2. 密码学基础:Hash算法、加解密算法、消息认证码、数字签名、数字证书、PKI体系;
3. 分布式系统核心问题:一致性问题、共识算法、CAP原理、ACID原则、拜占庭问题与算法、Paxos算法;
4. 比特币原理:交易、挖矿、共识机制、闪电网络、 分叉、区块;
5. 比特币api介绍以及使用;
6. 以太坊工作原理:交易、共识、区块、以太坊虚拟机、gas、钱包;
7. 编写智能合约:Solidity语言概述、基础数据类型、控制结构、创建合约、异常、外部函数调用、库;
8. 部署智能合约:合约部署、合约调用;
9. 使用web3.js:导入web3.js,连接到节点、API结构、发送以太币、处理合约、检索和监听合约事件;
10. Truffle使用:安装truffle、初始化truffle、编译合约、配置文件、部署合约、单元测试;
11. Truffle-contract使用:安装、导入、api介绍;
12. 以太坊项目:投注App;
第四阶段:Hyperledger Fabric框架
1. 超级账本:项目简介、社区组织结构、顶级项目介绍;
2. 部署开发环境:环境配置、获取代码、编译安装各组件;
3. 使用Docker镜像:安装Docker服务、安装docker-compose、获取Docker镜像、镜像Dockerfile;
4. 启动Fabric网络:网络拓扑、准备相关配置文件、启动Orderer节点、启动peer节点、操作网络;
5. 使用多通道:通道操作命令、命令选项、创建通道、加入通道、列出所加入的通道、获取某区块、更新通道配置;
6. Fabric框架架构与设计:核心特性、整体架构、典型工作流程;
7. gRPC消息协议:Envelope消息结构、客户端访问Peer节点、客户端\Peer节点访问Orderer、链码容器和Peer节点之间操作、多节点之间操作;
8. 链码概念:Chaincode接口、链码结构、链码基本工作原理;
9. 链码使用:链码操作命令、命令参数、安装链码、实例化链码、调用链码、查询链码、升级链码、打包链码和签名;
10. 链码开发API:账本状态交互API、交易信息相关API、参数读取API、其他API;
11. 开发案例1:两方转账功能的实现;
12. 开发案例2:矿产权属管理;