密码极客 | 国内最权威的区块链技术创投社群

Polkadot波卡链:基于Substrate 上搭建Pre-POC-3

VOBCVOBC 2019-05-14 25,941 次 收藏0

你可能会问,Polkadot和Substrate之间的区别是什么?我们来澄清这两个主要概念之间的差异和相似之处。

Substrate是使用区块链技术的最新研究创建加密货币和其他分布式系统的框架。

正如Jack Fransham在Parrate网站上的Substrate Intro文章所述:

重要的是要理解Parity Substrate根本不属于Polkadot。虽然Polkadot是使用Substrate构建的,并且使用Substrate构建的项目可以在Polkadot上本地运行,但您现在可以使用Substrate构建新的区块链。您无需等待Polkadot,甚至无需发布概念验证(POC)即可开始使用此框架开始使用区块链...您可以将其视为Express或其他Web应用程序框架,但用于构建分布式或分布式系统,如加密货币或消息总线。正如大多数Web应用程序不需要重新实现其自己的HTTP版本一样,我们认为创建新区块链的每个团队都需要从头开始实施所有网络和共识代码,这是浪费精力。

因此,POC-3“BB”正是基于区块链的WASM智能合约的最小Substrate参考实现。

正如Gavin Wood在Riot上所说:

他还提供了计划于12月/ 1月对POC-4的展望。据说BB Testnet将支持平行链,这意味着Substrate也准备好承载Polkadot。

因此,让我们看看与POC-2部署形成对比的一些变化。

您应首先阅读第一章“Hello World Polkadot#1:验证器节点的经济高效部署”,本文为您提供了全面的了解。在本文中,我将仅描述POC-2安装的增量更改。

 

建立新镜像

首先,我必须创建一个新的docker映像,它在Ubuntu 16.04.5上运行最新的substrate poc-3代码,以便将其部署到我的jelastic paas(hidora.com)。这是一个最小的docker映像,主run命令如下:

您可以在talfco / clb-substrate上的Dockerhub上找到该镜像https://hub.docker.com/r/talfco/clb-substrate/

将Dockerfile部署到测试节点安装并通过提供-name参数来运行它

