
Discord 培训课程
从0到1构建Discord社群Discord是一款专为社群设计的免费网络实时通话软件与数字发行平台,主要针对游戏玩家、教育人士、朋友及商业人士,用户之间可以在软体的聊天频道通过消息、图片、视频和音频进行交流。这款软件可以在Microsoft Windows、macOS、Android、iOS、Linux和网页上运行(包括Firefox浏览器、Google Chrome与Opera电脑浏览器)。软件起源Discord 的概念由创建了手机游戏社交网络平台OpenFeint的杰森·施特朗构思得出。他在2011年将 OpenFeint 以1.04亿美元的价格卖给了GREE[21],并用这笔钱在2012年创建了游戏开发工作室 Hammer & Chisel。[22]他们的第一个游戏是于2014年发布的永恒命运,施特朗预计这款游戏将成为移动平台上的第一个多人在线战斗竞技场游戏,不过由于受欢迎程度较低他们并没有成功。然而在开发过程中,为了开发出更好的游戏,施特朗注意到他的团队在尝试玩其他热门游戏如最终幻想XIV和英雄联盟时遇到了困难,并特别强调了在网络实时通话方面存在较严重问题。一些网络实时通...

吾国教育病理
由中国著名社会学专家——郑也夫先生著于 2013 年 。此书反当时不涉病灶 、 不究病理 , 治标不治本的教育论述 。直指中国教育的病因 , 直陈其解决之道 , 言辞犀利 ,一针见血 , 穷根问底 , 论据详实 。 既呈现了对教育病理的追问 , 也体现了对当下国情的关怀 。“写作这本书的动力是愤懑 , 一个超龄愤青的双重愤懑之情 。 愤懑之一是对中国教育走 到这步田地 , 搞成这幅模样;之二是目睹管理者解答中国教育困境之弱智 。 ”这是此书前言部分的开篇 , 郑也夫先生用极其犀利的言辞来说明写此书的原因 。 这是我在市面上看到少数 , 能有如此犀利的言辞之书出版 , 估计也是现在为什么停版 , 不再印刷的原因!所以 , 我花了高于此书 3 倍的价格 ,从市场买来了别人读过的二手原著 ,看完之后大呼过瘾 , 一点也不觉得亏!本书主要分为两大篇幅 、 十四章内容 , 上半篇名为“分流” , 下半篇名为“放权” ,上下两篇各七章 。这是作者对中国教育病理提出的核心药方:一方面是从学生教育分流机制出发 ,另一方面是呼吁减少行政对教育的干预 。两大篇幅的阐述 , 遵循“寻找真问题——解释其...

web3赛道指南
Web 3.0 技术发展现状。在“认识 Web 3.0”这个模块里,我会为你阐述基于公链、账户和身份认证技术的组合,并会带你了解如何构建 Web 3.0 的新型基础设施,以此实现理解 Web 3.0 技术基础逻辑的目标。探究:Web 3.0 新玩法与新物种。在这里,你可以了解到 DeFi 是如何通过和传统金融的结合,实现进一步的扩张的;NFT 作为新型的数据确权制度,是如何打造“数字版迪士尼”的;新的去中心化应用,是如何在游戏、商业、社交等领域开创新的商业模式的;以及 DAO 是如何打造“工具 + 社群”新业态的。洞悉:Web 3.0 未来应用趋势。在区块链之外,人工智能、物联网等数据技术,是如何与 Web3.0 结合为互联网带来新的发展空间的?传统互联网公司、政府部门、金融机 构、投资机构,会如何融入 Web 3.0 实现自我升级?在“风险与机会”这个模块里,你会通过我的梳理,参透“上车”的主要路径和避免踩坑的几种逻辑。去中心化实际上是一种协调机制,去中心化也分不同程度。 要想搞清楚是什么推动了 Web 3.0 的诞生,我们要回到互联网的发展历程和现状中来。我们知道,互联网的发...
It is better to manage the army than to manage the people. And the enemy.

