跳转至

工作流设置和思考区块链

区块链是加密货币领域的新时尚;我们见证了比特币的日益流行。以太坊使用类似比特币的技术,它交易的硬币被称为以太。除了智能合同之外,这两者之间没有太大的区别,智能合同只不过是使用以太坊虚拟机 ( EVM )编写的代码,它可以自动执行不可变账本中的协议。稍后我们会对此有更多的了解。为了更深入,首先我们将查看一些用例,它们非常有趣。接下来,我们将提供一个以太坊区块链和区块链的概述。我们将看看区块链的一些优点和局限性。然后,我们将开始建立一个有效的工作流程,这样我们就可以进入下一章,而不会受到任何阻碍。

我们将在本章中讨论的主题如下:

  • 基于以太坊的项目
  • 区块链和以太坊概述
  • 优点和局限性
  • 建立高效的工作流程

基于以太坊的项目

以太坊就像比特币,不过是用来做代码的!它是智能合约的区块链,它在区块链中存储不可变的代码和逻辑。不可变在这里是一个非常重要的词。这就是你需要了解的以太坊的全部内容。那么,现在有什么可能呢?下面几节我们来看看。

灵知

Gnosis 是市场驱动的预测技术。它是基于经过验证的科学研究。它有自己的平台,被称为 Gnosis 平台,你可以在其上构建自己的平台。它主要进行交易预测。并且正确的预测被给予因不正确的预测而受到威胁的令牌。访问https://gnosis.pm/进入灵知世界。

它的工作方式是你交易预测或者你赌预测。以下是 Gnosis 的首页:

Gnosis 首页

在前面的截图中,请注意他们主页上的问题。迪拜最大的跨年烟火表演世界纪录会被打破吗?你可以投票赞成或反对,通过投票,你的令牌处于危险之中,然后神谕会告诉你事件是否发生。区块链会检查神谕。神谕只不过是与外部元素交互的智能契约。它们可以存储和检索数据——这正是以太坊交易需要做出决策的地方。神谕是一个可靠的来源,在与这个可靠的来源核实后,你可以在区块链中确定该事件是否真的发生过,并且你可以绝对肯定这一点。

下图准确解释了这是如何发生的:

Gnosis 平台层

第一血统

第一滴血堪比灵知;是为了电子竞技。如果你是游戏玩家,你可以用代币注册比赛。您可以将代币放在赌注上以赢得代币,您可以将自己放在其他团队或人员的池中排队,并且您可以与他们比赛。你甚至可以参加锦标赛。游戏的获胜者得到代币。甲骨文是用来决定比赛结果的。访问 http://firstblood.io 访问 firstblood。

动态的

这是一家点对点的保险公司,意味着不再有中间商。目前,他们正致力于失业保险,其中你得到支付失业!你只需要向人们展示你正在积极地找工作。他们验证这一点的方式是使用类似 Gnosis 和 FirstBlood 的 Oracle,但他们用它来检查 LinkedIn,并验证你一直在申请工作。

要了解更多关于 Dynamis 的信息,请访问www.dynamisapp.com

你也可以访问http://blog.dynamisapp.com/p2p-insurance-solutions/来深入了解。

害羞的音乐

这基本上是一个艺术家的分散音乐商店!我们都知道 iTunes、Spotify 等等。这些公司坐在艺人和粉丝之间,但粉丝无法马上知道艺人实际上从每笔销售中赚了多少钱。Ujo Music 通过分散音乐商店来解决这个问题。没有更多的中间人,这意味着他们是艺术家和范之间的桥梁。这当然意味着它保证了艺术家更多的权力和金钱。无需担心授权问题,它只向经过验证的用户提供音乐服务。要访问 Ujo 音乐,请访问https://ujomusic.com/

截图中描述了它的工作方式;他们有多层,他们有以太坊的许可和支付。他们在同样基于以太坊的 uPort 上有一个持久的身份:

害羞的音乐

文件本身存储在去中心化的文件存储中,星际文件系统 ( IPFS ),元数据使用同样构建在以太坊上的 constellate。

下一个项目是我的最爱之一。

假人

是一台去中心化的超级计算机!它做链外计算。链外计算是不发生在区块链上的计算;计算在区块链之外进行。然后在链上,它将验证这些计算。这意味着您可以出租多余的计算能力,或者在需要时租用额外的计算能力。你可以为 3D 渲染、计算化学、人工智能机器学习——任何你喜欢的东西——这样做。要游览假人,请前往 https://golem.network/

在下面的截图中,你可以看到假人图形用户界面。在左边,你可以看到一个基本的钱包;您还可以看到使用了多少 CPU、RAM 和磁盘空间。在右侧,您可以看到三个任务的一点概念证明,这是三个 Blender 任务,在本例中是 3D 渲染任务:

假人桂

区块链和以太坊概述

在这里,我们将提供一个以太坊和区块链的概述。我们将深入了解一下,这样你就能更好地理解以太坊和区块链是如何制造这些伟大的产品的——我们看到的这些伟大的用例是可能的。

从比特币到以太坊

比特币是第一个区块链,但比特币只用于支付。人们开始发现比特币可以用于其他场景;我们把这个叫做色币。比特币有一个令人惊讶的开放设计,一个叫 Vitalik Buterin 的家伙决定开始在比特币区块链的基础上开发以太坊。但是,由于比特币的局限性,以太坊现在有了自己的区块链。

