跳转至

前言

区块链技术在第一次遇到时可能会非常令人生畏。但实际上,这项技术本身只是三个流行概念的结合:密码学、对等网络和博弈论。虽然这些乍一看似乎很复杂,但对这三个必需概念的基本理解将帮助您建立一个坚实的基础,一旦完成,就可以作为在高级水平上理解区块链技术的基石。

这本书帮助你理解区块链技术的概念,并向你介绍加密货币,以及几个区块链平台。它还对该技术的潜力和问题进行了深入的分析,以便在区块链的实施真正增加价值的地方可以采用该技术。

这本书是给谁的

这本书是为那些希望深入区块链技术领域的人设计的。虽然这本书为初学者建立了区块链技术的基础,但它也可以被区块链开发者用作快速参考指南,并获得关于该技术的一些令人兴奋的主题的更深入的见解。

这本书涵盖的内容

第 1 章简介、通过探讨一些基本话题,如区块链技术的定义和历史、背后的动机、特点以及不同类型的区块链,对其进行了概述。

第 2 章一点密码学,探讨了与区块链技术相关的密码学基础,以及一些实际例子。

第三章,【区块链中的 T2】密码学,解释了区块链技术如何利用密码原语,比如哈希函数数字签名

第四章,【区块链中的 T2】联网,引入点对点联网概念,实现区块链网络的去中心化。本章还将借助一个示例应用程序介绍如何在分散式网络中维护区块链。

第 5 章加密货币,通过探索比特币的概念,深入区块链技术的原始和最佳实现,并帮助区分加密货币与传统数字货币。

第 6 章深入区块链——存在证明,通过实现一个用例:存在证明,介绍使用多链区块链框架的去中心化应用开发。

第 7 章深入探讨区块链——所有权证明,通过在 NEO 和以太坊区块链平台上实现一个用例,引入智能合约的概念,深入探讨去中心化应用程序开发,特别关注所有权证明。

第八章区块链项目,通过对一些知名的区块链项目的归类和了解,探讨区块链领域的机会。

第 9 章区块链优化和增强,重点介绍可以优化区块链应用的技术,同时介绍现有区块链应用的一些增强功能,以便添加有趣的功能。

第 10 章区块链安全,通过指出可能的攻击以及如何预防攻击,深入了解区块链技术所需的安全级别。

第十一章什么时候不该用区块链?,列出了区块链技术的特点,并解释了在为区块链应用选择正确的使用案例时需要考虑的几个决策模型。

第 12 章区块链用例,在决策模型的帮助下分析了一系列真实的区块链用例,并着眼于为这些用例创建实现。

从这本书中获得最大收益

虽然这本书建立了一个关于密码学和对等网络概念的知识基础,但实际的 Python 编程经验和理论网络知识将是一个优势。

本书中使用的大多数应用程序可以在任何平台上执行,所示的例子是使用 Ubuntu 16.04.5 LTS 执行的。

你应该能够在软件包管理工具的帮助下轻松安装应用程序,比如 Ubuntu 上的 APT 或者 Mac 或 Windows 上的等效工具。

由于大部分应用程序源代码都托管在 GitHub 上,所以您应该熟悉 Git 版本控制系统。

下载示例代码文件

你可以从你在www.packt.com的账户下载本书的示例代码文件。如果你在其他地方购买了这本书,你可以访问 www.packt.com/support 的并注册,让文件直接通过电子邮件发送给你。

您可以按照以下步骤下载代码文件:

  1. www.packt.com登录或注册。
  2. 选择支持选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书名称,然后按照屏幕指示进行操作。

下载文件后,请确保使用最新版本的解压缩或解压文件夹:

  • WinRAR/7-Zip for Windows
  • zipeg/izp/un ARX for MAC
  • 用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 的 https://GitHub . com/packt publishing/Foundations-of-block chain 上。如果代码有更新,它将在现有的 GitHub 库中更新。

我们在也有丰富的书籍和视频目录中的其他代码包。看看他们!

下载彩色图像

我们还提供了一个 PDF 文件,其中有本书中使用的截图/图表的彩色图像。可以在这里下载:https://www . packtpub . com/sites/default/files/downloads/9781789139396 _ color images . pdf

使用的惯例

本书通篇使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、伪 URL、用户输入和 Twitter 句柄。下面是一个例子:“将下载的WebStorm-10*.dmg磁盘镜像文件挂载为系统中的另一个磁盘。”

代码块设置如下:

from Crypto.Hash import SHA256

hash_object = SHA256.new(data=b'First')
print(hash_object.hexdigest())

当我们希望将您的注意力吸引到代码块的特定部分时,相关的行或项目以粗体显示:

from Crypto.Hash import SHA256

hash_object = SHA256.new(data=b'First')
print(hash_object.hexdigest())

任何命令行输入或输出都按如下方式编写:

$  curl -X POST http://localhost:10332 -H 'Content-Type: application/json' -d '{ "jsonrpc": "2.0", "id": 5, "method": "getversion", "params": [] }'

Bold :表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个例子:“通过改变报头中一个名为 nonce 的可变字段来创建一个不同的报头。”

警告或重要提示如下所示。

提示和技巧是这样出现的。

取得联系

我们随时欢迎读者的反馈。

总体反馈:如果您对这本书的任何方面有疑问,请在邮件主题中提及书名,并在customercare@packtpub.com发送电子邮件给我们。

勘误表:虽然我们已经尽力确保内容的准确性,但错误还是会发生。如果你在这本书里发现了一个错误,请告诉我们,我们将不胜感激。请访问 www.packt.com/submit-errata,选择您的图书,点击勘误表提交表格链接,并输入详细信息。

盗版:如果您在互联网上遇到我们作品的任何形式的非法拷贝,如果您能提供我们的地址或网站名称,我们将不胜感激。请通过copyright@packt.com联系我们,并提供材料链接。

如果你有兴趣成为一名作家:如果有你擅长的主题,并且你有兴趣写书或投稿,请访问 authors.packtpub.com。

复习

请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?潜在的读者可以看到并使用您不带偏见的意见来做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们的书的反馈。谢谢大家!

更多关于 Packt 的信息,请访问packt.com


我们一直在努力

apachecn/AiLearning

【布客】中文翻译组