Discord 培训课程
从0到1构建Discord社群Discord是一款专为社群设计的免费网络实时通话软件与数字发行平台,主要针对游戏玩家、教育人士、朋友及商业人士,用户之间可以在软体的聊天频道通过消息、图片、视频和音频进行交流。这款软件可以在Microsoft Windows、macOS、Android、iOS、Linux和网页上运行(包括Firefox浏览器、Google Chrome与Opera电脑浏览器)。软件起源Discord 的概念由创建了手机游戏社交网络平台OpenFeint的杰森·施特朗构思得出。他在2011年将 OpenFeint 以1.04亿美元的价格卖给了GREE[21],并用这笔钱在2012年创建了游戏开发工作室 Hammer & Chisel。[22]他们的第一个游戏是于2014年发布的永恒命运,施特朗预计这款游戏将成为移动平台上的第一个多人在线战斗竞技场游戏,不过由于受欢迎程度较低他们并没有成功。然而在开发过程中,为了开发出更好的游戏,施特朗注意到他的团队在尝试玩其他热门游戏如最终幻想XIV和英雄联盟时遇到了困难,并特别强调了在网络实时通话方面存在较严重问题。一些网络实时通...

吾国教育病理
由中国著名社会学专家——郑也夫先生著于 2013 年 。此书反当时不涉病灶 、 不究病理 , 治标不治本的教育论述 。直指中国教育的病因 , 直陈其解决之道 , 言辞犀利 ,一针见血 , 穷根问底 , 论据详实 。 既呈现了对教育病理的追问 , 也体现了对当下国情的关怀 。“写作这本书的动力是愤懑 , 一个超龄愤青的双重愤懑之情 。 愤懑之一是对中国教育走 到这步田地 , 搞成这幅模样;之二是目睹管理者解答中国教育困境之弱智 。 ”这是此书前言部分的开篇 , 郑也夫先生用极其犀利的言辞来说明写此书的原因 。 这是我在市面上看到少数 , 能有如此犀利的言辞之书出版 , 估计也是现在为什么停版 , 不再印刷的原因!所以 , 我花了高于此书 3 倍的价格 ,从市场买来了别人读过的二手原著 ,看完之后大呼过瘾 , 一点也不觉得亏!本书主要分为两大篇幅 、 十四章内容 , 上半篇名为“分流” , 下半篇名为“放权” ,上下两篇各七章 。这是作者对中国教育病理提出的核心药方:一方面是从学生教育分流机制出发 ,另一方面是呼吁减少行政对教育的干预 。两大篇幅的阐述 , 遵循“寻找真问题——解释其...

web3赛道指南
Web 3.0 技术发展现状。在“认识 Web 3.0”这个模块里,我会为你阐述基于公链、账户和身份认证技术的组合,并会带你了解如何构建 Web 3.0 的新型基础设施,以此实现理解 Web 3.0 技术基础逻辑的目标。探究:Web 3.0 新玩法与新物种。在这里,你可以了解到 DeFi 是如何通过和传统金融的结合,实现进一步的扩张的;NFT 作为新型的数据确权制度,是如何打造“数字版迪士尼”的;新的去中心化应用,是如何在游戏、商业、社交等领域开创新的商业模式的;以及 DAO 是如何打造“工具 + 社群”新业态的。洞悉:Web 3.0 未来应用趋势。在区块链之外,人工智能、物联网等数据技术,是如何与 Web3.0 结合为互联网带来新的发展空间的?传统互联网公司、政府部门、金融机 构、投资机构,会如何融入 Web 3.0 实现自我升级?在“风险与机会”这个模块里,你会通过我的梳理,参透“上车”的主要路径和避免踩坑的几种逻辑。去中心化实际上是一种协调机制,去中心化也分不同程度。 要想搞清楚是什么推动了 Web 3.0 的诞生,我们要回到互联网的发展历程和现状中来。我们知道,互联网的发...
It is better to manage the army than to manage the people. And the enemy.
Share Dialog
Share Dialog

Subscribe to leaf

Subscribe to leaf


