教程|制定KMD区块浏览器
头等仓
2019-06-03
热度12737

《每周二技术更新》发布,本次更新介绍了部署自定义区块链的方法,快来看看吧~

原著 | MYLO

翻译 | winny

稿源(译):https://first.vip/shareNews?id=1682&uid=2


在创建自定义区块链后,部署自定义区块浏览器需要若干步骤,对项目和开发人员来说,Komodo生态系统自定义浏览器更易于访问,更适合在区块链开发早期部署。

请按照以下步骤创建自己的自定义指南!

1. 创建区块链(种子和矿工节点)
2. 挖掘一些区块
3. 终止种子节点
4. 安装区块浏览器
5. 对种子节点进行重新索引

以上步骤也可以用于创建已完成区块链的区块浏览器。

如果您没有安装Komodo或Agama钱包,请按照开发人员安装说明进行操作。

此区块链开发更新可在开发中的区块链应用开发文档教程中查看。

区块浏览器区块链应用程序

区块链应用程序依赖底层基础架构来运行,任何自定义区块链应用的开发过程中,开发人员可以通过三个方式来查看他们的网络工作进度。

· 原始数据
· GUI反馈
· 区块浏览器

在开发早期部署一个自定义区块浏览器有巨大的好处,它允许区块链应用的代币持有人直接进行交互,追踪项目操作,每个人都可以见证链的变化和运行。

在深入探讨如何为自定义区块链项目部署区块浏览器之前,我们先对其他两个选项进行简要介绍。

原始区块链应用数据

原始数据由交易组成,区块链开发人员可以使用比特币、Zcash或Komodo提供的命令行工具来访问,比如:

· bitcoin-cli listunspent将列出钱包中可用的UTXO
· komodo-cli getblock 1000000将返回Komodo主链上百万分之一区块数据
· komodo-cli gettransaction

区块链开发人员可以依靠肌肉记忆快速输入命令或编写脚本,在将新功能写入区块链时查询数据。

GUI反馈

GUI反馈可在区块链开发周期中供前端应用开发人员使用,与RPC函数公开功能集成,不需要依赖肌肉记忆创建命令行,也不依赖人眼解析数据,开发人员可以直接使用网络RPC函数,以投票形式进行编程解析,而不需要依赖肌肉记忆创建命令行,以上网络功能示例可以在开发文档页面查阅:

· listunspent
· getblock
· gettransaction

这需要一些在早期GUI开发期间可以重复使用的“应用程序管道”。

上图是使用javascript中的validateaddress来验证地址。

创建自定义区块链入门

部署区块浏览器必须运行区块链,以下是创建区块链的4个选项,剩余的一项供本文未来读者参考。

1. 与Blockchain Starter Kit页面服务提供商建立联系
2. SaaS Blockchain Cloud Generator目前处于封闭测试阶段,将于2019年第二季度发布
3. 使用2个节点创建区块链(生产就绪)
4. 在笔记本电脑上创建一个区块链作为单个节点(生产就绪)
5. 在测试模式下在笔记本电脑上创建区块链(面向开发人员)

自定义区块链特征——参数

Komodo的技术提供了18种不同的方式来定制区块链,配置种类更是成千上万,但自定义区块链的参数尽可能地简单:

· 名称:CUSTOMBLOCK
· 代币数量(供应):1000
· 区块奖励、区块时间、匿名交易、时间减半和其他自定义的区块链参数都是默认值。

使用以上列表的选项4,按照BSK步骤在笔记本电脑上创建区块链(运行ubuntu)。

创建种子节点

创建矿工节点

确保节点之间相互连接。

检查进程运行

使用ps命令行

进程列表中的种子节点和矿工节点理应返回。

检查区块链节点是否已连接

使用getinfo,查找“connections”属性为1。

挖掘自定义区块链最初的几个区块

使用setgenerate启用1个线程的挖矿,几分钟后,getinfo命令应返回一个大于0的区块属性,然后我们可以再次使用setgenerate来传递一个false值来中止挖矿。

停止种子节点

在种子节点上使用stop命令。

安装区块浏览器

Komodo生态系统自定义区块浏览器组件

使用bitcore的insight浏览器在所有使用比特币协议的区块链中性能最佳, Komodo在源代码级别与bitcore集成,使Komodo成为游戏开发者可选的性能最好的区块链之一,配置文件需要将ZMQ消息总线向区块浏览器应用程序公开,简易安装脚本为种子节点管理此操作。

Insight浏览器是一个nodejs应用程序,包含三个组件:

· 核心应用
· Insight API
· Insight UI

它依赖于较旧版本的nodejs,因此需要使用nodejs版本管理(nvm)包,如果开发人员功能设置不符合标准,则在运行nvm和较旧的nodejs环境时,需要在虚拟环境中删除这些非标准自定义设置。

使用惯例

区块链中的ZMQ消息传递将使用RPC端口的+2端口号,区块浏览器网页界面将使用RPC端口的+3端口号。

例:

· 1777/TCP是自定义区块链的RPC端口
· 1779/TCP是分布式消息传递的ZMQ端口号(区块和交易等)
· 1780/TCP是区块浏览器网页界面的HTTP端口

安装脚本使用CHAINNAME-explorer中的区块浏览器文件创建一个目录,我们使用CUSTOMBLOCK-explorer来举例。

区块浏览器安装脚本

Komodo团队的两位冠军Decker和G.Charan G共同完成了一项工作,其中系统管理由脚本处理,通过这种设置,安装任意数量的浏览器只需要一个单一命令行。

跳转到这些浏览器安装说明,我们需要做的就是复制子库并执行设置和安装脚本:

区块浏览器安装

以自定义区块链的名义运行install-assetchain-explorer.sh脚本,它将自动创建所有必需的组件和配置。

noweb选项已经包含其中,因此浏览器只向本地主机127.0.0.1公开,在这次创建示例中,按照RPC端口+ 3的管理,变为http://127.0.0.1:1780

为了在公共互联网上安全地公开,使用Apache或ngnix作为反向代理和TLS/SSL证书保障网络连接的安全非常重要。

开启区块浏览器

安装脚本按照惯例创建了名为CUSTOMBLOCK-explorer的浏览器目录,并使用自动生成的脚本启动浏览器:

重新启动区块链种子节点&重新索引数据库

首次发布安装了浏览器的自定义区块链时,将-reindex参数添加到启动参数中。

现在可以重启矿工节点,否则将需要一分钟才能使种子节点同步并赶上矿工节点进度。

自定义区块浏览器成果

这是kmdexplorer.io浏览器视图,与您创建的成果非常相似,您现在可以编辑一些CSS/SCSS/SASS变量并添加自定义内容!

本内容旨在传递行业动态,不构成投资建议或承诺。
为你推荐

商务合作:TG:@Lottie96