《《Go语言Hyperledger区块链开发实战》教学大纲.docx》由会员分享,可在线阅读,更多相关《《Go语言Hyperledger区块链开发实战》教学大纲.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Go语言区块链开发实战教学大纲第一部分:使用说明一、课程性质与特点本课程属于专业选修课(考查课)。主要讲解使用Go语言区块链开发基于Hyperledger Fabric区块链应用的相关技术。该课程是一门实践性很强的课程,需要大量的上机实验加强 对课程的理解。二、在专业教学计划中的地位和作用区块链平台智能合约应用程序开发技术是一门非常必要的专业选修课,而Hyperledger Fabric是知名的基于智能合约的企业级区块链平台。Go是近年来非常流行的新兴编程语言, 它不仅是以太坊客户端和Hyperledger Fabric区块链平台的开发语言,而且广泛应用于区块 链应用的开发。本课程是计算机与信
2、息技术课程体系中区块链应用开发类模块中的核心课程 之一。通过对Hyperledger Fabric区块链平台、Go语言和智能合约开发技术的学习,使学生 了解区块链平台的架构、区块链的工作原理、智能合约的基本概念,掌握Go语言的基本语法, 熟悉智能合约应用程序的开发方法,为日后参与区块链应用程序开发项目奠定良好的技术储 备,通过参与本课程的上机实验也会积累区块链应用程序和Web应用的开发经验。三、教学目的通过该课程的学习,学生应了解Hyperledger Fabric区块链平台的工作原理、以及G。语言编 程基础、掌握Fabric区块链的安全机制,了解Fabric网络节点与通道的管理、了解Hype
3、rledger Fabric区块链的数据存储与数据分发机制,掌握使用Go语言开发Fabric智能合约和客户端 应用的方法,最终能够独立参与Hyperledger Fabric智能合约DApp的开发。四、先修课程Web前端开发技术五、学时与学分本课程总计74学时(讲授:48学时,实验:28学时),2.5学分,每周4学时。六、教学方法课堂讲授,多媒体演示,上机实践。七、考核方式及成绩评定考核方式:考查,主要采用平时成绩+期末考试结合方式考核。成绩评定:平时成绩占50%,期末考试占50%。八、教材及主要参考书目(一)教材实验课程教学大纲课程名称Go语言区块链开发实战一、课程的目的、任务课程所属实验室
4、信息技术实验室开课学期第三学期实验总学时48学分适用专业计算机科学与技术课程负责人通过上机实践,加深对课程内容的理解,理论联系实际。使学生全面、系统地掌握使用 Go语言开发基于Hyperledger Fabric区块链智能合约应用的方法,提高学生区块链应用程 序开发能力和架构搭建能力。二、主要设备微型计算机软、硬件系统。三、课程的教学要求通过上机实践,加深学生对Go语言开发技术和Hyperledger Fabric区块链管理技术的 理解,增强学生开发能力、实践操作的基本能力和综合能力,提高调试程序的水平。要求可 以独立搭建Hyperledger Fabric区块链,所设计智能合约能应用可以正常
5、与智能合约进行 交互,并提供程序代码及运行结果备检。四、教学方法、教学形式、教学手段的特色教学方法和教学形式主要采用操作演示、上机实验和综合性实验设计等。课堂讲授和 学生实践有机结合。五、教学内容序号实验项目名称学时实验 类型每组 人数实验 要求备注1搭建Fabric区块链环境2设计1必做2安装和使用Fabric CA2设计1必做3为组织生成证书1设计1必做4Fabric测试网络脚本解析5设计1必做5启用CouchDB作为状态数据库1设计1必做6在生产环境中部署Fabric网络的各组件4设计1必做7Go语言编程基础8设计1必做8智能合约的测试2设计1必做9交易编程1设计1必做10微服务架构的消
6、息机制4设计1必做11在开发模式下运行链码2设计1必做12私有数据编程1设计1必做13安装 Fabric SDK Go1设计1必做14通过网关调用链码1设计1必做15大作业:基于Fabric网络的商业票据实例 开发4设计1必做六、考核方式与评价结构比例根据上机实验完成结果及实验报告进行实验成绩评定,平时实验成绩占50%,期末 考试成绩占50%o七、使用教材(讲义、指导书)或参考书 八、实验教学大纲说明Go语言Hyperledger区块链开发实战ISBN: 978-7-115-60041-7出版社:人民邮电出版社(二)参考资料(1) Hyperledger Fabric 官方网站。第二部分:课程
7、内容第一章区块链技术基础一、教学目的与要求学生应了解分布式系统的概念,区块链技术的总体架构,掌握加密算法的分类和工作原 理,掌握经典区块链平台和区块链编程语言的基本情况。二、教学方法课堂讲授。三、教学重点与难点分布式系统的概念、区块链的架构设计、加密算法、区块链技术的发展历程、智能合约、共 识算法和比特币的挖矿四、教学时数:2学时五、主要教学内容第一节区块链的工作原理及底层技术一、分布式系统的概念二、区块链技术的总体架构三、加密算法四、区块链的分类第二节经典的区块链平台一、区块链技术的发展阶段二、比特币三、以太坊四、Hyperledger 项目五、区块链开发语言第二章Fabric区块链的体系结
8、构一、教学目的与要求了解Fabric网络的主要组件,掌握Fabric区块链平台的体系结构,了解排序服务与交 易的流程,了解搭建示例网络的过程。二、教学方法课堂讲授、上机实践。三、教学重点与难点Fabric网络的主要组件、Fabric区块链平台的体系结构、排序服务与交易的流程。四、教学时数:2学时五、主要教学内容第一节Fabric网络模型一、Fabric网络的主要组件二、Fabric区块链平台的体系结构三、排序服务与交易的流程第二节搭建示例网络的过程一、示例网络的拓扑二、创建网络三、证书颁发机构(CA)四、添加网络管理员五、创建一个联盟六、为联盟创建通道七、Peer节点和账本八、客户端应用和智能
9、合约第三章搭建Fabric区块链环境一、教学目的与要求要求掌握安装VitualBox虚拟机的方法;掌握安装CentOS的方法;掌握安装和使用 Docker的方法;掌握安装Fabric区块链的方法;掌握Fabric区块链管理工具和配置文件的 基本情况,掌握使用Fabric测试网络的方法。二、教学方法课堂讲授、上机实践。三、教学重点与难点安装CentOS,安装和使用Docker,安装Fabric区块链,使用Fabric测试网络。四、教学时数:4学时五、主要教学内容第一节搭建基础环境一、安装VitualBox虚拟机二、安装 CentOS三、安装和使用Docker第二节安装Fabric区块链一、安装和
10、运行Fabric区块链所需要的环境二、安装G。语言环境三、安装Git四、安装 Docker Compose五、安装Fabric区块链第三节管理工具和配置文件一、Fabric区块链的管理工具二、Fabric区块链的常用配置文件第四节Fabric测试网络一、测试网络的特点二、启动和关闭测试网络结构体三、创建通道第四章Fabric区块链的安全机制一、教学目的与要求要求掌握许可链合身份标识的概念、了解安全机制的重要意义。了解Fabric CA的工作 原理,掌握安装Fabric CA,以及使用Fabric CA Server和Fabric CA Client的方法。了解安全策略的概念和定义策略规则的方法
11、。了解MSP的作用和配置方法。掌握为组织生成证书的方法。二、教学方法课堂讲授、上机实践。三、教学重点与难点赋值语句、分支语句和循环语句。四、教学时数:4学时五、主要教学内容第一节背景知识一、许可链的概念二、安全机制的重要意义三、身份标识四、身份混合器Idemix第二节 Fabric CA一、Fabric CA的工作原理二、安装 Fabric CA三、初始化和启动Fabric CA Server四、设置Fabric CA服务器的配置信息五、建立Fabric CA Server集群六、Fabric CA Client第三节安全策略一、什么是策略二、定义策略规则第四节 成员服务提供者(MSP)一、M
12、SP的作用二、MSP 域三、MSP的目录结构四、配置MSP第五节组织管理一、组织在MSP中扮演的角色二、为组织生成证书第五章节点与通道管理一、教学目的与要求要求掌握peer命令的使用方法,了解通道的分类,了解通道配置和通道配置交易的存 储结构,掌握通道配置交易的过程,了解Fabric区块链的共识算法,掌握使用osnadmin channel命令对排序节点上的通道进行管理的方法,了解配置排序节点的方法,掌握客户端 命令行工具CLI的使用方法。通过阅读Fabric测试网络脚本的代码,了解管理Fabric区块链的方法二、教学方法课堂讲授、上机实践。三、教学重点与难点peer命令的使用方法,解通道的分
13、类,Fabric区块链的共识算法,客户端命令行工具CLI。 四、教学时数:8学时五、主要教学内容第一节Peer节点管理一、配置文件core, yaml二、peer命令第二节通道管理一、通道的分类二、通道配置三、通道配置交易四、在peer节点上执行通道操作命令五、conf igtxgen IA 第三节排序节点管理一、Fabric区块链的共识算法二、排序节点上的通道管理三、配置排序节点第四节客户端命令行工具CLI一、配置客户端二、通过CLI工具访问Fabric区块链网络第五节Fabric测试网络脚本解析一、启动测试网络二、创建通道三、向通道中添加组织四、更新通道配置五、将组织0rg3的Peer节点
14、加入到网络中第六章数据存储与数据分发一、教学目的与要求掌握Fabric区块链的数据存储结构。掌握Fabric区块链区块数据的存储。掌握启用CouchDB作为状态数据库。掌握私有数据集的概念。掌握Fabric区块链的数据分发机制。二、教学方法课堂讲授、上机实践。三、教学重点与难点Fabric区块链的数据存储结构、私有数据集的概念、私有数据集的概念、Fabric区块 链的数据分发机制。四、教学时数:6学时五、主要教学内容第一节数据存储一、数据存储结构二、区块数据的存储三、交易数据的存储和查询四、状态数据库五、启用CouchDB作为状态数据库六、私有数据管理第二节数据分发一、Gossip 协议二、领
15、导节点和锚节点在数据分发过程中的作用三、内部端点和外部端点第七章部署Fabric区块链生产网络一、教学目的与要求掌握部署Fabric生产环境的步骤,了解在生产环境中部署Fabric网络的各组件的方法。 二、教学方法课堂讲授、上机实践。三、教学重点与难点部署Fabric生产环境的步骤、在生产环境中部署Fabric网络的各组件、在单机上搭建 Fabric区块链集群。四、教学时数:6学时五、主要教学内容第一节从学习到实践的第一步一、从测试环境过渡到生产环境二、部署Fabric生产环境的步骤三、设计生产环境的结构和配置第二节 在生产环境中部署Fabric网络的各组件一、创建资源集群二、搭建CA三、使用
16、CA创建身份和MSP四、部署Peer节点五、部署排序节点第三节在单机上搭建Fabric区块链集群一、本节实例的网络拓扑二、准备基础环境三、搭建Fabric区块链节点集群四、编写Docker Compose配置文件五、启动Docker容器六、配置Fabric网络第八章Go语言编程基础一、教学目的与要求学习G。语言编程基础,掌握集合、数组和切片编程、指针和接口编程、通道编程、JSON 处理编程、函数编程的方法。二、教学方法课堂讲授、上机实践。三、教学重点与难点数组和切片编程、指针和接口编程、通道编程、JSON处理编程、函数编程。四、教学时数:6学时五、主要教学内容第一节Go语言概述第二节Go的常量
17、、变量和数据类型一、常量二、变量三、数据类型概述第三节常用语句一、赋值语句二、条件分支语句三、循环语句第四节集合、数组和切片一、集合(Map)二、接口三、切片第五节指针和接口一、指针二、接口第六节通道编程一、Go语言的并发编程二、Go语言的通道编程第七节JSON处理一、JSON简介二、Go语言JSON处理编程第八节函数编程一、定义和使用函数二、在函数中传递参数三、在函数中返回多个值四、结构体和枚举类型的函数第九章智能合约开发一、教学目的与要求了解智能合约的基本概念,学习获智能合约编程基础。掌握链码编程与智能合约的 测试。掌握交易编程的方法。掌握在开发模式下运行链码的方法。掌握私有数据编程的方法
18、。 二、教学方法课堂讲授、上机实践。三、教学重点与难点获智能合约编程基础,链码编程、智能合约的测试、在开发模式下运行链码、私有数据编程四、教学时数:6学时五、主要教学内容第一节Fabric智能合约概述一、智能合约的基本概念二、链码的工作流程三、学习Go语言开发Fabric智能合约的前提条件 四、智能合约编程基础第二节 通过Infura节点集群连接以太坊网络一、导入 contractapi 包二、定义与账本交换数据的结构体三、智能合约函数编程第三节 链码编程与智能合约的测试一、在链码中使用智能合约二、在测试网络中部署链码三、在测试网络中调用链码第四节交易编程一、交易处理函数的类型二、定义交易处理
19、函数三、利用交易处理函数优化智能合约的代码四、处理未知函数调用第五节在开发模式下运行链码一、搭建环境二、启动排序节点三、在开发模式下启动Peer节点四、创建通道五、在开发模式下构建链码六、启动链码七、批准和写入链码定义八、调用链码第六节私有数据编程一、私有数据集的定义二、在链码中读写私有数据三、私有数据编程示例程序第十章 客户端应用开发一、教学目的与要求学习Fabric SDK Go编程。掌握gateway开发模型的工作原理和开发方法。二、教学方法课堂讲授、上机实践。三、教学重点与难点安装Fabric SDK Go、gateway开发模型的连接配置文件、通过网关调用链码。 四、教学时数:4学时五、主要教学内容第一节Fabric区块链客户端应用开发概述一、Fabric SDK Go 编程概述二、安装 Fabric SDK Go第二节Fabric SDK Go的配置和依赖一、配置 Fabric SDK Go二、管理Fabric SDK Go项目的依赖第三节 使用Fabric SDK Go开发客户端应用一、Fabric SDK Go 的开发包二、创建fabsdk实例三、通道客户端编程四、账本客户端编程五、资源客户端编程六、MSP客户端编程第四节gateway开发模型一、概述二、连接配置文件三、通过网关调用链码