<100 subscribers
<100 subscribers
●了解超级账本的架构设计。
●学会搭建超级账本开发环境。
●掌握Chaincode的开发过程。
●通过实例掌握Fabric框架开发
超级账本(Hyperledger),是一个由Linux基金会在2015年12月主导发起的开源项目,目的是通过提供一个可靠稳定、性能良好的区块链框架,供企业创建自定义的分布式账本解决方案,以促进区块链技术在商业中的应用。
超级账本的架构包括4个大的模块:成员(MEMBERSHIP)、区块链(BLOCKCHAIN)、交易(TRANSACTIONS)和智能合约(CHAINCODE),其中成员模块主要提供成员服务(Membership Services),包括用户注册(Registration)、标识管理(Identity Management),以及提供可审计性Auditability)等;区块链模块和交易模块用于提供区块链相关的服务(Blockchain Services),负责提供共识管理(Consensus Manager)、分布式账本(Distributed Ledger)、P2P协议(P2P Protocol)和账本存储(Ledger Storage)等功能;智能合约服务负责提供智能合约的功能,智能合约被放置在安全的仓库(Secure Registry)中,执行时在一个安全的容器(Secure Container)中运行。
超级账本在实际的发展过程中,基本是参照上述的架构进行开发的,并且孵化出了很多区块链项目,主要包括Sawtooth(官网首页如图6-2所示)、Iroha(官网首页如图6-3所示)、Fabric(官网首页如图6-4所示)、Burrow(官网首页如图6-5所示)等。
其中,Sawtooth是用于构建、部署和运行分布式账本的模块化平台;Iroha是一个商业区块链框架,其设计简单且易于并入需要分布式账本技术的基础设施项目中;Fabric是一个开源的区块链开发框架,它提供了一个模块化的架构,其架构中包含结点、智能合约以及可配置的共识和成员服务等功能;Burrow可以看作一个支持以太坊智能合约的框架,它是根据以太坊虚拟机(EVM)规范构建的。这些基于超级账本的项目中,Fabric是最有名的,使用Fabric可以快速地搭建完成企业级的区块链系统。一般超级账本基本上指的都是超级账本Fabric,本章讲解的超级账本也是指超级账本Fabric,即在本章中提到的超级账本基本上就是指Fabric。
下面了解下超级账本Fabric的架构
Fabric的架构经历了两个版本的演进。最初发布的0.6版本只是被用来做商业验证,无法被应用于真实场景中。因为0.6版本的结构简单,基本所有的功能都集中在peer结点,在扩展性、安全性和隔离性方面有着不足。在后来推出的1.0正式版中,将peer结点的功能进行分拆,把共识服务从peer结点剥离,独立为orderer结点,提供可插拔共识服务。更为重要的是加入了多通道(multi-channel)功能,实现了多业务隔离,如图6-6所示。
在Fabric 1.0中需要了解的几个核心概念说明如下。
●SDK:应用工具开发包。

●Membership:负责身份权限管理,又叫MemberService或Identity Service。
●Chaincode(链码):区块链上的应用代码,扩展自“智能合约”的概念,支持Go、Java等编程语言,运行在隔离的容器环境中。
●Orderer(排序结点):Fabric 1.0架构中的共识服务角色,可以对交易进行排序、批量打包、生成区块,发给peer结点。一个区块链网络中有多个orderer结点,它们共同提供排序服务。
●Endorser(背书结点):Fabric 1.0架构中的一类peer结点角色,负责检验某个交易是否合法,是否愿意为之签名背书。
●Committer(提交结点):Fabric 1.0架构中的另一类peer结点角色,负责对orderer结点排序后的交易进行检查,选择合法的交易执行并写入存储。
●Enrollment Certificate Authority(ECA,注册证书认证中心):负责成员身份相关证书管理的认证中心。
●Transaction Certificate Authority(TCA,交易证书认证中心):负责维护交易相关证书管理的认证中心。
Fabric中主要可分为两种类型的结点:peer结点和orderer结点。一个区块链网络中会有多个peer结点,一个peer结点可以充当多种角色,如可以充当背书结点endorser,充当提交结点committer。链码(Chaincode)部署在peer结点上,则这个结点用于执行智能合约。orderer结点在网络中起到代理作用,多个orderer结点会连接到Kafka集群,利用Kafka的共识功能,完成对网络中交易的排序和打包成区块的工作。另外一个peer结点可以加入多个通道,多个通道之间是完全隔离的,每个通道只会接收和处理该通道相关交易的区块,而与其他交易完全隔离,实现数据隔离和保密。
超级账本的架构使它拥有以下特点。
●模块化设计,包括共识、权限管理、加解密、账本机制等模块,可以灵活地进行选择和替换。
●具有多种结点类型。不同结点被赋予了不同的功能,提升了交易处理效率。
●加强了身份证书管理服务,提供了身份证书、数字签名、验证算法以及若干判断身份是否有效的功能。
●支持多通道特性,不同通道之间的数据彼此隔离,提高隔离安全性。
●引入链码来实现智能合约的功能,实现了可编程性,支持第三方实现自定义功能。
●充分利用Docker容器技术,可以根据负载进行灵活部署。
超级账本主要由Go语言开发,并使用Docker容器技术进行部署。超级账本开发环境配置过程比较简单,在Windows、Linux和Mac系统下均可进行操作。使用超级账本开发区块链需要先安装Go语言开发环境和Docker工具。然后使用官方提供的安装脚本即可自动下载安装所需要的文件和Docker镜像,下载完成后即可进行开发。这里先简单介绍一下Go语言和Docker工具,对这两部分有了解的读者可以跳过,直接阅读Fabric本地开发环境安装部分
Go语言是Google推出的一门强类型的通用编程语言,Go语言良好的语言设计、高效的性能以及强大的并发编程能力使其很适合开发区块链这样的分布式系统。
要安装使用Go语言可以到Go的下载地址https://golang.org/dl/选择对应系统的Go语言开发环境的安装文件进行下载安装(需要有相应设置才可访问),go语言的下载页面如图6-7所示。
Go语言的开发环境安装完成后需要将Go的目录/usr/local/go/bin添加至系统的PATH环境变量中,命令如下:
$ export PATH=$PATH:/usr/local/go/bin
之后,编写一个输出“Hello,Golang!”的程序测试Go的开发环境是否安装完成。
新建一个名为hello.go的文件,在文件中输入以下内容:


