前言
以太坊是构建区块链应用程序最常用的平台之一。这是一个应用程序的分散平台,可以完全按照编程运行,不受欺诈、审查或第三方干扰的影响。
这本书将让你深入了解区块链是如何工作的,这样你就可以发现整个生态系统、核心组件和实现。您将从学习如何配置和使用各种以太坊协议来开发 dApps 开始。接下来,您将学习如何编码和创建强大的智能契约,这些契约可以随着 Solidity 和 Vyper 而扩展。然后,您将探索 dApps 架构的构建模块,并通过各种现实世界的示例深入了解如何创建自己的 dApp。这本书甚至将解释如何使用所需的最佳实践和技术在多个以太坊实例上部署您的应用程序。接下来的几章将深入探讨高级主题,比如使用以太坊构建高级智能契约和多页面前端。除了跨社交媒体和电子商务等各种领域的几个用例之外,您还将学习如何实现机器学习技术来构建分散的自主应用程序。
到本书结束时,你将拥有自信地构建分散式自治应用程序所需的专业知识。
这本书是给谁的
这本书是为任何想要构建快速、高度安全和事务性分散应用程序的人准备的。如果你是一个以太坊开发者,想要完善你现有的构建强大的区块链应用程序的技能,那么这本书就是为你准备的。以太坊和区块链的基础知识是理解本书所涵盖的概念所必需的。
这本书涵盖的内容
第 1 章,区块链架构,涵盖了基本的区块链知识,这在开始确保我们理解将在整本书中使用的需求之前是必不可少的。我们将从头开始讲述以太坊的历史,并在更复杂的发展主题中结束。
第二章,以太坊生态系统,向我们展示了区块链的基础设施和设置。我们将对区块链的工作方式进行更深入的分析,以便我们了解整个生态系统。我们还将了解以太坊组件及其各种实现。
第 3 章,以太坊资产,向我们展示了在开发以太坊协议应用之前,如何配置和使用以太坊协议的各种实现。有几种风格,可以在开发、测试和部署中互换使用。稍后,我们将查看修改后的 Ghost 实现、计算和图灵完整性,以便更好地理解以太坊工作流。理解和使用以太坊生态系统中的工具和服务也很重要。
第 4 章,掌握智能合约,教给我们超越正常用例的高级智能合约。它很有用,因为它将帮助我们理解先进的技术、方法和工具,以提高我们的可靠性和 Vyper 编码技能,从而创建强大的智能合约。
第 5 章、掌握 dApp,向您介绍去中心化 app (dApp)架构及其构建模块。然后,我们将从头开始一步一步地创建一个 dApp,从一个空白的应用程序到编写智能契约、创建加密钱包,并对它们进行单元测试。我们将向您展示如何为这些应用程序创建专门的 ui。我们还将向您展示如何使用其他测试服务,比如 Truffle,来构建无缝的 dApps。然后,我们将向您展示如何在多个 Ethereum 实例上部署您的应用程序,例如 testrpc、private chain、test chain 和 main net。
第 6 章、工具、框架、组件和服务,向我们介绍了以太坊开发人员可以用来创建强大的 dApps 和智能合约的几个重要工具,这些工具可以扩展,并且足够安全,可以服务数百万潜在用户。
第 7 章,Testnet 上的部署,向我们展示了如何在 Testnet 上部署我们的区块链应用。以太坊区块链应用可以部署在 Rinkeby-testnet 上。Testnet 提供了测试集合,开发人员可以用它来测试所有智能契约和 dApps 的行为。气体计算和其他因素可以在 testnet 上测试。
第 8 章,各种 dApps 集成,继续向您展示如何利用工作流创建更高效的 dApps,帮助我们更快更安全地开发代码。我们将理解与分散式 web 应用程序开发相关的所有方面,包括使用 React 的 web 客户端代码;使用 Node.js、Solidity 或 Vyper 的后端代码;并使用 web3.js 进行 dApp 通信。
第 9 章、分散式交易所工作流程,向您展示了如何通过理解这种复杂系统的错综复杂来创建复杂的分散式交易所 ( DAXs ),这种简单易懂的语言详细介绍了每一部分。
第十章,以太坊区块链上的机器学习,使用区块链的智能合约自动验证解决方案,因此不会有解决方案是否正确的争论。提交解决方案的用户不会有交易对手风险,他们的工作不会得到报酬。任何拥有数据集的人都可以轻松创建合同,甚至可以通过软件代理以编程方式创建。
第 11 章,创建基于区块链的社交媒体平台,讲述了创建一个可靠的去中心化社交媒体平台所需的步骤,该平台使用 Swarm 进行资源(如视频)的分布式存储,同时利用区块链的不可信特性来保证每个人的隐私。
第 12 章,创建一个基于区块链的电子商务市场,经历了建立一个购买、销售、租赁和交换商品的分散市场所需的步骤,类似于 OpenBazaar。我们将建立一个独特的市场,并考虑到可扩展性。
第十三章,创建一个去中心化的银行和借贷平台,创建一个去中心化的银行,使用以太坊在一个安全的环境中管理和存储密码。我们将使用冷藏来增加安全性,并为贷款系统提供抵押违约保护。这是一个在线章节,可以在以下链接找到:https://www . packtpub . com/sites/default/files/downloads/Creating _ a _ Decentralized _ Bank _ and _ Lending _ platform . pdf。
从这本书中获得最大收益
你需要对区块链和以太坊有基本的了解。
下载示例代码文件
你可以从你在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/PacktPublishing/Mastering-Ethereum。如果代码有更新,它将在现有的 GitHub 库中更新。
我们在也有丰富的书籍和视频目录中的其他代码包。看看他们!
下载彩色图像
我们还提供了一个 PDF 文件,其中有本书中使用的截图/图表的彩色图像。可以在这里下载:http://www . packtpub . com/sites/default/files/downloads/9781789531374 _ color images . pdf。
使用的惯例
本书通篇使用了许多文本约定。
CodeInText
:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、伪 URL、用户输入和 Twitter 句柄。这里有一个例子:“他们使用一个名为0x.js
的库,允许你用一个高级的、干净的界面与继电器进行交互,使用起来感觉很棒。”
代码块设置如下:
pragma solidity 0.5.0;
contract Example {
uint256 myStateVariable;
string myOtherStateVariable;
function example(){
uint256 thisIsNotAStateVariable;
}
}
当我们希望将您的注意力吸引到代码块的特定部分时,相关的行或项目以粗体显示:
function example(string memory myText) public {
require(bytes(myText)[0] != 0);
}
任何命令行输入或输出都按如下方式编写:
$ git clone https://github.com/merlox/dapp
Bold :表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个例子:“进入水滴部分,点击创建水滴。”
警告或重要提示如下所示。
提示和技巧是这样出现的。
取得联系
我们随时欢迎读者的反馈。
总体反馈:如果您对这本书的任何方面有疑问,请在邮件主题中提及书名,并在customercare@packtpub.com
发送电子邮件给我们。
勘误表:虽然我们已经尽力确保内容的准确性,但错误还是会发生。如果你在这本书里发现了一个错误,请告诉我们,我们将不胜感激。请访问 www.packt.com/submit-errata,选择您的图书,点击勘误表提交表格链接,并输入详细信息。
盗版:如果您在互联网上遇到我们作品的任何形式的非法拷贝,如果您能提供我们的地址或网站名称,我们将不胜感激。请通过copyright@packt.com
联系我们,并提供材料链接。
如果你有兴趣成为一名作家:如果有你擅长的主题,并且你有兴趣写书或投稿,请访问 authors.packtpub.com。
复习
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?潜在的读者可以看到并使用您不带偏见的意见来做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们的书的反馈。谢谢大家!
更多关于 Packt 的信息,请访问packt.com。