
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


除了address(地址)这类特别的类型,Solidity的变量和数据类型与常见编程语言类似,具体介绍如下:


2.枚举
Solidity需要定义一组常量时可以通过定义枚举来实现,定义枚举使用enum关键字,示例代码如下,该示例代码定义了一个颜色的枚举,枚举中有红、黄、绿三种颜色,三种颜色的值依次为0、1、2。

3.结构体
结构体使用Stouct关键字定义,下面的示列定义了一个名为Player的结构体,这个结构体包含了地址(addr)和数量(amount)两个属性,其中地址是address类型,数量是整型,具体代码如下

4.函数
Solidity中函数的定义语法如下:

其中,<parameter types>指函数的参数及类型。{internal|external}这两个关键字规定了函数的调用方式,internal指内部调用,能直接使用上下文环境中的数据;external实现合约的外部消息调用,默认是internal。[pure|constant|view|payable]这4个关键字用来说明函数属性,pure关键字来源于函数式编程,表明这个函数体是一个纯函数计算不能调用其他函数;constant关键字定义一个常量,但在Solidity的0.4.17版本后不再使用;view关键字表明这个函数是只读不能修改状态;如果一个函数需要进行货币操作,必须要带上payable关键字。[returns(<return types>)]用来指明函数的返回类型。
Solidity注释的语法和JavaScript中一样,使用“//”进行单行注释,使用“/*”和“*/”进行多行注释。
//这是单行注释
/*
这是
多行注释
*/
对于Solidity语言,除了要了解以上基本语法外,还需要了解Solidity的文件结构。Solidity文件一般以.sol作为文件后缀。在sol文件中,第1行是版本声明,不同的版本支持的功能不同,所以文件需要指定版本号,语法如下:
pragma solidity ^0.4.0;
上面这行语句表明这个sol文件需要在0.4.0之后的版本上运行,其中的“^”符号表示不支持0.5.0及之后的版本。
以上是Solidity语法的简单介绍,详细内容可参看Solidity的官方教程,在此不再赘述。
: Solidity语言的官方教程地址是http://solidity.readthedocs.io/en/develop/types.html。
了解了Solidity的基本语法后就可以开始进行智能合约的开发了。使用Solidity开发智能合约需要安装一个编译器。对于刚开始学习Solidity语言的读者朋友来说,这里推荐使用在线的IDE编辑器——Remix。在浏览器中输入http://remix.ethereum.org即可使用,无须本地安装。
Remix的操作界面主要分为4部分。左侧是文件浏览区域,可以进行新建文件、打开本地文件、更新代码到GitHub和浏览所有打开文件等操作;中间上半部分是编辑代码的地方,代码语法高亮,并可以自动进行语法检查,黄色是警告和建议,红色是语法错误;下半部分是一个交互式的终端界面,用来查询交易详情,调试智能合约;右侧是功能面板,用来编译、运行和测试智能合约,整个界面如图5-21所示。
Remix的功能比较强大,本书不过多赘述,有兴趣的读者可访问Remix的官网https://remix.readthedocs.io/en/latest进行查阅。接下来我们直接上手,用Remix编译器开发一个智能合约。
打开Remix后,默认显示的是Solidity语言编写的一个投票的智能合约示例,代码比较多,此处不展开说明。这里新建一个Hello.sol的文件。单击左上角的“+”按钮,输入文件名为“Hello.sol”,单击“OK”按钮进行保存,如图


在新生成的文件第1行先声明编译器版本为0.4.0之后的版本,然后定义一个名为“helloBlockchain”的智能合约,这个合约中只包含一个函数renderHello,其功能就是返回“Hello Blockchain”字符串,如图

代码编写完成后,在右侧功能面板选择版本号0.4.25+的编译器进行编译,如图所示。编译成功后会打印“Hello Blockchain”这个智能合约的名字。

接着单击“Run”标签,选择运行环境为本地测试环境,选择“helloBlockchain”智能合约后再单击“Deploy”按钮部署这个智能合约,如图5-25所示。
Remix有3种运行模式,如下所述。
●JavaScript VM:这种模式是在浏览器中模拟一个区块链,合约在这个模拟的沙盒中执行,刷新页面就会使所有数据清空,不会做任何持久化,没有注入Web3对象。
●Injected Provider:连接到包含注入Web3对象的源上,在Mist浏览器或安装MetaMask的浏览器上会自动切换到此模式下。
●Web3 Provider:连接到远程结点,需要填写源的url地址和端口,例如geth、ganache等客户端,包含Web3对象
这里选择Injected Provider模式(图中的Provider为Web3对象,即Injected Web3)

部署智能合约是将智能合约写入到以太坊,在以太坊上进行写入操作都需要消耗以太币,所以在这一步操作会消耗以太币。在弹出的窗口中单击“Confirm”按钮确认支付,如图