下表显示了比特币和以太坊的区别:

| 比特币 | 以太网〔t1〕 | | 用于付款 | 用于代码和逻辑 | | 这是一种数字货币 | 这是一个智能合同平台 | | 平均阻塞时间/事务处理时间为 10 分钟 | 平均阻塞时间/事务处理时间仅为 17.5 秒 | | 这不是图灵完成 | 这是图灵完成 |

比特币和以太坊都是区块链。它们都严重依赖于私钥/公钥加密,尽管比特币主要是一种支付形式,但它们都可以用于转移价值,尽管以太坊区块链会用逻辑处理价值。两者都是完全不可变的。

以下是区块链需要记住的事情:

  • 当事情发生在区块链,那就是最终决定。这意味着你做的任何事情都不能回滚,所以即使你有代码,你也必须找到特殊的方法来更新它。
  • 您的私钥是您的数字身份,所以不要丢失它!
  • 区块链不是独立的;它通常与其他技术结合使用,主要是前端技术或后端技术。

优点和局限性

现在我们已经了解了区块链的概况,接下来我们将了解区块链的一些优势。我们还将了解开发区块链应用程序时的一些限制,以及我们如何克服这些限制或如何解决它们。

区块链和以太坊的好处

以下是区块链的一些好处:

  • 分散
  • 不信任——你不必信任或把所有的钱都放在一个失败点上
  • 这是非常划算的
  • 它还可以成为物联网和电动汽车的主干,电网,或智能手机或电子身份证中的分散身份

区块链和以太坊的局限性

以下是使用区块链时可能会遇到的一些困难:

  • 如果你试图在不需要的地方使用区块链,代价可能会很高。
  • 区块链不太擅长处理私人数据,因为区块链应该是公开的。
  • 有时候,需要集权,而区块链总是分权的;那不符合。
  • 大多数区块链并不能很好地适应高使用率。
  • 不建议存储大文件,因为在公共区块链上,更多的计算意味着更多的能力和更多的钱;在一个私人的区块链,这意味着更多的权力——你需要在你的基础设施上投资更多,所以这也意味着更多的钱。

克服限制

有时候,你就是无法克服限制,因为你必须在你需要的地方使用区块链。有些事情是可以克服的,比如在公共链上存储私有数据。这可以通过给数据增加一些额外的加密来实现。你可以在 IPFS 上存储大文件,它也是分散的——它不是区块链,但它是分散的文件存储,它与以太坊配合得非常好。以太坊的分片解决了可伸缩性的问题:分片就是把账户的空间,比如合约,分割成更小的子空间。如果你需要,也可以使用私有链,如摩根大通的 Quorum、Monax 和 Bletchley。它们都是基于以太坊的。

设置工作流

在这里,我们将做一些工作流设置,以便我们可以开始开发。

要求

以下是我们设置工作流所需的东西:

  • 谷歌浏览器。
  • MetaMask,这是一个 Chrome 扩展。我们将使用它来连接和测试区块链。
  • 节点包管理器 ( NPM )。
  • 块菌,这是我们的第一个框架。我们将使用它来开发我们的第一个分散式应用程序。
  • 以太坊-JS ganache-cli,这是一个测试区块链。

入门指南

按照以下步骤设置工作流:

  1. 去拿 NPM。它是 Node.js 的一部分,你可以在www.npmjs.com/get-npm获得,如下截图所示:

获得 NPM 奖

  1. 选择其网页上显示的最新版本:
  2. 点击获取 CHROME 扩展。
    • 然后点击添加到 Chrome。
  3. 我们将使用前面的工具来测试我们的区块链应用程序。一旦你安装了它,一个新的标签将打开,并有一个视频深入解释如何使用它和它是什么。
  4. 在本书中,你要记住,你可以连接到主网络和三个测试网络,但你也可以建立自己的网络,自己的区块链,并在其上运行。以下截图显示了这一点:

元掩码主网络

  1. 安装名为ganache-cli的以太坊区块链模拟器。
  2. 这可以按照下面的屏幕截图中的说明来完成:

安装以太坊区块链模拟器的命令

  1. 您可以将它作为一个节点包安装,只需复制这个命令并将其粘贴到您的终端中。将它粘贴到终端后,它将开始安装,如下所示:

安装以太坊模拟器

一旦这样做了,它会告诉你它成功了;暂时退出,因为我已经重新安装了它。您可以通过在命令提示符下键入ganache-cli来验证它,并验证它是否运行。如果您正确安装了模拟器,您将获得以下输出:

以太坊模拟器

  1. 安装和下载松露。
  2. 块菌也是来自truffleframework.com的一个简单的节点包,你可以通过复制并粘贴一个命令到你的终端来安装,如这里所示:

安装 Truffle 的命令

  1. 安装完成后,您可以通过键入truffle进行验证,如下图所示,现在您可以使用以下任何一个命令:

松露

  1. 你可以使用init来初始化一个新的项目,这将在下一章中介绍。因此,我们已经成功地完成了安装。

摘要

我们已经讨论了以太坊上运行的不同项目,并对区块链有了一个大致的了解;在此之后,我们继续讨论它的好处和局限性,以及如何克服这些局限性。最后,我们为自己的以太坊工作流创建了一个设置。

在下一章,我们将使用以太坊开发第一个简单的分散支付应用程序。


我们一直在努力

apachecn/AiLearning

【布客】中文翻译组