跳转至

以太坊资产

在这一章中,将向您介绍不同的以太坊协议实现,以便您能够更好地理解如何以多种不同的方式集成区块链。在学习了协议实现之后,我们将继续学习 INFURA、wallets 和去中心化自治组织——也被称为DAOs——这样你将学习如何创建生活在区块链上的商业网络,而不受中央政府的限制。我们将讨论几个块浏览器,以了解如何检查您的交易,以便您可以分析在区块链上传智能合约时会发生什么。最后,您将了解关于区块链实施的一些重要问题,以帮助您解决在某个时候最有可能面临的常见问题。

在本章中,我们将讨论以下主题:

  • 以太坊协议实现
  • INFURA 要点
  • 分散的自治组织
  • 杂记和关注
  • 创建你自己的私人以太网
  • 为以太坊选择钱包
  • 使用以太网扫描进行交易
  • 创建帐户

以太坊协议实现

以太坊是一个开源系统,可以用不同的语言实现,为人们提供使用他们喜欢的工具进行交互的选项。这些全节点实现包括 Geth 和奇偶校验。在这一节中,我们将探讨它们之间的区别以及使用它们的最佳场景。

协议实现

正如您在上一段中所读到的,我们将讨论的以太坊实现有 Geth、Parity、Mist 和 Embark。为什么只有这四个?这是因为它们是最受欢迎的实现,使您能够完全执行区块链的所有功能。采矿、进行交易、下载整个区块链、与您部署的合同进行交互以及创建帐户都是可能的。

理解 Geth

Geth,也称为 Go 以太坊,是最流行的以太坊实现,它允许您执行各种各样的任务。我们将在接下来的小节中介绍如何执行其中的大多数命令,以帮助您理解如何执行每个任务所需的每个命令。

您可以在 macOS 上使用以下命令轻松安装 Geth:

brew update
brew install ethereum
brew upgrade ethereum

或者,如果你使用的是 Windows 或 Linux,你可以去geth.ethereum.org/downloads/为你的系统获取一个可执行文件。在这两种情况下,安装后在您的终端或命令行中都可以使用geth命令。

创建帐户

您可以使用 Geth 创建无限的帐户,因为它们是由一种称为Rivest sha mir ad leman(RSA)的算法生成的,该算法可以离线创建公钥和私钥。可能的组合数量如此之大,以至于几乎不可能生成与另一个用户完全相同的帐户。要使用 Geth 生成帐户,请运行以下命令:

$ geth account new

这将要求您输入密码以确保您的凭据安全。然后,您可以使用以下代码管理您的帐户:

$ geth account list
$ geth account update <your-accounts-address>

update命令用于更改特定帐户的密码,以便您可以在决定解锁时轻松解锁。您可以使用此命令删除现有密码。

您也可以使用以下命令解锁您的 Geth 帐户:

$ geth --unlock <your-accounts-address> --password <your-password> 

这实际上解锁了您的 Geth 帐户,因此您可以直接通过控制台发送交易。

请注意,您也可以在没有密码的情况下创建帐户,只需在被询问时按下 Enter ,无需输入任何内容。

下载区块链

Geth 的主要功能是下载区块链,这样您就可以在您的设备上拥有一个完整的节点,用于您可能需要的任何用途。为此,请在您的终端上执行以下命令:

$ geth

不带参数运行geth开始自动下载默认目录下最新版本的区块链,RAM 默认 1 MB 左右。您可以使用此标志更改下载区块链的位置:

$ geth --datadir "<your-location>"

要更改用于下载区块链的 RAM 部分,请使用此标志:

$ geth --cache=1024

该标志中的数字是您希望专用于该进程的 RAM 数量。你给它的越多,它下载以太坊主链每个组件的速度就越快。尽管如此,要获得完整的数据链还需要几个小时,因为它包含了过去交易的大量信息。请记住,连锁店永久存储每一笔交易,没有删除过去的选项。

下载链后,您可以使用以下命令可视化节点指标:

$ geth monitor

用你的 CPU 挖掘

Geth 还能够使用你的 CPU 独自挖掘以太网,与使用你的显卡或专用集成电路挖掘以太网相比,这不是一个有效的过程。尽管如此,在需要低资源挖掘的不同情况下,例如使用物联网设备,将它添加到该工具中可能是有用的。

要使用 Geth 进行挖掘,请执行以下命令:

$ geth --mine

它将开始下载和同步你的链,如果它还没有同步。设置好您的etherbase后,您将能够收到资金,这可以通过以下方式轻松完成:

$ geth --etherbase 0

最后一个数字表示将使用列表中的哪个帐户。您可以使用geth account list命令查看您的帐户。

平价

奇偶校验是最发达的以太坊协议实现之一,因为它为您提供了一个令人惊叹的界面,您可以从该界面使用所有功能,包括部署合同和与区块链交互。

要安装奇偶校验,请在 Linux 或 Mac 上运行以下命令:

bash <(curl https://get.parity.io -L)

它会自动下载最新版本,编译它,并让所需的组件立即工作。不过,对于 Windows,你必须从他们的官方网站获取可执行文件,这里是:www.parity.io/ethereum/

下载区块链

在能够与奇偶校验交互之前,您必须下载区块链,只需执行以下命令即可完成:

$ parity

安装完成后,你就可以访问localhost:8080网站上的网络界面,它会向你展示所有你可以选择的选项。

创建帐户

要创建具有奇偶校验的帐户,您只需单击 accounts 选项卡,然后选择主选项卡正下方的+ ACCOUNT,即可生成一个新帐户,如以下屏幕截图所示:

用你的 CPU 挖掘

奇偶校验可以与其他 GPU 挖掘器配合使用,这些挖掘器将为您提供更好的哈希,因此与使用 CPU 进行挖掘相比,您可以从一开始就获利。然而,您可以通过运行以下命令来利用您的处理器进行挖掘:

$ parity --author <your-ethereum-address-without-0x>

然后你会开始在那个地址产生微量的乙醚。

每个协议的最佳方案

Geth 和 Parity 都是很棒的工具,可以为各种分散式应用程序和智能契约开发框架做同样的工作。然而,在一些特定的用例中,一个可能比另一个更好。

智能合同开发

下载完整的以太坊主链后,它们都提供了一种简单的方式来部署智能合约并与之交互。尽管如此,奇偶校验是更好的选择,因为它提供了一个专用的选项卡,让您可以在一个易于使用的 IDE 中编写智能合约代码。您可以将智能合约编译为特定版本,保存它们,并将其部署到网络中。更好的是,它会自动突出显示你的代码,这在大多数 Solidity 和 Vyper 编辑器中是很少见的。

另一方面,Geth 使用命令行界面,这使得智能合约开发更加困难。

就我个人而言,我发现奇偶校验的界面对于任何以太坊开发者来说都是一个极好的工具。它很快,看起来很棒,你可以完全控制自己的节点,感觉很好,很容易使用。

管理账户

在管理多个以太坊账户时,可以使用奇偶校验提供的 web 界面,也可以使用 Geth 的命令行工具。在这种情况下,两者都是用于不同目的的绝佳选择:

  • 如果您正在管理多签名钱包,请使用奇偶校验,因为它有一个内置部分来管理这些类型的复杂钱包,这是 Geth 所没有的。

  • 如果您需要一个基于命令行界面的更简单的系统,该系统可以为您提供更快的操作,因为您不需要打开 web 界面来与它们进行交互。您不必等待这种 UI 所暴露的微小但明显的加载时间。

其他使用案例

当涉及到不同的情况,如采矿,下载区块链,转移资金,并探索您当地的区块链的历史,决定哪一个是更好的选择取决于您。两者是等价的,会给你相同的结果,只是有一些小的不同。

您已经了解了这些以太坊实现可以为您做的主要特性。我们看到了如何使用 Geth 和奇偶校验,它们如何与区块链交互,以及一些您可以直接应用于自己的个人项目的真实命令。记得看看奇偶校验的神奇智能合同代码编辑器:你会爱上它。

INFURA 要点

INFURA 是一种流行的技术,可以连接到区块链,而不必下载它所包含的几百千兆字节,因为它免费为您提供完整的节点。

理解信息

INFURA 通过向数百万用户提供现成的以太坊实例,帮助他们连接到区块链。这是最大的项目之一,旨在彻底改变以太坊的采用,因为每个人都可以立即连接到以太坊来处理交易并与区块链互动。

它支持 MetaMask 等流行应用程序从您的浏览器进行交易。这就是 ICOs 如此受欢迎的原因之一——因为人们找到了一种简单的方法来与区块链进行交互,以便利用 MetaMask 和 INFURA 的基础设施轻松执行交易。您可以在自己的应用程序中自由使用 INFURA,只需简单地使用一个到您项目的正确网络的链接:

现在,这些都是免费的网址,但它们的请求数量是有限的。如果你想不受限制地访问区块链,你必须在 https://infura.io 上创建一个帐户,你将获得一个唯一的令牌 ID,你可以不受限制地根据自己的需要使用它。

INFURA 还与 IPFS 合作,这是一种用于分散存储的协议,类似于 torrent,这样你就可以在分散的网络中上传内容,而无需集中化。

INFURA 的内部运作

从表面上看,INFURA 提供了一个干净的 API,许多区块链开发者可以免费将其用于他们的分散式应用程序,以提高以太坊的采用率。

在幕后,他们有一组安装了最新版以太坊区块链的计算机,每当用户产生大量交易时,这些计算机就会下载并同步资源需求。下图显示了它的工作原理:

你不必自己下载区块链,而要花费无数千兆字节和数小时来下载最新的链,你只需连接到 INFURA,在那里你可以不受限制地立即访问各种以太坊链。

使用 INFURA 的仪表板

当您在 INFURA 上注册为新用户时,您将可以访问仪表板,在那里您可以创建项目以查看有关您的项目 ID 的统计数据和详细信息:

首先,您要做的是通过单击 Create New Project 按钮创建一个新项目,这样您就可以获得一个可供 dApps 连接到正确的区块链的端点,无论它是 Ropsten、mainnet、Rinkeby 还是 Kovan。单击该按钮后,系统会要求您为其命名,并会创建一个项目:

如果您单击查看项目,您将看到一个页面,其中包含修改该端点的安全性及其名称的设置,以及删除它的选项:

如果您单击查看统计数据,您将看到一个页面,其中包含大量关于请求数量和带宽使用情况的信息,以及关于一天中使用终端的时间的统计数据,以及其他有价值的信息:

除了这些按钮之外,您还有一些可点击的链接,在那里您可以快速访问文档和 INFURA 的状态,并在需要时获得支持:

为 INFURA 提供动力的基础设施确实是一个有趣的提议,由 ConsenSys 的家伙们提出,他们创建了一个庞大的连接用户网络,这些用户希望参与区块链革命,而没有下载如此大的区块链所需的过多时间和存储需求。

这是向所有即将利用这项激动人心的技术的新用户提供开放访问的最佳方式之一。它也完全符合区块链开放技术的核心理念。然而,如果太多的应用程序和用户最终依赖它,这可能会成为一个问题,使它成为一个集中的故障点,如果服务失败,可能会禁用数千个 dApps。为了避免这样的悲剧场景,请记住为生产应用程序设置自己的以太坊节点,以增加去中心化。

分散的自治组织

分散自治组织,也被称为 DAOs ,是区块链的一些最佳用例,因为它们是信任和旧系统之间的完美链接,应该为现代而更新。

解释 DAOs

A DAO 的目标是成为企业决策的主要场所。它们是传统公司的分散版本,通过与利益相关者和每个 DAO 的关键组件进行讨论来做出决策。简单地说,他们利用以太坊区块链不可信任的本质来组建一个拥有所有可能性的合法公司。

他们依靠智能合约来提供硬编码的功能,用户可以通过多签名钱包做出决策并达成协议。多签名钱包类似于以太坊账户,它们存储以太网并且能够进行转账;然而,底层技术是由智能合同组成的,它迫使成员通过用自己的地址签名来同意每个决定。

它们被称为自主是因为它们在区块链上自行运行,不需要任何人来维护它们,相比之下,传统公司必须研究每个组件的演变,以避免法律后果和结构问题。

在 DAO 中操作

创建不受政府或外部实体控制的不可阻挡的组织的想法比它看起来更容易理解。这就是为什么我准备了一个简单的图表来显示 Dao 每天正常参与的过程:

每个 DAO 都是独立工作的,每个用户都可以创建主题来投票做出决定。每个代币持有者可以选择根据他或她有多少代币来投票。您拥有的令牌占总令牌的百分比越大,您在组织中获得的决策权就越大。

最初,这不应该是一个问题,因为人们会投票选出对公司最好的结果,但后来它可能会导致集中化问题,少数人最终控制了大多数令牌,从而能够为了个人利益而合作。这类似于 51%攻击,其中整个公司的一部分做出所有决策。

Dao 的工具

您可以编写自己的 DAO 智能契约,为组织成员提供创建带有投票机制的提案的功能,但是已经有一些解决方案可以帮助您简化流程,加快设置时间。

AragonOS 是创建去中心化自治组织最常用的开发框架之一,它为您提供了以下选择:

  • 将您的 DAO 智能合约更新到具有所有改进的最新版本
  • 通过权限控制限制特定用户的访问
  • 在此基础上添加额外的投票应用程序,以扩展功能

其思想是简单地创建 DAO,配置权限,并开始构建组织的组件以达成治理决策。您还可以使用 AragonUI 以一种漂亮而简单的方式与您的组织进行交互。著名的 ICO 后来被黑客攻击,被称为DAO在这样有影响的后果后不可用,所以你不能从他们提供的创建新的去中心化组织的选项中受益。

杂记和关注

以太坊是一个复杂的工具系统,这些工具协同工作以实现一个授权解决方案,帮助成千上万的用户进行分散交易,他们不必信任外部实体的私人数据和滥用规则。这就是为什么对这些内部部门之间的沟通方式有疑问是完全正常的。在这里,我们将为您提供任何用户在开发和使用区块链过程中面临的一些最常见问题的答案,以便您能够将这些新知识与坚实的基础联系起来。

了解以太坊改进建议

以太坊是一种呼吸技术,它随着各种专家产生的新研究而不断改进,从而推动分散技术向前发展。新的变化包含在这个区块链中的方式是通过以太坊改进提案,更好的说法是 EIPs

诸如 ERC20 和 ERC721 之类的标准诞生于 EIPs,分别由数字 20 和 721 标识。这些 EIP 是在位于https://github.com/ethereum/EIPs/issues的官方以太坊 GitHub 知识库中以 EIP 的名字创建的,在这里你可以看到人们为以太坊的核心创新做出贡献,并对系统整体进行改进。事实上,ERC20 标准是从基于以太坊生成唯一加密货币的需求中产生的。

它们是以太坊发展的重要组成部分,提供了非常有趣的功能,使这个区块链成为现实世界中通过技术解决人们问题的最佳用例之一。

块菌和 IDEs 的用法辨析

您可能熟悉称为 Truffle 的框架,它允许您以可持续的方式编写、部署和测试合同,并且在设置后只需最少的配置。它是部署高级和简单项目的最佳工具之一;但是,您可能不希望将它用于特定的用例。

例如,您可能正在处理一个简单的 50 行智能契约,它为您正在构建的应用程序运行一些基本功能。在那些您知道智能合约代码会很小的情况下,您最好使用一个 IDE 来开发您的代码,而不必花费一些宝贵的时间来设置 Truffle 项目。有时,您只需要编写一次智能合约,因为您不打算用新功能升级它。在这些情况下,你应该选择一个 IDE,比如 Remix,以节省时间和简化。

另一方面,当您处理复杂的 dApps 时,应该选择 Truffle,这些 dApps 具有较大的智能契约,需要测试和可维护性,以便它们是安全的。

了解智能合同限制

当您打算从事一个新的基于区块链的项目时,您必须考虑到当前智能合约语言所面临的限制,因为它们将决定您在开发中能够在复杂性方面走多远。请记住,您的 dApp 只与它背后的智能合约一样好,因此考虑智能合约中可以做什么和不可以做什么是有意义的。

作为一名智能合约开发人员,您将面临的一些问题来自于这样一个事实,即您的程序不断缩小,因为您无法创建无限大的智能合约。你的合同有一个固定的上限,所以你必须在这个范围内工作。

在创建复杂的智能合约时,请注意编译器告诉您的内容,以了解您何时遇到了障碍以及如何解决它。你将会面临这样的情况,程序根本不能以你认为可能的方式完成。在这些情况下,您必须理解循环限制、函数成本和智能契约互操作性,才能成功地创建更大的代码。

创建你自己的私人以太网

作为一名区块链开发者,你将不得不创建一个带有自定义属性的以太坊区块链。考虑到侧链开始随着著名的缩放技术等离子体出现,这一点现在变得更加重要。

在 Mac 上设置私人区块链

那么,我们如何创建一个自定义以太坊区块链?这些是 Mac 的说明。我已经试过了,应该对你有用:

  1. 首先,通过执行以下命令安装带有homebrew的以太坊包:
brew install Ethereum

这将需要一些时间来处理,尤其是如果你是第一次执行brew。在我的例子中,它显示的是Updating Homebrew…,过了一段时间,它就被安装了。

  1. 现在,您应该可以访问gethpuppeth命令了。Geth 是主要的命令行界面,用于与以太坊区块链交互,在其他任务中下载主链。Puppeth 是一个建立你自己的私人区块链的工具。

  2. 在设置您的genesis.json文件之前,您需要一个以太坊地址。使用以下命令创建一个帐户:

geth –-datadir .ethereum/ account new
  1. 它会要求你输入密码。只要输入密码,你就会看到你的帐户地址。确保将它复制到安全的地方。
  2. 之后,执行以下命令:
puppeth

这会产生以下输出:

  1. 它可能会要求您管理一个网络。在这种情况下,只需为您要创建的新网络键入一个随机名称:

  1. 然后,选择第二个选项创建一个新的genesis文件:

  1. 从头创建一个新的genesis文件,并选择第一个共识引擎proof-of-work
  2. 现在,它会问你哪些帐户应该预先资助。在这里,您将粘贴之前使用geth命令生成新地址后复制的帐户地址:

  1. 然后,它会询问您是否应该用 1 个 wei 预编译地址。说到那件事。它基本上是编译区块链所需的一串地址。之后,指定一个随机的网络 ID:在我的例子中,我选择了77作为 ID。主以太坊公共网络的 ID 是1,所以你必须选择一个不同的号码来区分你的区块链和他们的。这对于避免重放攻击非常重要,在重放攻击中,恶意用户可以从一个区块链获取交易,然后为了自己的利益在另一个区块链再次执行交易。这个 ID 号恰恰避免了这个漏洞:

  1. 您已经配置并创建了genesis.json文件,该文件将用于随时启动您自己的私人区块链。现在,您必须导出它才能使用它。为此,选择已经执行的puppeth命令的第二个选项Manage existing genesis,然后选择Export genesis configurations:

  1. 然后,它会询问您要将 genesis 文件导出到哪里:

  1. 您将在选定的文件夹中看到您的文件。如果您没有选择,文件将被创建在您的用户文件夹中或您的终端当时所在的位置。这些是您将找到的文件:

  2. 或者你为你的创世网络选择的任何名字。这个文件包含我们前面看到的通用链规范。

  3. 这是 Aleth 以太坊客户端的起源文件。Aleth 只是一个用 C++写的以太坊客户端。它以前被称为 CPP-以太坊。
  4. genesis-harmony.json : Harmony 是另一个用 JavaScript 和 Java 编写的独立客户端。这是与他们的规范兼容的起源文件。
  5. genesis-parity.json : Parity 是一个知名的以太坊客户端,用编程语言 Rust 编写。这是与奇偶校验兼容的起源文件。

  6. 太好了!您现在已经为您的私人以太坊区块链导出了创世纪文件。要初始化区块链,请执行以下命令:

geth --datadir .ethereum/ init <your-genesis-file-location>.json

这将载入创世纪区块链状态,并开始你的私人以太坊区块链。如果您还没有添加前缀,请确保在您的以太坊地址前添加前缀0x。记住这个地址是您之前用geth命令创建的。它会要求您输入您创建帐户时设置的密码。输入并按下回车解锁。如果你不记得你的密码或你的账户,你将不得不用geth命令创建一个新账户,并在被询问时用那个地址创建一个新的 genesis 文件。

差不多就是这样!您现在有了一个工作的私人以太坊区块链,并有了自己的配置参数。这个私人区块链的有趣之处在于,你可以把它连接到混音 IDE 上。这将允许您以极快的速度部署和测试合同。为了能够连接您的私人区块链与 remix IDE,您必须允许 remix 域在您的允许域列表中。只需执行修改后的命令来启动区块链:

geth --nodiscover --datadir .ethereum/ --unlock 0x<YOUR-ETHEREUM-ADDRESS> --mine --rpc --rpcapi eth,net,web3 --rpccorsdomain https://remix.ethereum.org

用我的以太坊地址,看起来是这样的:

geth --nodiscover --networkid 77 --datadir .ethereum/ --unlock 0xf30c37b1e5ed82eebd1a7cf4c66cb9497faa4799 --mine --rpc --rpcapi eth,net,web3 --rpccorsdomain https://remix.ethereum.org

现在,去https://remix.ethereum.org。注意,为了增加安全性,域必须以https开头,以 s 结尾。在那里,选择 Run 选项卡并将环境更改为 Web3 Provider:

它会问你是否确定要连接到以太坊节点。当要求确认 Web3 提供者端点而不修改它时,再次单击 OK 和 OK:

这将允许您访问在您的私有以太坊实例上运行的帐户,以便您可以自由地部署和测试您的智能合约。

在 Windows 上设置私有区块链

我决定忽略 Linux 和其他操作系统,原因很简单,Windows 和 Mac 是最常用的开发平台。因此,在本节中,您将学习如何在 Windows 上创建私有区块链。步骤几乎是相同的,但有一些微妙的差异需要解决,以便您有一个清晰的指南,知道如何做,如果你想建立这种自定义的私人区块链。

你已经知道构建一个私有以太坊区块链是有用的,因为你可以加快你的开发速度,你可以根据你自己的喜好配置区块链来加快阻塞时间,并且你可以在任何你需要的时候获得启动你自己的以太坊实例所需的知识。通过以下步骤,您将了解如何在 Windows 上设置私人区块链,这是您需要掌握的大型项目必备技能:

  1. 第一步是下载 Geth。Geth 是主要的以太坊客户端,包含运行自定义区块链所需的逻辑。你可以去geth.ethereum.org/downloads下载:

  1. 单击 Geth for Windows 按钮开始下载。运行安装程序时,会询问您是否要安装开发工具:

  1. 一定要激活它。选择前面的选项,因为您将使用设置自定义区块链所需的工具。然后,只需点击下一步和安装,以完成安装。如果成功了,你就可以在命令行或 Windows PowerShell 上运行geth,这是我推荐的终端,因为它包含了额外的命令,看起来更专业:

  1. 如果你运行geth命令,确保 Ctrl + C ,以避免从以太坊主网络下载数百千兆字节的区块链数据。接下来的步骤实际上与您在上一节中读到的步骤相同,但是为了避免潜在的混淆,我们将仔细检查它们。

  2. 您现在需要在本地创建一个以太坊帐户,稍后您将使用该帐户创建您的区块链。为此,请运行以下命令:

$ geth account new
  1. 你必须写下两次密码,所以一定要记住。之后,运行puppeth命令:
$ puppeth

这会产生以下输出:

如果您无法执行puppeth或者在尝试执行时出现错误,那是因为您安装geth时没有安装它。确保再次打开 Geth 安装程序,并在被询问时检查开发者工具,因为那是puppeth将被包含在你的系统中的地方。然后,重新打开命令行或终端来查看更改。

  1. 您会看到它要求您管理一个网络。创建一个随机名称,您稍后将使用它来标识您自己的自定义区块链。在我的例子中,我使用merunas作为网络名称。

  2. 在那之后,它会问你更多的指示。选择第二个选项–Configure new genesis–因为我们想要创建一个私有区块链,所以我们需要创建一个 genesis 文件,这是它的第一个块:

  1. 然后,选择第一个选项:Create new genesis from scratch。它会询问您想要使用的共识引擎。在这种情况下,我决定使用Ethash,因为它是真正的 Mainnet 使用的,尽管Clique是试验proof-of-authority的一个好选择:

  1. 接下来,您必须提供您刚刚创建的 Geth 帐户,因为它需要一个预注资帐户进行初始化。只需复制并粘贴您收到的地址。如果您不记得了,请打开另一个终端,键入geth account new生成一个新帐户,然后继续。
  2. 然后,它会询问您是否应该用 1 个 wei 预编译地址。说no是因为你不需要那些账号,它们会用不必要的配置填充你的 genesis 文件。最后,为刚刚设置的区块链指定一个网络 ID。我推荐一个大于 10 的数字,因为主网络和测试网络正在使用较低的数字,所以您希望使用一个唯一的标识符来避免重放攻击:

  1. 恭喜你!您刚刚配置了您的 genesis 文件,这是您自己的私人以太坊区块链的构建块。现在,你要做的就是导出它。为此,选择第二个选项—Manage existing genesis—然后再次选择第二个选项:Export genesis configurations:

  1. 现在,您应该在所选的文件夹中有您的配置文件。要在 Geth 上加载您的自定义区块链,请在您刚刚导出的自定义 genesis 文件的位置使用以下命令:
$ geth init <your-genesis-file-location>.json 

例如,在我的例子中,如下所示:

$ geth init 'C:\Users\merun\Desktop\puppeth blockchains\merunas.json'

我使用了引号,这样我可以在文件夹名之间包含一个空格,因为我创建的文件夹名为puppeth blockchains,当我运行没有引号的命令时,它给我一个错误:

  1. 如果您得到一个错误消息Failed to write genesis block: database already contains an incompatible genesis block,只需执行以下命令:
$ geth removedb

当你运行geth removedb时,你正在删除下载的区块链,这解决了不兼容的 genesis 块的问题。这主要是因为您已经开始下载带有 genesis 文件的区块链,而在某个时候您决定使用不同的 genesis 文件,这是无效的,因为配置永久存储在第一个块中,也称为 genesis 块。你不能在开采创世区块后更改区块链设置,除非先删除之前的区块链。

  1. 最后,要运行您的区块链,请执行以下命令:
$ geth --networkid 100 --unlock 0x<YOUR-ETHEREUM-ADDRESS> --mine 
  1. 它会要求您输入您的帐户密码。只要输入它,你就会看到区块链准备采矿块。现在,你可以把它用于任何你想要的项目,包括把它连接到 Remix IDE,就像你之前看到的那样。您可以使用完全相同的命令来执行此操作:
$ geth --nodiscover --networkid 77 --datadir .ethereum/ --unlock 0xf30c37b1e5ed82eebd1a7cf4c66cb9497faa4799 --mine --rpc --rpcapi eth,net,web3 --rpccorsdomain https://remix.ethereum.org

现在,您终于可以在 Remix IDE 上连接节点了,这样您就可以在您自己的区块链上部署您的合同了。

为以太坊选择钱包

以太坊钱包多种多样,你可以想象得到。从软件钱包,到硬件钱包,甚至是纸质钱包,如果你不了解其中的差异,选择最适合你需求的钱包就变得越来越困难。这就是为什么在这一节中,我们将探讨钱包的选择,以便您为每个项目选择最佳选择。

理解以太坊钱包的概念

这看起来很直观——钱包是你存放加密资金的地方——但实际上,钱包比看起来要复杂得多。钱包连接到以太坊区块链找到你的最新余额,这是通过智能合约,dApps,或通过区块链客户端本身访问。以太坊客户端下载整个链数据,他们能够搜索与您的帐户相关的交易。其中一些将是转让,而另一些可能是你支付汽油的智能合同执行。最后,只需通过读取包含您的地址的最新块中的交易,就可以获得您的当前余额,如下图所示,在几次交易后,余额会更新:

由于安全是处理金钱时的一个大问题,钱包必须保护你的凭证可能被使用的每个易受攻击的区域。您的私钥、种子和地址不应该被任何人轻易获取。这就是为什么有不同的钱包实现的原因。它们可以是在线或离线的,你可以更进一步,使用专门为存储加密货币而制作的离线硬件钱包。

解释在线钱包

这些钱包只有在你有互联网连接时才能使用,因为它们是基于网络的,只要你连接着,你几乎可以在任何地方与你的钱包互动。请注意,他们并不总是将您的私钥保存在他们的服务器中:有些是这样,但大多数都要求您在每次想要访问您的钱包时向他们提供您的私钥。让我们来看看其中的一些,了解它们是如何工作的。

选择我的钱包

MyEtherWallet 是最受欢迎的以太坊钱包应用程序,您可以使用它来访问您的钱包。每当你想登录的时候,它都会要求你提供你的私人密钥;由于它不会在线存储您的凭证,它只是一个与您的基金互动的平台:

当你打开myetherwallet.com时,你会看到一个清除框,表示你可以创建一个新的钱包。如果你已经有一个,只需点击发送以太&令牌标签,这将要求你上传不同格式选项的私人密钥。

如果您还没有钱包,请在输入密码后点击创建新钱包生成一个新账户。然后,它会要求您保存您的私钥,并将其存储在某个安全的地方。请记住,您的私钥是您钱包的主要元素:如果您丢失了它,您将无法访问它,并且您的资金将永远丢失。

使用元掩码

MetaMask 是另一个著名的钱包,主要用作人们发送以太与去中心化应用程序和智能合约交互的中介钱包。MetaMask 在后端使用 INFURA,因此与区块链的连接是即时的,您不必下载数百个块。

这个钱包的有趣之处在于,它将web3.js注入到您正在检查的任何页面中,这意味着只要您登录了 MetaMask,就可以使用任何 dApp:

每当你想通过在一个分散的应用程序上进行交易来与区块链互动时,MetaMask 就会打开一个弹出窗口,询问你要花多少钱,包括汽油价格。然后,您将能够直接从浏览器进行交易。

这个钱包的另一个优点是,你可以在任何时候点击几下鼠标来改变你的区块链网络。这对于开发来说非常好,因为如果一切正常,您可以将您的智能合约部署到 Ropsten,然后部署到 Mainnet。总的来说,对于希望与包括 ico 在内的分散式应用程序进行交互的开发人员和用户来说,这是一个极好的钱包。

了解硬件钱包

这些钱包可以将你的资金离线保存在一个小型设备中,安全地存储你的加密货币。这些设备的有趣之处在于,它们不使用你的私钥进行交互;他们有一个系统可以让你登录到钱包,而不会让你的私人密钥面临风险,因为它们存储在内部,并被加密以提高安全性。

最受欢迎的是莱杰和特雷佐。这些公司制造了不同的设备,你用种子设置好这些设备,然后只要它们有效,就可以和你的加密货币一起使用。请注意,它们只像打印的私人密钥一样有效,这意味着没有人可以在线访问它们,如果你没有丢失它们,它们会保护你的资金安全。把它们想象成钥匙。如果它们破裂或者你失去了它们,你就永远失去了你的资金。这就是为什么我总是建议你买几个同一个设备的副本,三个或三个以上,用相同的私钥和种子,这样即使其中一个坏了,你也可以访问同一个钱包。

使用分类帐

莱杰和流行的莱杰 Nano 看起来像一个传统的笔式驱动器,有一个有机发光二极管屏幕,顶部有两个按钮:

您可以通过 USB 电缆将其连接到电脑,然后打开一个自定义的钱包应用程序来使用它。您可以在此硬件设备上使用 MetaMask 和 MyEtherWallet 等。它使用一个 4 位数的 pin 码(就像信用卡一样)和一个密码(如果你在创建钱包时设置了密码)来保护你的资金安全。你可以存储数千种不同的加密货币,包括以太坊,它们将留在同一个设备中。

使用 Trezor

Trezor 是另一款流行的硬件钱包,采用独特的扁平设计,也有两个按钮和高质量的黑白显示屏。该设备采用密封包装,必须完全打开才能进入钱包,以确保在您第一次拿到手之前没有人接触到您的 Trezor,因为黑客使用它可能会造成巨大的破坏。

你还会得到一些小纸板,在上面写下你的唯一种子,以便在你丢失钱包时找回你的账户。请确保您没有丢失这些纸质钱包,因为每当 Trezor 的固件更新时都需要它们:

这两个按钮用于在您检查交易是否与电脑上显示的交易相符后确认交易。这是一个额外的安全层,以防止人们将资金发送到错误的地址。它还支持数百种加密货币,并具有与 Ledger Nano 相同的安全功能。最终,它归结为个人偏好,因为大多数这些硬件钱包功能相同,并且足够安全。

学习使用多签名钱包

多签名钱包是一种特殊类型的钱包,从某种意义上说,它们实际上是实现多签名功能的智能契约,以便一组成员可以在他们都同意结果时签署交易。与这些钱包互动的唯一方式是直接使用智能合约或通过奇偶校验的应用程序,因为奇偶校验创建了所有应用程序中最大的多签名钱包。

要与这种类型的钱包进行交互,只需打开奇偶校验的 web 界面,并从帐户部分部署一个新的多签名钱包,其中包含将加入该钱包的成员的地址。这些钱包的工作方式是,每个成员可以创建一个提案,将钱包中特定数量的乙醚转移到给定的地址。如果他们都同意,资金将被转移;否则,转让将被取消。对于加密初创公司来说,这是一种将资金存放在集团金库的简单方式。

您已经获得了所有以太坊钱包类型的高级概述。现在,您可以选择符合您要求的产品,并开始安全地储存 ETH,只要您需要。记住,只要钱包能让你存取你的资金,它就是好的,所以一定要选择一个不会限制你存取的钱包,一个多年来证明是安全的钱包。

使用以太网扫描进行交易

就像所有的块浏览器一样,Etherscan 在您的智能合约开发过程中提供了大量有价值的信息,只要您需要在更深的层次上理解智能合约是如何操作的。知道如何使用以太扫描这样的块浏览器是一项宝贵的技能,任何以太坊开发人员都需要这项技能来调试和理解区块链事务形式的真实事件。

了解块管理器

块浏览器是一种特定类型的应用程序,它通过搜索可能与用户相关的特定信息来与区块链进行交互。它们是区块链的机器人,帮助你理解代码背后发生了什么。创建它们是因为人们想要一种更简单的方式来理解正在发生的事务,因为大多数事务都是混乱的,当你得到的都是十六进制的信息时,很难发现什么是重要的。

最受欢迎的是 Etherscan、Etherchain 和 Ethplorer。所有这些块浏览器都是基于网络的,因此您可以在任何联网设备上轻松使用它们。

使用以太网扫描分析交易

Etherscan 是目前最大的块浏览器,原因很简单,它为你提供了一个简洁明了的界面来与你的事务交互。以太网扫描主要是一个地方,看看你的事务在部署后实际上在做什么。例如,当你发送 10 ETH 到另一个地址时,你不能真正知道它是否成功,或者你使用的地址是否有某种错误。以太扫描将向您展示到底发生了什么以及原因:

假设有人偷了你的以太币,因为他们进入了你的以太币账户。你如何追踪这些信息?好吧,你可以把你的以太坊地址粘贴到以太扫描的搜索框里,看看它去了哪里:

只需点击 TxHash,即可查看关于该特定交易的扩展信息。您将看到以下内容:

这告诉你以下事情:

  • 交易成功了
  • 从您自己的地址到地址 0x8c 5a 579 a 06 fac3b 723d 97061 e 295582 de 2825035,这是一个简单的以太网传输
  • 它是在 2019 年 1 月 30 日制作的

有了这些信息,你就可以开始研究谁在那个地址后面,如果是这样的话,你也许能找到谁偷了你的资金。在输入数据部分,您将看到如果这是一个合同交易时执行的代码。您还可以使用 Etherscan 来检查令牌、智能合约、图表等,因为它们致力于为您提供有关区块链交易的最佳信息。

您还可以使用 web3.js 和 Truffle 合同创建自己的区块链浏览器!

您现在知道了块浏览器是以太坊开发人员的优秀工具,因为它们以简单易懂的格式为您提供了无价的信息,这在处理涉及数十万美元的永久 Mainnet 交易时是必不可少的。

创建帐户

帐户是每个以太坊应用程序的主要组成部分。如果你想加入网络,你需要一个以太坊账号,里面有你的私钥和地址。创建以太坊帐户的方法有很多,这就是为什么熟悉不同的工具对你很有好处,这样你就可以熟练地创建帐户:你将需要为你将要构建的所有项目创建帐户。

使用元掩码创建帐户

正如你已经知道的,MetaMask 是最受欢迎的以太坊钱包之一。它允许您使用相同的种子词,无限制地为不同的以太坊链创建无限的帐户。以下是如何使用它来创建帐户:

  1. 首先,通过进入 metamask.io 下载 Chrome 或 Firefox 的 MetaMask:

  1. 然后,您可以单击刚刚安装的 fox 图标来启动 MetaMask,这将打开此页面:

  1. 点击继续并为您的钱包设置密码,然后向下滚动接受使用条款:

  1. 之后,它会向您显示不同的窗口,警告您使用这样的测试软件的风险,并且您必须永远不要给他们您的恢复种子,除非您对该过程完全安全。然后,你必须点击并把你的种子短语存储在某个安全的地方。这是一组独特的单词,如果您丢失了帐户,它将帮助您找回帐户。这是您不能丢失的主要私钥,否则您的钱包将无法访问:

  1. 最后,它会要求你使用比特币基地或变形来存放乙醚,或者直接:

  1. 你可以简单地忽略这一点,并在以后添加资金。大概就是这样了——您现在应该能够通过单击扩展栏上的橙色小狐狸来使用 MetaMask 了:

创建比特币基地账户

既然您已经了解了如何创建自己的私人钱包,那么让我们创建一个托管在交易所(如比特币基地)的钱包,在这里您可以直接买卖加密货币。请注意,这些类型的钱包并不安全,因为交易所将您的私钥和种子短语保密,所以您无法完全控制您的钱包,也无法自己保护它。

这种类型的钱包的一个优势是,你几乎可以立即将你的加密货币兑换成现金,而不必等待转账。这对于需要快速获得资金的交易者来说非常理想。这种做法的主要问题是缺乏控制,因为你向他们提供了你的钥匙,并且你依赖于他们保证它们的安全——但情况并非总是如此。总是回顾一个交易所的历史,看看他们是否值得信任,或者你的钱是否有被黑客入侵的风险。

比特币基地是最大的加密货币交易所,因为它提供了使用银行或信用卡将法定货币兑换成加密货币的简单性而广受欢迎。在以下步骤中,您将了解创建与比特币基地关联的以太坊账户需要做些什么:

  1. 首先,在coinbase.com打开他们的网站:

  1. 在大输入框中输入你的电子邮件地址,然后点击开始创建一个新的比特币基地帐户。然后,它会要求您提供所需的更多详细信息,以便您可以开始:

  1. 接下来,它会显示一些关于合法性问题和警告的信息:

  1. 然后,你必须检查你的电子邮件来确认你的地址:

  1. 确认您的电子邮件地址并登录后,出于安全考虑,您将被要求添加您的电话号码,因为这些类型的帐户涉及大量资金,他们希望拥有最大数量的安全点:

  1. 他们会给你发信息,所以一定要用有效的号码。之后,您将被要求提供个人信息,如您的住址、职业和身份证号码。只需填写所有方框:

  1. 提供有效的数据很重要,因为他们会检查一切,他们会使用这些信息来帮助你安全地交易。之后,你会被要求用你的护照或驾照的照片来验证你的身份;你必须这样做才能在这里交易。这很烦人,但这是法律要求的,因为他们是在和银行打交道,他们不想要开放式的结局:

  1. 如果不起作用,请稍后再试,直到您可以访问。最后,在完成所有文档并再次登录后,您将能够交易并在“帐户”选项卡中查看您的帐户:

在这些步骤之后,你应该可以访问一个功能齐全的基于网络的钱包,它与比特币基地相连,接受许多不同的加密货币和法定货币。你应该能够购买加密一旦你添加你的银行帐户的细节。

摘要

在本章中,您学习了如何为不同的钱包创建以太坊帐户,其中一些是私人的,另一些是在交易所托管的,以便于获取新的加密货币。您已经了解了它们之间的区别以及如何使用它们。你现在知道 MetaMask 非常适合与 dApps 交互并安全地存储你的资金,而比特币基地非常适合使用法定货币立即交易和交换加密,以及其他许多功能。

在下一章中,您将了解更多关于 dApps 的内容,以及如何全速使用它们,并获得一些高级技巧,您可以立即实施这些技巧来创建更强大的应用程序,以便在未来进行扩展。


我们一直在努力

apachecn/AiLearning

【布客】中文翻译组