到这里智能合约就部署到本地的测试环境了。智能合约部署成功后,在Remix主界面的右下角可以看到部署成功的智能合约和可以使用的函数renderHello,单击renderHello即是调用并执行该函数,可以看到输出结果为字符串“Hello Blockchain”,如图

最后,总结一下智能合约的开发过程,整个流程如图

1)新建sol文件,编写智能合约的功能,这里实现里一个输出“Hello Blockchain”的功能。
2)使用编译器对代码进行编译。
3)若编码无错误,编译器将编译结果编译生成一个二进制文件。
4)将编译成功的智能合约部署到区块链系统中。
5)部署成功后会返回智能合约的地址和应用二进制接口(Application Binary Interface,ABI),用于和智能合约进行交互。
6)通过地址和ABI调用智能合约。
当掌握了Solidity的基本语法和智能合约的开发流程后,就可以进一步学习DApp的开发框架Truffle了。
Truffle是针对基于以太坊的Solidity语言的一套开发框架。Truffle本身基于JavaScript,Truffle的目标是让DApp的开发变得更简单,它具有以下功能。
●内置的智能合约编译、链接、部署和二进制文件的管理。
●支持智能合约的自动化测试。
●脚本化的、可扩展的部署与发布框架。
●管理部署的网络环境功能。
●使用EthPM或npm提供的包管理,使用ERC190标准。
●与合约直接通信的交互控制台(写完合约就可以在命令行里验证了)。
●智能合约的构建流程可根据需求进行自定义配置。
●在Truffle环境里支持执行外部的脚本
Truffle可以通过包管理工具npm进行安装,安装命令如下:
$ npm install -g truffle
安装完成后输入truffle命Truffle可以通过包管理工具npm进行安装,安装命令如下:
$ npm install -g truffle
安装完成后输入truffle命令即可看到它的使用方法,如图5-29所示。以下是几个主要的Truffle命令的用法介绍。
1.初始化Truffle项目——truffle init
要初始化Truffle项目只需要输入truffle init就可以初始化一个空的项目,新建一个文件夹叫first-DApp,进入文件夹后执行truffle init,如图所示。
Truffle会自动生成一个空的项目工程。新生成的Truffle项目中包含几个文件夹和配置文件,其中contracts文件夹用来存放智能合约;migrations文件夹用来实现部署智能合约的功能;test文件夹用来存放合约的测试文件;truffle.js是默认配置文件;truffle-config.js是Windows下的默认配置文件,以防止文件名与truffle命令冲突,一个Truffle项目的结构如



2.编译命令——truffle compile
执行truffle compile命令会编译智能合约文件,编译成功后会在当前目录的build文件夹下生成新的智能合约二进制文件,如图5-32所示。
3.部署命令——truffle deploy
部署智能合约之前需要修改配置文件,本章中使用的智能合约开发测试环境为Ganache,其客户端监听的端口为本地的7545端口,故需要修改truffle.js文件连接到本地的7545端口,如图


修改完成就可以进行智能合约部署了,在终端中输入命令“truffle deploy”即可完成。
4.测试命令——truffle test
执行truffle test命令会运行test文件夹下的所有测试用例,该命令将会自动识别以.js、.es、.es6、.jsx和.sol为扩展名的文件,其他扩展名的文件将被忽略。
5.终端命令——truffle console
执行truffle console命令可以打开一个交互式终端界面,方便地进行智能合约的调用和调试。
6.下载模板命令——truffle unbox[box-name]
安装完成后输入truffle命令即可看到它的使用方法,如图5-29所示。以下是几个主要的Truffle命令的用法介绍。
1.初始化Truffle项目——truffle init
要初始化Truffle项目只需要输入truffle init就可以初始化一个空的项目,新建一个文件夹叫first-DApp,进入文件夹后执行truffle init,如图5-30所示。
Truffle会自动生成一个空的项目工程。新生成的Truffle项目中包含几个文件夹和配置文件,其中contracts文件夹用来存放智能合约;migrations文件夹用来实现部署智能合约的功能;test文件夹用来存放合约的测试文件;truffle.js是默认配置文件;truffle-config.js是Windows下的默认配置文件,以防止文件名与truffle命令冲突,一个Truffle项目的结构如图
Truffle还有一个很实用的命令就是truffle unbox[box-name],这个命令用来下载模板,box-name是实际需要下载的模板名字。下一节内容将详细介绍模板的使用。

要使用这个drizzle模板,首先要安装Truffle和Ganache环境,前边已经安装完了,接下来直接执行truffle unbox drizzle命令下载这个模板即可。
至此,进行DApp开发的各项基础知识已经介绍完,准备工作也已完成,下面开始进行DApp的实际开发。
除了address(地址)这类特别的类型,Solidity的变量和数据类型与常见编程语言类似,具体介绍如下:


