
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.

Subscribe to leaf

Subscribe to leaf
Share Dialog
Share Dialog


<100 subscribers
<100 subscribers
使用超级账本构建了一个Fabric网络,并通过CLI命令行与这个Fabric网络进行交互。在这一节中将会学习Fabric Samples中的另一个示例——fabcar。fabcar是一个基于NODE SDK、并带有智能合约的示例(其中NODE_SDK是超级账本官方提供的JavaScript软件开发工具包,开发者可以通过NODE_SDK与Fabric网络进行交互,这是除了CLI之外的另一种交互方式),通过这个示例的学习,我们可以了解NODE SDK的使用方法,以及如何在页面中基于NODE SDK和Fabric网络进行交互。
在进入这个示例的开发之前,再来总结一下一个区块链应用与区块链网路之间的交互过程。
在Fabric网络中,一个应用(Application)首先需要通过开发者证书(Application Developer Identity)的确认,通过确认后执行智能合约(Run smart contracts),智能合约可以查询和更新区块链网络(Receive ledger updates)。区块链网络更新成功后再通知应用,如图

fabcar实现了汽车数据管理的功能,里面包含了两种角色,一是管理员,用来更新和管理汽车数据,二是普通用户,可以查询所有的汽车数据。该示例实现的具体功能以下:
●定义一个Car的结构体,用来存储汽车的数据和所有者信息。
●初始化并启动一个测试网络。
●具有注册和登记管理员的功能。
●具有注册新用户的功能。
●可以查询和更新汽车的信息。
进入fabcar文件夹可以看到一个shell脚本和几个js文件,如图

其中package.json定义了这个项目所需要的JavaScript模块,以及项目的配置信息(比如名称、版本、许可证等)。执行npm install命令时会根据这个配置文件自动下载所需的模块,也就是配置项目所需的运行和开发环境。startFabric.sh这个脚本用来初始化Fabric网络、启动结点、创建通道和实例化Chaincode,并且把汽车的初始信息写入区块链。enrollAdmin.js用来注册管理员。registerUser.js用来注册新用户。query.js可以查询所有汽车的信息。invoke.js用来调用Chaincode,执行其中的功能。
下面开始开发和部署这个fabcar应用
在这个示例中会先启动并初始化一个Fabric网络,然后创建一个管理员和一个新用户用于测试,接着通过NODE SDK与网络进行交互并将NODE SDK集成到一个网页中,用户可以通过这个交互页面操作超级账本。
1.启动网络和初始化数据
第1步是执行fabcar文件夹下的startFabric.sh脚本文本,这个脚本文件的作用是先启动这个基础网络,然后启动CLI容器、实例化Chaincode和加载汽车初始信息,如图


在Chaincode代码中还需要实现Chaincode的Init()方法和Invoke()方法。在Init()方法中实现了Chaincode的初始化操作,以及针对查询汽车信息(queryCar)、初始化账本(initLedger)、新建汽车信息(createCar)、查询所有汽车信息(queryAllcars)、更新汽车所有者(changeCarOwner)等不同事件实现了对应的处理逻辑,如图6-31所示。
图6-31 实现Chaincode()方法
其中在Invoke()方法支持调用queryCar(查询汽车信息)、initLedger(初始化账本)、createCar(新建汽车信息)、queryAllCars(查询所有汽车信息)、changeCarOwner(更新汽车所有者)的功能。

使用startFabric.sh启动网络后,若一切顺利可以看到成功的输出信息、整个启动消耗的时间和一些帮助信息,如图所示。
网络启动成功的输出信息
成功启动网络后还需要创建一个管理员和新用户。
2.创建管理员和新用户
创建管理员使用enrollAdmin.js,在这个文件中调用SDK创建一个用户名为admin的管理员,如图

创建admin管理员
创建管理员使用registerUser.js,在这个文件中调用SDK创建一个用户名为user1的新用户,如图

创建user1新用户
在执行这两个脚本执行需要先使用npm install命令安装SDK,如图所示。

安装完成以后通过node enrollAdmin.js和node registerUser注册管理员和新用户,如图

再查询某一辆汽车(如CAR3)的信息,修改query.js,如图6-38所示。
再执行命令“node query.js”,可以看到返回了CAR3的信息如图6-39所示。
接着再尝试调用Chaincode更新超级账本的内容,在invoke.js中调用Chaincode中的createCar新建一辆汽车信息,如图所示。

执行node invoke.js命令,如图所示。然后在查询所有汽车信息就可以看到多了一辆汽车,

最后将NODE SDK集成到一个网页中,使用户可以直接通过网页与Fabric网络进行交互,进行超级账本的查询操作。这里使用express框架开发一个简单的页面来展示和调用SDK。Express是一个简洁而灵活的node.js Web应用框架,它提供一系列强大的特性,帮助用户创建各种Web和移动设备应用。
网站实现的功能是访问首页时返回所有汽车信息,访问对应汽车页面则返回汽车详情页面。先在终端中执行npm install express安装express框架,然后新建一个名为server.js的文件。在这个文件中加载并新建一个express应用并监听3000端口,当访问这个3000端口时查询得到在1.启动网络和初始化数据一部分中加载的所有汽车信息并返回。
主要代码如下:

完成代码后在终端中执行node app.js命令运行应用。运行后可在浏览器中访问127.0.0.1:3000查看所有汽车信息,如图