然后打开系统的命令行终端工具(terminal)执行go run hello.go命令,可以看到“Hello,Golang!”的输出信息,如图

Go的语法比较简单,Go语言官网也提供了在线学习的教程,有需要的读者可以访问https://tour.golang.org/welcome/1进行学习
Docker是一个开源的应用容器引擎,基于Go语言开发。它是目前最流行的容器解决方案。Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。
Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,便可以启动和运行应用程序了。Docker使开发者能够非常方便快捷地管理自己的项目,只需要几分钟就能完成项目的发布和更新。
Docker使用客户端/服务器(C/S)架构模式,包括Docker客户端(Docker Client)和Docker守护进程(Docker Deamon)两部分。Docker守护进程运行在宿主机上,处理复杂繁重的任务,例如建立、运行、发布Docker容器。Docker客户端(或者说命令行工具),是用户使用Docker的主要方式,Docker客户端与Docker守护进程通信并将结果返回给用户。Docker客户端和Docker守护进程可以运行在同一个系统上,当然也可以使用Docker客户端去连接一个远程的Docker守护进程。Docker客户端和Docker守护进程之间通过socket或者RESTful API进行通信,如图


了解了Docker的基本构成,再来了解一下Docker的3个主要概念。
●Docker镜像:Docker镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建容器,一个镜像可以运行多个容器;镜像可以通过Dockerfile创建(Dockerfile是一个文本文件,Docker根据这个文件生成一个镜像),也可以从Docker仓库上下载。
●Docker容器:Docker容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
●Docker仓库:Docker仓库用于共享和管理Docker镜像,用户可以上传或者下载镜像。
Docker仓库的官方地址为https://registry.hub.docker.com/,也可以搭建自己私有的Docker仓库
接下来进行Docker的安装,在Mac和Windows上可以到官网下载安装包进行安装,在其他Linux系统中可以通过命令方式进行安装。
下载文件后双击Docker安装程序进行安装即可。安装完成后就可以双击Docker图标启动Docker守护进程,然后使用Docker客户端与Docker守护进程进行交互。如一切安装正常,在终端中输入docker run hello-word命令即可自动下载hello-world镜像,并启动一个容器输出“Hello from Docker”,如图所示。


这就说明Docker已经可以正常使用了。直接输入docker命令可以查看Docker客户端的常见使用方法,如

这里列举几个常用的Docker命令。
●启动容器并启动命令行工具bash。
docker run -i -t<image_name/continar_id>/bin/bash
●进入正在运行的容器内部,同时运行bash。
docker exec -t -i<id/container_name>/bin/bash
●查看容器日志。
docker logs<id/container_name>
●列出当前所有正在运行的容器。
docker ps
●删除单个容器。
docker rm Name/ID
●停止、启动、终止、重启一个容器。
docker stop Name/ID
docker start Name/ID
docker kill Name/ID
docker restart name/ID
●列出镜像。
docker images
●搜索镜像。
docker search image_name
●下载image。
docker pull image_name
●删除一个或者多个镜像。
docker rmi image_name
关于Docker,最后还需要知道如何生成自定义的镜像文件。生成自定义的镜像文件需要编写一个Dockefile。Dockerfile由一行行命令语句组成,并且支持以#开头的注释行。一般而言,Dockerfile分为基础镜像信息、维护者信息、镜像的操作指令、容器启动时执行指令这4个部分。这里以一个nginx(一个高性能的HTTP和反向代理服务器)作为基础镜像为例,新建一个Dockerfile的空白文件,输入以下内容:
FROM nginx
MAINTAINER XXX XXX@qq.com
RUN echo‘<h1>Hello,Docker!</h1>'>/usr/share/nginx/html/index.html
#容器启动时执行指令
完成后保存文件,然后在终端中执行docker build-t hello_docker.命令构建镜像,执行完成后可以看到本地多了一个名为hello_docker的镜像,如图所示。