2.枚举
Solidity需要定义一组常量时可以通过定义枚举来实现,定义枚举使用enum关键字,示例代码如下,该示例代码定义了一个颜色的枚举,枚举中有红、黄、绿三种颜色,三种颜色的值依次为0、1、2。

3.结构体
结构体使用Stouct关键字定义,下面的示列定义了一个名为Player的结构体,这个结构体包含了地址(addr)和数量(amount)两个属性,其中地址是address类型,数量是整型,具体代码如下

4.函数
Solidity中函数的定义语法如下:

其中,<parameter types>指函数的参数及类型。{internal|external}这两个关键字规定了函数的调用方式,internal指内部调用,能直接使用上下文环境中的数据;external实现合约的外部消息调用,默认是internal。[pure|constant|view|payable]这4个关键字用来说明函数属性,pure关键字来源于函数式编程,表明这个函数体是一个纯函数计算不能调用其他函数;constant关键字定义一个常量,但在Solidity的0.4.17版本后不再使用;view关键字表明这个函数是只读不能修改状态;如果一个函数需要进行货币操作,必须要带上payable关键字。[returns(<return types>)]用来指明函数的返回类型。
Solidity注释的语法和JavaScript中一样,使用“//”进行单行注释,使用“/*”和“*/”进行多行注释。
//这是单行注释
/*
这是
多行注释
*/
对于Solidity语言,除了要了解以上基本语法外,还需要了解Solidity的文件结构。Solidity文件一般以.sol作为文件后缀。在sol文件中,第1行是版本声明,不同的版本支持的功能不同,所以文件需要指定版本号,语法如下:
pragma solidity ^0.4.0;
上面这行语句表明这个sol文件需要在0.4.0之后的版本上运行,其中的“^”符号表示不支持0.5.0及之后的版本。
以上是Solidity语法的简单介绍,详细内容可参看Solidity的官方教程,在此不再赘述。
: Solidity语言的官方教程地址是http://solidity.readthedocs.io/en/develop/types.html。
了解了Solidity的基本语法后就可以开始进行智能合约的开发了。使用Solidity开发智能合约需要安装一个编译器。对于刚开始学习Solidity语言的读者朋友来说,这里推荐使用在线的IDE编辑器——Remix。在浏览器中输入http://remix.ethereum.org即可使用,无须本地安装。
Remix的操作界面主要分为4部分。左侧是文件浏览区域,可以进行新建文件、打开本地文件、更新代码到GitHub和浏览所有打开文件等操作;中间上半部分是编辑代码的地方,代码语法高亮,并可以自动进行语法检查,黄色是警告和建议,红色是语法错误;下半部分是一个交互式的终端界面,用来查询交易详情,调试智能合约;右侧是功能面板,用来编译、运行和测试智能合约,整个界面如图5-21所示。
Remix的功能比较强大,本书不过多赘述,有兴趣的读者可访问Remix的官网https://remix.readthedocs.io/en/latest进行查阅。接下来我们直接上手,用Remix编译器开发一个智能合约。
打开Remix后,默认显示的是Solidity语言编写的一个投票的智能合约示例,代码比较多,此处不展开说明。这里新建一个Hello.sol的文件。单击左上角的“+”按钮,输入文件名为“Hello.sol”,单击“OK”按钮进行保存,如图


在新生成的文件第1行先声明编译器版本为0.4.0之后的版本,然后定义一个名为“helloBlockchain”的智能合约,这个合约中只包含一个函数renderHello,其功能就是返回“Hello Blockchain”字符串,如图

代码编写完成后,在右侧功能面板选择版本号0.4.25+的编译器进行编译,如图所示。编译成功后会打印“Hello Blockchain”这个智能合约的名字。

接着单击“Run”标签,选择运行环境为本地测试环境,选择“helloBlockchain”智能合约后再单击“Deploy”按钮部署这个智能合约,如图5-25所示。
Remix有3种运行模式,如下所述。
●JavaScript VM:这种模式是在浏览器中模拟一个区块链,合约在这个模拟的沙盒中执行,刷新页面就会使所有数据清空,不会做任何持久化,没有注入Web3对象。
●Injected Provider:连接到包含注入Web3对象的源上,在Mist浏览器或安装MetaMask的浏览器上会自动切换到此模式下。
●Web3 Provider:连接到远程结点,需要填写源的url地址和端口,例如geth、ganache等客户端,包含Web3对象
这里选择Injected Provider模式(图中的Provider为Web3对象,即Injected Web3)

部署智能合约是将智能合约写入到以太坊,在以太坊上进行写入操作都需要消耗以太币,所以在这一步操作会消耗以太币。在弹出的窗口中单击“Confirm”按钮确认支付,如图

