区块链技术资源分享
追寻中本聪先生的脚步

Loom PlasmaChain部署DAPP_安装 Loom、设置环境和生成密钥

介绍Loom PlasmaChain

如果你是开发者,想要在以太坊上构建可扩展的 DApp,那么你很可能在处理事务吞吐量和每个事务的成本上遇到过问题。

建议你使用 Loom —— 使用 DPoS(委托股权证明)的侧链网络,能提高吞吐量并且使用连接到以太坊主网的转移网关来检查其安全性。想了解有关 Loom 的更多信息,请查看这份指南

PlasmaChain 是 Loom 区块链网络中的一条,专注于为区块链游戏提供强大的平台。 这些链利用转移网关,让你可以将资产从侧链(在本例中为PlasmaChain)转移到以太坊主网(或任何其他链)。

Loom PlasmaChain部署DAPP_安装 Loom、设置环境和生成密钥

安装 Loom 并设置开发环境

学习新东西的第一步就是先玩起来!来吧,首先在我们的系统上安装 Loom 二进制文件,这样我们就可以有一个本地链来测试。

我使用 Linux 作为我的平台,但在 Linux 和 Mac 上的步骤基本相同。 如果你使用 Windows,可以看看 WSL,但我提前告诉你,有时它会有bug。 或者,在虚拟机或远程服务器上运行该链进行测试,或直接使用测试网 —— 看你喜欢!

$ curl https://raw.githubusercontent.com/loomnetwork/loom-sdk-documentation/master/scripts/get_loom.sh | sh && chmod +x loom

如果此命令对于你来说无效(例如,它没有检测到我正在运行Arch Linux,因为官方测试的版本是针对 debian、ubuntu 和 CentOS),那么你也可以直接使用下方命令来下载最新的二进制文件:

$ curl -sL -o loom https://private.delegatecall.com/loom/linux/stable/loom && chmod +x loom

然后,我们将通过运行以下命令初始化 genesis 文件和 chaindata 目录:

$ ./loom init

可以使用以下命令来启动我们的链:

$ ./loom run

默认情况下,该链在端口46657上运行,如果我们愿意,可以使用提供的区块浏览器实时查看事务:

blockexplorer.loomx.io

(如果你没有在本地托管该链,只需更改底部的URL和端口号即可指向你托管该链的位置。)区块生成时间为1秒,因此我们可以有近乎实时的事务。

最后一个有用的命令是:

$ ./loom reset

如它所说,这个命令将重置 chaindata 而不清除配置文件,为你带来一个全新的链。 运行 ./loom run 命令就可以重新启动这个链。

生成密钥

要向我们链提交事务,我们还需要创建一些密钥。

$ ./loom genkey -k priv_key -a pub_key

这一步会在你包含密钥的目录中创建 priv_key 和 pub_key 文件。 请注意,它将以编码格式保存你的密钥,并且我们需要访问它输出的原始公钥,因此请确保将本地地址公钥输出保存在某处,以便我们以后可以轻松访问它。

示例代码

让我们创建一个非常简单的合约来部署到我们的链上。 如果你没有 truffle,现在就是安装的好时候。 Truffle 是一个用于创建、测试和部署复杂 solidity 应用程序的框架。

在你的机器上安装好 truffle 之后,我们就可以从 Loom 的 GitHub 克隆示例代码库:

$ git clone https://github.com/loomnetwork/truffle-dappchain-example $ cd truffle-dappchain-example
# copy the private key generated earlier to the root directory of the example repo 
$ cp ../priv_key extdev_private_key

你可以使用 Yarn 来下载并安装依赖项。

让我们来看看这个代码库中有什么有趣的东西:

truffle-dappchain-example\
-> extdev_private_key
-> priv_key
-> pub_key
-> truffle_config.js
-> contracts/

extdev_private_key 是我们生成的密钥,我们将使用它将代码部署到测试网。 truffle-dappchain-example 目录中的 priv_key 和 pub_key 文件与部署到本地链 的密钥相同。

在 truffle_config.js 里,我们定义可以连接的不同网络。来看看里面的内容:

loom-truffle_config.js

具体来说,如果我们查看网络对象,我们将看到当前定义了三个网络。

  1. loom_dapp_chain 被定义为本地链 网络并用于快速测试。
  2. extdev_plasma_us1  被定义为 PlasmaChain Loom 测试网,我们需要一些代币才能部署。
  3. rinkeby 是 Rinkeby 以太坊测试网,稍后将在我们的转移网关文章中使用它。

这是学习如何添加自己的网络的一个好模板(例如,在 AWS 上的测试网络,或者可能将 Ropsten 添加为替代的以太坊网络)。 如果你没有用于连接以太坊节点的 Infura API 密钥,可以在此处(infura.io)获取一个或直接连接到喜欢的任何节点来运行你自己的节点。

最后,在 Contracts文件夹中,你会找到一系列示例合约,了解如何为 PlasmaChain 创建 ERC20 和 ERC721 代币。

本教程仅涉及 SimpleStore.sol(其他的将在我们即将发表的文章中介绍)。 正如它的名字所示,SimpleStore 是一个简单的合约,用于存储和检索区块链上的值。不花哨,无代币化,只是一个简简单单的合约。 这应该能给你一个容易搞起来的合约,边学边补充功能特性。

Karma

就像以太坊对于部署智能合约要收取 gas 一样,在 Loom 区块链上部署智能合约也需要一些资金。部署合约需要支付 Karma。 但是,与以太坊不同的是,你无需为合约上来去的事务支付费用。合约所有者通常支付月费,然后合约上的所有事务都是免费的。

PlasmaChain 测试网是免费的,因为它旨在用作为一个学习和原型环境。 你只需提供 Karma 代币(可以通过faucet免费获得),而不必担心这个月费。

要部署到本地链,首先执行以下操作,确保你的本地链正在运行:

$ ../loom run

然后在另一个终端:

$ yarn deploy

默认情况下,yarn deploy 将部署到 loom_dapp_chain 网络。 此网络是你的本地链,不会花费任何代币进行部署。 你可以使用“:”来指定其他网络,package.json 文件中提供了可用部署选项的完整列表。

如果你尝试运行以下部署,则会收到错误消息,告知你没有足够的 Karma 代币。 这是因为 extdev 部署到 PlasmaChain 测试网 —— 正如我们之前提到的 —— 需要资金来成功部署代码。

$ yarn deploy:extdev

导航到:https://faucet.dappchains.com/并使用我们从 genkey 命令保存的公钥。 请注意,faucet 正在寻找以太坊格式的十六进制地址,而不是 pub_key 文件中的编码格式。 确保使用步骤#3中保存起来的十六进制地址。

给它几秒钟,“faucet-karma: 100”应该会出现在右侧,告诉你已经收到了100个 karma 代币待使用。

现在,如果你执行这一步:

$ yarn deploy:extdev

Truffle 将运行并部署 SimpleStore(以及迁移中定义的所有其他合约)并返回它们所有部署的地址。你可以使用 web3 中的 extdev-plasma-us1.dappchains.com  端点与这些合同进行交互,并将其视为常规链。

在 DApp 的 webapp 部分中,只需添加:

var extdev = new Web3('extdev-plasma-us1.dappchains.com);

下篇文章我们会讲解如何在 PlasmaChain 上创建 ERC721 代币以及怎样将它们转移到 Rinkeby 以太坊测试网。

 

分享到:更多 ()
0
区块链神吐槽
pi币注册流程教程图解中文版

来评论吐槽 抢沙发

评论前必须登录!

 

区块链资源分享联系我

区块链资源分享联系我首页更多新闻