以上即为Docker的简要介绍,若需深入学习可购买专门的Docker教程自学,如《Docker入门与实战》,《Docker第一本书》
对Go语言和Docker有了一定了解后,就可以正式搭建Fabric的开发环境了。
当前Fabric的最新版本为1.2.1,打开命令行工具使用以下命令就可以进行安装:
curl-sSL http//bit.ly/2ysbOFE|bash-s 1.2.1
这个命令会执行以下操作。
1)检查是否有1.2.1版本的Fabric代码。
2)将1.2.1版本的Fabric项目中的程序和配置文件下载到当前文件夹中,如图

3)下载1.2.1的Fabric docker镜像到当前系统中,如图

然后还可以下载Fabric项目的示例代码到本地,这些示例代码是基于Fabric实现的项目,本书也是通过这些示例来讲解Fabric的使用方法。示例代码的下载命令如下:
git clone https//github.com/hyperledger/fabric-samples.git
至此,Fabric的开发环境搭建完成,可以访问Fabric的官网查阅安装步骤的说明,网页链接地址为https//hyperledger-fabric.readthedocs.io/en/latest/getting_started.html
●了解超级账本的架构设计。
●学会搭建超级账本开发环境。
●掌握Chaincode的开发过程。
●通过实例掌握Fabric框架开发
超级账本(Hyperledger),是一个由Linux基金会在2015年12月主导发起的开源项目,目的是通过提供一个可靠稳定、性能良好的区块链框架,供企业创建自定义的分布式账本解决方案,以促进区块链技术在商业中的应用。
超级账本的架构包括4个大的模块:成员(MEMBERSHIP)、区块链(BLOCKCHAIN)、交易(TRANSACTIONS)和智能合约(CHAINCODE),其中成员模块主要提供成员服务(Membership Services),包括用户注册(Registration)、标识管理(Identity Management),以及提供可审计性Auditability)等;区块链模块和交易模块用于提供区块链相关的服务(Blockchain Services),负责提供共识管理(Consensus Manager)、分布式账本(Distributed Ledger)、P2P协议(P2P Protocol)和账本存储(Ledger Storage)等功能;智能合约服务负责提供智能合约的功能,智能合约被放置在安全的仓库(Secure Registry)中,执行时在一个安全的容器(Secure Container)中运行。
超级账本在实际的发展过程中,基本是参照上述的架构进行开发的,并且孵化出了很多区块链项目,主要包括Sawtooth(官网首页如图6-2所示)、Iroha(官网首页如图6-3所示)、Fabric(官网首页如图6-4所示)、Burrow(官网首页如图6-5所示)等。
其中,Sawtooth是用于构建、部署和运行分布式账本的模块化平台;Iroha是一个商业区块链框架,其设计简单且易于并入需要分布式账本技术的基础设施项目中;Fabric是一个开源的区块链开发框架,它提供了一个模块化的架构,其架构中包含结点、智能合约以及可配置的共识和成员服务等功能;Burrow可以看作一个支持以太坊智能合约的框架,它是根据以太坊虚拟机(EVM)规范构建的。这些基于超级账本的项目中,Fabric是最有名的,使用Fabric可以快速地搭建完成企业级的区块链系统。一般超级账本基本上指的都是超级账本Fabric,本章讲解的超级账本也是指超级账本Fabric,即在本章中提到的超级账本基本上就是指Fabric。
下面了解下超级账本Fabric的架构
Fabric的架构经历了两个版本的演进。最初发布的0.6版本只是被用来做商业验证,无法被应用于真实场景中。因为0.6版本的结构简单,基本所有的功能都集中在peer结点,在扩展性、安全性和隔离性方面有着不足。在后来推出的1.0正式版中,将peer结点的功能进行分拆,把共识服务从peer结点剥离,独立为orderer结点,提供可插拔共识服务。更为重要的是加入了多通道(multi-channel)功能,实现了多业务隔离,如图6-6所示。
在Fabric 1.0中需要了解的几个核心概念说明如下。
●SDK:应用工具开发包。