到这里智能合约就部署到本地的测试环境了。智能合约部署成功后,在Remix主界面的右下角可以看到部署成功的智能合约和可以使用的函数renderHello,单击renderHello即是调用并执行该函数,可以看到输出结果为字符串“Hello Blockchain”,如图

最后,总结一下智能合约的开发过程,整个流程如图

1)新建sol文件,编写智能合约的功能,这里实现里一个输出“Hello Blockchain”的功能。
2)使用编译器对代码进行编译。
3)若编码无错误,编译器将编译结果编译生成一个二进制文件。
4)将编译成功的智能合约部署到区块链系统中。
5)部署成功后会返回智能合约的地址和应用二进制接口(Application Binary Interface,ABI),用于和智能合约进行交互。
6)通过地址和ABI调用智能合约。
当掌握了Solidity的基本语法和智能合约的开发流程后,就可以进一步学习DApp的开发框架Truffle了。
Truffle是针对基于以太坊的Solidity语言的一套开发框架。Truffle本身基于JavaScript,Truffle的目标是让DApp的开发变得更简单,它具有以下功能。
●内置的智能合约编译、链接、部署和二进制文件的管理。
●支持智能合约的自动化测试。
●脚本化的、可扩展的部署与发布框架。
●管理部署的网络环境功能。
●使用EthPM或npm提供的包管理,使用ERC190标准。
●与合约直接通信的交互控制台(写完合约就可以在命令行里验证了)。
●智能合约的构建流程可根据需求进行自定义配置。
●在Truffle环境里支持执行外部的脚本
Truffle可以通过包管理工具npm进行安装,安装命令如下:
$ npm install -g truffle
安装完成后输入truffle命Truffle可以通过包管理工具npm进行安装,安装命令如下:
$ npm install -g truffle
安装完成后输入truffle命令即可看到它的使用方法,如图5-29所示。以下是几个主要的Truffle命令的用法介绍。
1.初始化Truffle项目——truffle init
要初始化Truffle项目只需要输入truffle init就可以初始化一个空的项目,新建一个文件夹叫first-DApp,进入文件夹后执行truffle init,如图所示。
Truffle会自动生成一个空的项目工程。新生成的Truffle项目中包含几个文件夹和配置文件,其中contracts文件夹用来存放智能合约;migrations文件夹用来实现部署智能合约的功能;test文件夹用来存放合约的测试文件;truffle.js是默认配置文件;truffle-config.js是Windows下的默认配置文件,以防止文件名与truffle命令冲突,一个Truffle项目的结构如



2.编译命令——truffle compile
执行truffle compile命令会编译智能合约文件,编译成功后会在当前目录的build文件夹下生成新的智能合约二进制文件,如图5-32所示。
3.部署命令——truffle deploy
部署智能合约之前需要修改配置文件,本章中使用的智能合约开发测试环境为Ganache,其客户端监听的端口为本地的7545端口,故需要修改truffle.js文件连接到本地的7545端口,如图


修改完成就可以进行智能合约部署了,在终端中输入命令“truffle deploy”即可完成。
4.测试命令——truffle test
执行truffle test命令会运行test文件夹下的所有测试用例,该命令将会自动识别以.js、.es、.es6、.jsx和.sol为扩展名的文件,其他扩展名的文件将被忽略。
5.终端命令——truffle console
执行truffle console命令可以打开一个交互式终端界面,方便地进行智能合约的调用和调试。
6.下载模板命令——truffle unbox[box-name]
安装完成后输入truffle命令即可看到它的使用方法,如图5-29所示。以下是几个主要的Truffle命令的用法介绍。
1.初始化Truffle项目——truffle init
要初始化Truffle项目只需要输入truffle init就可以初始化一个空的项目,新建一个文件夹叫first-DApp,进入文件夹后执行truffle init,如图5-30所示。
Truffle会自动生成一个空的项目工程。新生成的Truffle项目中包含几个文件夹和配置文件,其中contracts文件夹用来存放智能合约;migrations文件夹用来实现部署智能合约的功能;test文件夹用来存放合约的测试文件;truffle.js是默认配置文件;truffle-config.js是Windows下的默认配置文件,以防止文件名与truffle命令冲突,一个Truffle项目的结构如图
Truffle还有一个很实用的命令就是truffle unbox[box-name],这个命令用来下载模板,box-name是实际需要下载的模板名字。下一节内容将详细介绍模板的使用。

要使用这个drizzle模板,首先要安装Truffle和Ganache环境,前边已经安装完了,接下来直接执行truffle unbox drizzle命令下载这个模板即可。
至此,进行DApp开发的各项基础知识已经介绍完,准备工作也已完成,下面开始进行DApp的实际开发。
No activity yet