前言
区块链是一项革命性的技术,以太坊是一个运行智能合同的去中心化区块链平台。
7 天区块链开发实践将教你如何使用以太坊区块链构建在线游戏应用。这本书的每一部分都将介绍基本的区块链编程概念,因为它们与创建一个在线游戏有关,随后是实践练习,你可以将这些练习作为家庭作业来完成。通过这本书,你将获得核心的区块链应用程序开发技能,包括创建智能合同、与以太坊网络交互、构建用户界面以及将你的应用程序部署到互联网上。这本书以实用、动手的方式提供了七门独立的课程。
到本书结束时,您将会惊讶地发现,在短短的一周内,您将会在以太坊网络上学习到多少关于区块链应用程序开发的知识!
这本书是给谁的
这本书是为渴望获得区块链应用程序开发技能并希望掌握区块链应用程序开发的软件工程师和 IT 专业人员编写的。这本书非常适合那些编程经验有限的人。
这本书涵盖的内容
第 1 章、第一天 - 应用程序介绍、安装和设置,带我们了解运行我们的应用程序所需的环境的基本设置。我们将了解我们的应用程序做什么以及它是如何做的。我们将了解用于与区块链互动的各种工具。
第二章,第二天——可靠性变量和数据类型,教给我们作为编程语言的可靠性。它向我们展示了如何为 Solidity 编写代码,Solidity 中不同类型的变量,以及如何实现它们。
第 3 章,第三天——在您的智能合约中实现业务逻辑,向我们展示了什么是智能合约,以及它们如何用于区块链应用程序。然后,我们将学习如何在这些智能合约中编写业务逻辑,以便我们的应用程序能够正常运行。
第四章、第四天——创造测试,向我们展示了测试是多么的重要。我们将在本书中广泛使用测试来确保我们的代码运行没有任何问题。本章向我们展示了各种类型的测试,看看如何创建它们以及如何使用它们来改进我们的应用程序。
第 5 章,第五天——构建用户界面,教我们所有关于 React 框架的知识,我们将用它作为后端来为应用程序创建用户界面。我们将学习如何通过用户界面与我们的区块链网络进行交互,我们将学习如何确保它正常工作,我们还将学习如何通过用户界面将我们的应用程序连接到网络。
第六章,第六天——使用钱包,向我们展示了什么是区块链钱包,它们是如何工作的,以及为什么我们应该使用它们。我们将学习如何将我们的钱包绑定到区块链网络,并使用它来管理将出现在我们的应用程序中的各种交易。
第七章,第七天——部署到网络,教我们如何上传自己的应用程序供全世界玩。在部署到真正的以太坊区块链之前,我们将学习使用 Ropsten 测试网络来测试我们的应用程序。我们将学习如何使用亚马逊网络服务 ( AWS )来上传和托管我们的游戏用户界面,世界各地的用户都将使用它来玩游戏。
从这本书中获得最大收益
为了理解和应用本书中的所有概念,一些关于编程的基本知识是必不可少的。与区块链相关的工具的基本知识将是一个额外的奖励。
下载示例代码文件
你可以从你在www.packt.com的账户下载本书的示例代码文件。如果你在其他地方购买了这本书,你可以访问 www.packt.com/support 的并注册,让文件直接通过电子邮件发送给你。
您可以按照以下步骤下载代码文件:
- 在www.packt.com登录或注册。
- 选择支持选项卡。
- 点击代码下载和勘误表。
- 在搜索框中输入图书名称,然后按照屏幕指示进行操作。
下载文件后,请确保使用最新版本的解压缩或解压文件夹:
- WinRAR/7-Zip for Windows
- zipeg/izp/un ARX for MAC
- 用于 Linux 的 7-Zip/PeaZip
该书的代码包也托管在 GitHub 的https://GitHub . com/packt publishing/Hands-on-block chain-Development-in-7-Days。如果代码有更新,它将在现有的 GitHub 库中更新。
我们在也有丰富的书籍和视频目录中的其他代码包。看看他们!
下载彩色图像
我们还提供了一个 PDF 文件,其中有本书中使用的截图/图表的彩色图像。可以在这里下载:http://www . packtpub . com/sites/default/files/downloads/9781838640101 _ color images . pdf。
使用的惯例
本书通篇使用了许多文本约定。
CodeInText
:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、伪 URL、用户输入和 Twitter 句柄。下面是一个例子:“在前面的例子中,我们将一个无符号整数(uint
)声明为foo
,并将它的可见性设置为public
。”
代码块设置如下:
function foo() public returns
(string) {
return "Hello";
}
function bar() external {
foo_ = foo(); //Not valid
foo_ = this.foo(); //Valid
}
当我们希望将您的注意力吸引到代码块的特定部分时,相关的行或项目以粗体显示:
function foo() public returns
(string) {
return "Hello";
}
function bar() external {
foo_ = foo(); //Not valid
foo_ = this.foo(); //Valid
}
任何命令行输入或输出都按如下方式编写:
$ geth --testnet --syncmode "light" --rpc --rpcapi db, eth, net, web3, personal, admin --cache=1024 --rpcport 8545
Bold** :表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。这里有一个例子:“现在它将打开 Chrome 网络商店。之后,点击添加到 Chrome 按钮。”
警告或重要提示如下所示。
提示和技巧是这样出现的。
取得联系
我们随时欢迎读者的反馈。
总体反馈:如果您对这本书的任何方面有疑问,请在邮件主题中提及书名,并在customercare@packtpub.com
发送电子邮件给我们。
勘误表:虽然我们已经尽力确保内容的准确性,但错误还是会发生。如果你在这本书里发现了一个错误,请告诉我们,我们将不胜感激。请访问 www.packt.com/submit-errata,选择您的图书,点击勘误表提交表格链接,并输入详细信息。
盗版:如果您在互联网上遇到我们作品的任何形式的非法拷贝,如果您能提供我们的地址或网站名称,我们将不胜感激。请通过 copyright@packt.com 的联系我们,并提供材料链接。
如果你有兴趣成为一名作家:如果有你擅长的主题,并且你有兴趣写书或投稿,请访问 authors.packtpub.com。
复习
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?潜在的读者可以看到并使用您不带偏见的意见来做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们的书的反馈。谢谢大家!
更多关于 Packt 的信息,请访问packt.com。