使用超级账本构建了一个Fabric网络,并通过CLI命令行与这个Fabric网络进行交互。在这一节中将会学习Fabric Samples中的另一个示例——fabcar。fabcar是一个基于NODE SDK、并带有智能合约的示例(其中NODE_SDK是超级账本官方提供的JavaScript软件开发工具包,开发者可以通过NODE_SDK与Fabric网络进行交互,这是除了CLI之外的另一种交互方式),通过这个示例的学习,我们可以了解NODE SDK的使用方法,以及如何在页面中基于NODE SDK和Fabric网络进行交互。
在进入这个示例的开发之前,再来总结一下一个区块链应用与区块链网路之间的交互过程。
在Fabric网络中,一个应用(Application)首先需要通过开发者证书(Application Developer Identity)的确认,通过确认后执行智能合约(Run smart contracts),智能合约可以查询和更新区块链网络(Receive ledger updates)。区块链网络更新成功后再通知应用,如图

fabcar实现了汽车数据管理的功能,里面包含了两种角色,一是管理员,用来更新和管理汽车数据,二是普通用户,可以查询所有的汽车数据。该示例实现的具体功能以下:
●定义一个Car的结构体,用来存储汽车的数据和所有者信息。
●初始化并启动一个测试网络。
●具有注册和登记管理员的功能。
●具有注册新用户的功能。
●可以查询和更新汽车的信息。
进入fabcar文件夹可以看到一个shell脚本和几个js文件,如图

其中package.json定义了这个项目所需要的JavaScript模块,以及项目的配置信息(比如名称、版本、许可证等)。执行npm install命令时会根据这个配置文件自动下载所需的模块,也就是配置项目所需的运行和开发环境。startFabric.sh这个脚本用来初始化Fabric网络、启动结点、创建通道和实例化Chaincode,并且把汽车的初始信息写入区块链。enrollAdmin.js用来注册管理员。registerUser.js用来注册新用户。query.js可以查询所有汽车的信息。invoke.js用来调用Chaincode,执行其中的功能。
下面开始开发和部署这个fabcar应用
在这个示例中会先启动并初始化一个Fabric网络,然后创建一个管理员和一个新用户用于测试,接着通过NODE SDK与网络进行交互并将NODE SDK集成到一个网页中,用户可以通过这个交互页面操作超级账本。
1.启动网络和初始化数据
第1步是执行fabcar文件夹下的startFabric.sh脚本文本,这个脚本文件的作用是先启动这个基础网络,然后启动CLI容器、实例化Chaincode和加载汽车初始信息,如图


在Chaincode代码中还需要实现Chaincode的Init()方法和Invoke()方法。在Init()方法中实现了Chaincode的初始化操作,以及针对查询汽车信息(queryCar)、初始化账本(initLedger)、新建汽车信息(createCar)、查询所有汽车信息(queryAllcars)、更新汽车所有者(changeCarOwner)等不同事件实现了对应的处理逻辑,如图6-31所示。
图6-31 实现Chaincode()方法
其中在Invoke()方法支持调用queryCar(查询汽车信息)、initLedger(初始化账本)、createCar(新建汽车信息)、queryAllCars(查询所有汽车信息)、changeCarOwner(更新汽车所有者)的功能。

使用startFabric.sh启动网络后,若一切顺利可以看到成功的输出信息、整个启动消耗的时间和一些帮助信息,如图所示。
网络启动成功的输出信息
成功启动网络后还需要创建一个管理员和新用户。
2.创建管理员和新用户
创建管理员使用enrollAdmin.js,在这个文件中调用SDK创建一个用户名为admin的管理员,如图

创建admin管理员
创建管理员使用registerUser.js,在这个文件中调用SDK创建一个用户名为user1的新用户,如图

创建user1新用户
在执行这两个脚本执行需要先使用npm install命令安装SDK,如图所示。

安装完成以后通过node enrollAdmin.js和node registerUser注册管理员和新用户,如图

再查询某一辆汽车(如CAR3)的信息,修改query.js,如图6-38所示。
再执行命令“node query.js”,可以看到返回了CAR3的信息如图6-39所示。
接着再尝试调用Chaincode更新超级账本的内容,在invoke.js中调用Chaincode中的createCar新建一辆汽车信息,如图所示。

执行node invoke.js命令,如图所示。然后在查询所有汽车信息就可以看到多了一辆汽车,

最后将NODE SDK集成到一个网页中,使用户可以直接通过网页与Fabric网络进行交互,进行超级账本的查询操作。这里使用express框架开发一个简单的页面来展示和调用SDK。Express是一个简洁而灵活的node.js Web应用框架,它提供一系列强大的特性,帮助用户创建各种Web和移动设备应用。
网站实现的功能是访问首页时返回所有汽车信息,访问对应汽车页面则返回汽车详情页面。先在终端中执行npm install express安装express框架,然后新建一个名为server.js的文件。在这个文件中加载并新建一个express应用并监听3000端口,当访问这个3000端口时查询得到在1.启动网络和初始化数据一部分中加载的所有汽车信息并返回。
主要代码如下:

完成代码后在终端中执行node app.js命令运行应用。运行后可在浏览器中访问127.0.0.1:3000查看所有汽车信息,如图

No activity yet