●Membership:负责身份权限管理,又叫MemberService或Identity Service。
●Chaincode(链码):区块链上的应用代码,扩展自“智能合约”的概念,支持Go、Java等编程语言,运行在隔离的容器环境中。
●Orderer(排序结点):Fabric 1.0架构中的共识服务角色,可以对交易进行排序、批量打包、生成区块,发给peer结点。一个区块链网络中有多个orderer结点,它们共同提供排序服务。
●Endorser(背书结点):Fabric 1.0架构中的一类peer结点角色,负责检验某个交易是否合法,是否愿意为之签名背书。
●Committer(提交结点):Fabric 1.0架构中的另一类peer结点角色,负责对orderer结点排序后的交易进行检查,选择合法的交易执行并写入存储。
●Enrollment Certificate Authority(ECA,注册证书认证中心):负责成员身份相关证书管理的认证中心。
●Transaction Certificate Authority(TCA,交易证书认证中心):负责维护交易相关证书管理的认证中心。
Fabric中主要可分为两种类型的结点:peer结点和orderer结点。一个区块链网络中会有多个peer结点,一个peer结点可以充当多种角色,如可以充当背书结点endorser,充当提交结点committer。链码(Chaincode)部署在peer结点上,则这个结点用于执行智能合约。orderer结点在网络中起到代理作用,多个orderer结点会连接到Kafka集群,利用Kafka的共识功能,完成对网络中交易的排序和打包成区块的工作。另外一个peer结点可以加入多个通道,多个通道之间是完全隔离的,每个通道只会接收和处理该通道相关交易的区块,而与其他交易完全隔离,实现数据隔离和保密。
超级账本的架构使它拥有以下特点。
●模块化设计,包括共识、权限管理、加解密、账本机制等模块,可以灵活地进行选择和替换。
●具有多种结点类型。不同结点被赋予了不同的功能,提升了交易处理效率。
●加强了身份证书管理服务,提供了身份证书、数字签名、验证算法以及若干判断身份是否有效的功能。
●支持多通道特性,不同通道之间的数据彼此隔离,提高隔离安全性。
●引入链码来实现智能合约的功能,实现了可编程性,支持第三方实现自定义功能。
●充分利用Docker容器技术,可以根据负载进行灵活部署。
超级账本主要由Go语言开发,并使用Docker容器技术进行部署。超级账本开发环境配置过程比较简单,在Windows、Linux和Mac系统下均可进行操作。使用超级账本开发区块链需要先安装Go语言开发环境和Docker工具。然后使用官方提供的安装脚本即可自动下载安装所需要的文件和Docker镜像,下载完成后即可进行开发。这里先简单介绍一下Go语言和Docker工具,对这两部分有了解的读者可以跳过,直接阅读Fabric本地开发环境安装部分
Go语言是Google推出的一门强类型的通用编程语言,Go语言良好的语言设计、高效的性能以及强大的并发编程能力使其很适合开发区块链这样的分布式系统。
要安装使用Go语言可以到Go的下载地址https://golang.org/dl/选择对应系统的Go语言开发环境的安装文件进行下载安装(需要有相应设置才可访问),go语言的下载页面如图6-7所示。
Go语言的开发环境安装完成后需要将Go的目录/usr/local/go/bin添加至系统的PATH环境变量中,命令如下:
$ export PATH=$PATH:/usr/local/go/bin
之后,编写一个输出“Hello,Golang!”的程序测试Go的开发环境是否安装完成。
新建一个名为hello.go的文件,在文件中输入以下内容:


然后打开系统的命令行终端工具(terminal)执行go run hello.go命令,可以看到“Hello,Golang!”的输出信息,如图