与POC-2一样,GUI(https://telemetry.polkadot.io/#/BBQ%20Birch)将显示您的节点如何与链同步。

 

在钱包中创建一个新地址存储

接下来要做的是创建一个POC-3测试网的地址,并将其存储在您的个人钱包应用程序中。实际上,有两个钱包应用程序可用于PoC-3,可用于管理您的PoC-3地址。

作为区块链新手,我总是通过直观地将其映射到其他(集中式)账户解决方案的传统概念而与“钱包账户”这个主题混淆。这些帐户可通过多个设备上的不同浏览器(或同一设备上的多个浏览器)访问。电子钱包应用程序及其帐户管理功能完全不同。

因此,当我们为POC-3使用这两个基础钱包/管理应用程序时,让我分享一下我的个人发现(这可能对你来说很清楚)。

出于所有意图和目的,钱包基本上是作为区块链上的用户身份。

下图代表一个数字钱包,其中包括Birch地址的私钥和公钥。

所谓的bondy polkadot用户界面(由gavin wood编写)在其功能集中是最小的,但它是研究基于react的polkadot客户机应用程序内部工作的优秀(不是太广泛)代码库。

POC-3钱包应用链接:https://paritytech.github.io/substrate-ui/index.html

源代码:https://github.com/paritytech/substrate-ui

第二个应用程序是Parity Substrate Portal应用程序,它是由不同的模块化组件构建的,功能更丰富,是我在上一篇文章中使用的前端。

POC-3 Portal App链接:https://polkadot.js.org/apps/next

源代码:https://github.com/polkadot-js/apps

这两个应用程序都是所谓的加密钱包应用程序,可以存储您的公钥和私钥,并与polkadot接口的软件程序,这样用户就可以监控他们的余额、DOT转移和其他操作。

在管理密钥中,上述钱包应用程序必须视为在浏览器运行时及其存储敏感密钥所需的相关本地设备存储中完全隔离。

两个Wallet Apps都是基于React Javascript Framework的HTML5单页面应用程序。

例如,Bondy Polkadot UI最初在11 http中加载,请求必要的javascript应用程序(和一些助手文件),然后将协议切换到WebSocket协议,并通过“wss://substrate-rpc.parity.io/”与substrate测试网进行通信。

从纯HTTP的角度来看就是这样,即HTTP协议只需要将静态文件(javascript和一些CSS和图像文件)加载到浏览器虚拟机中。

因此,Wallet App位于浏览器VM中并控制其本地存储对象。 在我们的示例中,存储用于保留私钥,公钥以及托管地址的文本描述。 对于地址簿功能,存储将用于保存地址的文本标识符以及地址本身。

如果您在浏览器中打开第二个Wallet应用程序(即Substrate Wallet Portal App),您将意识到应用程序不知道任何私钥/公钥。

这在开始时让我感到困惑,但现在应该通过考虑规则来明确,钱包应用程序特定于:

一个设备,运行一个浏览器类型(chrome、firefox等)并执行一个特定的单页应用程序(由加载资源的URL表示)。

另一个例子是:在同一台设备上运行Chrome和Firefox浏览器中的BondyPolkadot应用程序不会共享任何密钥配置。

那么如何在第二个钱包应用程序中配置您的地址呢?首先,我认为我必须使用恢复帐户功能,但最终的解决方案更简单:

只需使用您的私人种子地址在第二个应用程序中创建地址。

通过使用相同的种子,您只需为此专用地址配置应用程序(简单易用)。因此,您为两个应用程序配置了地址。

 

对此深入研究的最后评论:

App中的secretStore管理由oo7-substrate NPM提供,它是Bond Framework https://github.com/paritytech/oo7的一部分。对于以后深入研究钱包应用程序的机制,可能是一个良好的开端。

创建新地址并将其存储在您的钱包中

作为第一步,您必须在BBQ-Birch Testnet上创建一个新地址。

前往BBQ Birch Bondy Polkadot App并通过电子钱包功能创建一个新地址。https://paritytech.github.io/substrate-ui/index.html

可以看到,第一次打开应用程序时,您将获得一个使用帐户名称“default”配置的默认地址。 按“delete”删除它,以便您可以设置自己的名称。

因此,通过(1)生成私有种子,(2)定义名称并按“create”按钮来创建自己的地址。 这将(3)为您生成一个新地址。

为了提取私有种子,你必须单击eye-icon(4),它最初会将Validator Seed显示为十六进制值(使用KEY参数启动Validator时需要)。

单击关键图标以获取密钥。 您应该密钥短语存储在离线状态并保持安全,这是您的安全网,可以随时恢复您的地址到Substrate Wallet应用程序。

获取BBQ/Birch

通过上篇文章可以清晰知道,我们需要在社区里面获得BBQ。

收到一些Birch代币后,您还可以获得一个短地址。 您可以通过地址查找检查地址的状态

一个实用的短地址,只要你的一些Birch与你的地址相关联就会启用它,它是一个4个字符的地址。

您可以使用短地址进行查找

准备好Polkadot Portal App

切换到Substrate Portal App并在浏览器中打开它。 可以看出,还没有配置地址帐户(请记住上面关于钱包范围的讨论)。

只需使用您的“种子短语”创建一个帐户,它将在此应用程序中创建一个帐户。您通常会使用相同的帐户名(不要混淆),并且必须提供密码。

此外,您现在有两个配有您的Substrate 地址的Substrate Wallet Apps。

所以现在是时候用你的私有Validator Seed重启你的Validator节点了(参见上文),通过使用参数'-validator  -  key <yourValidatorSeed>配置你的docker实例运行cmd(参见我的上一篇文章)。 重新启动后,日志将显示BFT协议错误,表示您尚未被提名为完整验证程序。

如果您将使用上面的Dockerfile,请确保在Docker实例中设置两个环境变量

  • POLKADOT_KEY_POC3
  • POLKADOT_NAME_POC3

Dockerfile使用monitorValidator.sh脚本配置crontab文件。 每分钟都会检查Validator进程是否仍在运行。

否则,将重新启动Validator进程以减少削减时间。

最后获得提名

最后的步骤是放弃验证并获得足够的Nominators,用它们的Birch来支持你,以便成为一个完整的验证器。

在下一篇文章中,我将介绍构成Substrate框架及其运行时的各种组件。

本文系作者个人观点,转载请注明出处!
喜欢 0
支付宝扫码打赏
微信打赏

相关文章

更多

发布评论

共0条评论