Go的语法比较简单,Go语言官网也提供了在线学习的教程,有需要的读者可以访问https://tour.golang.org/welcome/1进行学习
Docker是一个开源的应用容器引擎,基于Go语言开发。它是目前最流行的容器解决方案。Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。
Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,便可以启动和运行应用程序了。Docker使开发者能够非常方便快捷地管理自己的项目,只需要几分钟就能完成项目的发布和更新。
Docker使用客户端/服务器(C/S)架构模式,包括Docker客户端(Docker Client)和Docker守护进程(Docker Deamon)两部分。Docker守护进程运行在宿主机上,处理复杂繁重的任务,例如建立、运行、发布Docker容器。Docker客户端(或者说命令行工具),是用户使用Docker的主要方式,Docker客户端与Docker守护进程通信并将结果返回给用户。Docker客户端和Docker守护进程可以运行在同一个系统上,当然也可以使用Docker客户端去连接一个远程的Docker守护进程。Docker客户端和Docker守护进程之间通过socket或者RESTful API进行通信,如图


了解了Docker的基本构成,再来了解一下Docker的3个主要概念。
●Docker镜像:Docker镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建容器,一个镜像可以运行多个容器;镜像可以通过Dockerfile创建(Dockerfile是一个文本文件,Docker根据这个文件生成一个镜像),也可以从Docker仓库上下载。
●Docker容器:Docker容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
●Docker仓库:Docker仓库用于共享和管理Docker镜像,用户可以上传或者下载镜像。
Docker仓库的官方地址为https://registry.hub.docker.com/,也可以搭建自己私有的Docker仓库
接下来进行Docker的安装,在Mac和Windows上可以到官网下载安装包进行安装,在其他Linux系统中可以通过命令方式进行安装。
下载文件后双击Docker安装程序进行安装即可。安装完成后就可以双击Docker图标启动Docker守护进程,然后使用Docker客户端与Docker守护进程进行交互。如一切安装正常,在终端中输入docker run hello-word命令即可自动下载hello-world镜像,并启动一个容器输出“Hello from Docker”,如图所示。


这就说明Docker已经可以正常使用了。直接输入docker命令可以查看Docker客户端的常见使用方法,如

这里列举几个常用的Docker命令。
●启动容器并启动命令行工具bash。
docker run -i -t<image_name/continar_id>/bin/bash
●进入正在运行的容器内部,同时运行bash。
docker exec -t -i<id/container_name>/bin/bash
●查看容器日志。
docker logs<id/container_name>
●列出当前所有正在运行的容器。
docker ps
●删除单个容器。
docker rm Name/ID
●停止、启动、终止、重启一个容器。
docker stop Name/ID
docker start Name/ID
docker kill Name/ID
docker restart name/ID
●列出镜像。
docker images
●搜索镜像。
docker search image_name
●下载image。
docker pull image_name
●删除一个或者多个镜像。
docker rmi image_name
关于Docker,最后还需要知道如何生成自定义的镜像文件。生成自定义的镜像文件需要编写一个Dockefile。Dockerfile由一行行命令语句组成,并且支持以#开头的注释行。一般而言,Dockerfile分为基础镜像信息、维护者信息、镜像的操作指令、容器启动时执行指令这4个部分。这里以一个nginx(一个高性能的HTTP和反向代理服务器)作为基础镜像为例,新建一个Dockerfile的空白文件,输入以下内容:
FROM nginx
MAINTAINER XXX XXX@qq.com
RUN echo‘<h1>Hello,Docker!</h1>'>/usr/share/nginx/html/index.html
#容器启动时执行指令
完成后保存文件,然后在终端中执行docker build-t hello_docker.命令构建镜像,执行完成后可以看到本地多了一个名为hello_docker的镜像,如图所示。

以上即为Docker的简要介绍,若需深入学习可购买专门的Docker教程自学,如《Docker入门与实战》,《Docker第一本书》
对Go语言和Docker有了一定了解后,就可以正式搭建Fabric的开发环境了。
当前Fabric的最新版本为1.2.1,打开命令行工具使用以下命令就可以进行安装:
curl-sSL http//bit.ly/2ysbOFE|bash-s 1.2.1
这个命令会执行以下操作。
1)检查是否有1.2.1版本的Fabric代码。
2)将1.2.1版本的Fabric项目中的程序和配置文件下载到当前文件夹中,如图

3)下载1.2.1的Fabric docker镜像到当前系统中,如图

然后还可以下载Fabric项目的示例代码到本地,这些示例代码是基于Fabric实现的项目,本书也是通过这些示例来讲解Fabric的使用方法。示例代码的下载命令如下:
git clone https//github.com/hyperledger/fabric-samples.git
至此,Fabric的开发环境搭建完成,可以访问Fabric的官网查阅安装步骤的说明,网页链接地址为https//hyperledger-fabric.readthedocs.io/en/latest/getting_started.html
No activity yet