项目进展|Polkascan第四次开发更新所取得的里程碑!

第一波赠款工作已完成 WEB3SCAN的任务是使多链数据易于访问和理解,Polkascan项目正在努力构建一个可浏览器多链和分析数据的平台。此次开发更新也是Web3 基金会赠款工作的一部分,此次开发更新确保了Polkadot生态系统从构建完成的第一天起就可访问开源区块浏览器!
头等仓APP下载

项目进展|Polkascan第四次开发更新所取得的里程碑!

第一波赠款工作已完成

WEB3SCAN的任务是使多链数据易于访问和理解,Polkascan项目正在努力构建一个可浏览器多链和分析数据的平台。此次开发更新也是Web3 基金会赠款工作的一部分,此次开发更新确保了Polkadot生态系统从构建完成的第一天起就可访问开源区块浏览器!

“第一天”何时到来是WEB3SCAN一直关注的事情,“第一天”的到来表明在Polkascan社区的努力下,最近推出的Kusama网络已经有了区块浏览器。

WEB3SCAN为基于Substrate区块链(比如Polkadot中继链)提供了通用的开源区块浏览器,为Polkadot生态系统做出了贡献。Polkado会将第四次发布更新的内容及第四次开发更新所取得的里程碑一并发布出来。

项目进展|Polkascan第四次开发更新所取得的里程碑!

第四次开发更新所取得的里程碑 | 关键词“搜索”,“优化”“可用性”:

里程碑4扩展了 Polkascan“开源区块浏览器”堆栈的所有工件的基本系统架构,以及搜索和过滤功能的基础知识。此外,该阶段还实现了广泛的性能优化和可用性增强。

1.概述

开发更新后的新版将自主运行Polkascan PRE的第四个里程碑版本。

1.1.Github上的Polkascan PRE

代码库:你可以在 Github代码库中找到Polkascan PRE的源代码。Github代码库由许多不同的代码库构成,而Polkascan PRE也由这些不同的代码库构成。在 Polkascan PRE代码库中为已发布的分支和版本应用了许多约定。

项目进展|Polkascan第四次开发更新所取得的里程碑!

分支:每个代码库都有最新的(但可能不稳定)主分支开发更新成果。第四次的里程碑开发成果可以在第四次里程碑分支找到。

发布:里程碑4——发布了“v0.4.x”

1.2.是什么构建Polkascan PRE了?

Polkascan PRE是由许多不同的软件工件组成的,这些软件工件共同编写了Polkascan PRE。该Harvester利用Substrate 接口和 SCALE Codec Library,将Substrate节点的原始数据转换为关系数据。生成的关系数据由浏览器API传播,终端用户可通过浏览器GUI访问关系数据。所有工件都有完整Docker的支持,因此所有的代码库的根目录中都有Dockerfiles。

尽管Polkascan PRE的五个不同组件可以分开独自应用(在其他项目中也可以),但我们提供了第六个组件,名为:Polkascan PRE,该组件可利用Docker Compos将所有组件组合在一起。

1.3.要求

1.推荐硬件:内存:> 8GB(内存越大越好),存储:> 100GB(固态内存更好),处理器:核心数越多越快(Intel i7四核),带宽:越多越快(> 10 Mbps) 。硬件的要求会随着项目的成熟而下降。

2.软件要求:Git,Docker和Docker Compose。

3.Polkascan PRE的部署已经在Mac,Linux和Windows上进行了测试。

4.浏览器GUI已经在Safari、Firefox、Chrome、Edge和Brave上进行了测试。。

1.4.运行Polkascan PRE

本段为你提供了运行Polkascan PRE的分步指南,有了该指南即可在自己的计算机上运行Polkascan PRE。你可以Github代码库中找到运行Polkascan PRE的分步指南。

第1步:克隆代码库:

项目进展|Polkascan第四次开发更新所取得的里程碑!

第2步:转到新文件夹:

项目进展|Polkascan第四次开发更新所取得的里程碑!

第3步:检查可用版本:

项目进展|Polkascan第四次开发更新所取得的里程碑!

第4步:在v0.4.x范围内检测最新版本(用最高编号替换'x'):

项目进展|Polkascan第四次开发更新所取得的里程碑!

第5步:子模块初始化后更新:

项目进展|Polkascan第四次开发更新所取得的里程碑!

第6步:构建并初始化MySQL库:

项目进展|Polkascan第四次开发更新所取得的里程碑!

第7步:构建并初始化其他库:

项目进展|Polkascan第四次开发更新所取得的里程碑!

结果:浏览器GUI现在应该可以在浏览器中使用:http://127.0.0.1:8080

项目进展|Polkascan第四次开发更新所取得的里程碑!

图1.2为Polkascan PRE 在浏览器的运行界面:: http://127.0.0.1:8081

1.5.通过Polkadot-JS Apps进行交互

Polkascan PRE是一项可用于 区块浏览器和数据分析 的技术,Polkascan PRE不提供主动与区块链交互的功能。但是,Docker Compose附带了Polkadot-JS应用程序,允许用户与链进行交互——例如通过组合和提交交易。Polkadot-JS 应用程序现在可以在浏览器中使用:http://127.0.0.1:8081

项目进展|Polkascan第四次开发更新所取得的里程碑!

图1.3为Polkadot-JS 应用程序在浏览器的运行界面:: http://127.0.0.1:8081

1.6.清理

输入以下docker [-compose]命令可以帮助你清理电脑。

·停止运行Docker Compose文件的所有库。

项目进展|Polkascan第四次开发更新所取得的里程碑!

·删除所有未使用的库和图像(注意!!)。

项目进展|Polkascan第四次开发更新所取得的里程碑!

·删除所有本地编辑和图像(注意!!)。

项目进展|Polkascan第四次开发更新所取得的里程碑!

·删除所有未使用的卷(volumes)(注意!!)。

项目进展|Polkascan第四次开发更新所取得的里程碑!

2.Polkascan PRE浏览器

Polkascan PRE的里程碑4版本优化了旧版的各种性能,增强了Polkascan PRE的可用性。里程碑4版本可提供更多、更好、更丰富的有用数据实体信息(里程碑3版本已实现提供有用数据实体信息的功能),里程碑4版本可提供的有用数据实体信息:日志,帐户,搜索,传输,会话,验证器,提名者,提案和公民投票。里程碑4版本可提供更多、更好、更丰富的有关具有理论的实体的信息(里程碑版本已实现提供具有理论的实体信息的功能),里程碑4版本可提供的具有理论的实体的信息:区块,外部,交易,内容,事件和运行时规范实体。这些概念的基本定义可以在Substrate的官方文档中找到。

2.1.浏览器GUI

浏览器GUI是Angular (移动端)的应用程序,浏览器GUI使用的数据来自浏览器API。在此网址(http://127.0.0.1:8080)按前文步骤操作即可进入应用程序的登录页面。

在登录页面的顶部有一个导航菜单可直接将页面跳转到:链,帐户,抵押,治理,分析和运行等相关页面。点击Polkascan标志即可返回最初的登录页面。

标题会显示你所在页面的名称,如果是已知(预配置)网络,则可选择用颜色代码支持。此外,在页面的标题处,你可输入区块编号、交易哈希值或帐户地址搜索相关信息。

登录页面会列出了许多关键指标,例如:最近确认交易的区块,交易的数量,活跃帐户的数量以及已获取运行时的数量。

此外,登录页面底部有两个列表:最近的区块交易信息和最近的转账信息。这两个列表都设有按钮,以便用户查阅更多的详细信息。

你可以在浏览器GUI底部找到以下列表:

链菜单

项目进展|Polkascan第四次开发更新所取得的里程碑!

帐户菜单

项目进展|Polkascan第四次开发更新所取得的里程碑!

抵押菜单

项目进展|Polkascan第四次开发更新所取得的里程碑!

治理菜单实体

项目进展|Polkascan第四次开发更新所取得的里程碑!

分析工具菜单

项目进展|Polkascan第四次开发更新所取得的里程碑!

运行时菜单

项目进展|Polkascan第四次开发更新所取得的里程碑!

2.2. 浏览器API

 浏览器API是一个Falcon应用程序,Falcon应用程序传播的数据来自——由Harvester维护的关系数据库 。Falcon提供快速RESTful API,可将JSON-API标准用做消息信封。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图2.1:区块浏览器API

使用NGINX代理规则将浏览器API嵌入到浏览器GUI的路由模式中。以下是浏览器API的有用API端点列表:

Chain API端点

项目进展|Polkascan第四次开发更新所取得的里程碑!

帐户API端点

项目进展|Polkascan第四次开发更新所取得的里程碑!

抵押 API端点

项目进展|Polkascan第四次开发更新所取得的里程碑!

治理API端点

项目进展|Polkascan第四次开发更新所取得的里程碑!

运行时API端点

项目进展|Polkascan第四次开发更新所取得的里程碑!

2.3.区块浏览器数据库

Polkascan PRE与DBMS 无关。也就是说,我最新版本的MySQL为里程碑4的数据库设置了Docker Compose。你可以使用自己喜欢的工具连接到MySQL- DBMS。以下是默认连接的详细信息:

项目进展|Polkascan第四次开发更新所取得的里程碑!

项目进展|Polkascan第四次开发更新所取得的里程碑!

图2.2:区块浏览器数据库

该数据库包含许多表格,如下所示:

项目进展|Polkascan第四次开发更新所取得的里程碑!

2.4.区块浏览器Docker Compose

以下是Docker Compose设置中有关组件的详细信息:

版本

项目进展|Polkascan第四次开发更新所取得的里程碑!

服务

项目进展|Polkascan第四次开发更新所取得的里程碑!

 

项目进展|Polkascan第四次开发更新所取得的里程碑!

3.提高可用性

里程碑4版本大幅度提高了网站的可用性。

3.1.菜单结构

菜单结构将浏览器的各个部分组合成一致的集群,例如:“链”,“帐户”,“抵押”,“治理”和“运行时”。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图3.1:Polkascan PRE菜单结构

3.2.颜色编码

Docker Compose的Substrate节点默认设置是最新Kusama-runtime的“开发”配置。默认配置的颜色编码是“灰色”。其他网络配置可设置不同的颜色代码,例如:Kusama(kusama-pink),Alexander(亚历山大粉红色),Edgeware(蓝色)和Joystream(绿松石)。

3.3.标签结构

选项卡UI控件在那种有详细信息的页面上就可以找到,例如在“区块详细信息”页面你就可以找到选项卡UI 控件。选项卡UI控件可更好地概述1 对n的关系,尤其对于一个实体具有多种1对n的关系。例如,一个区块可能包含交易,状态,日志等诸多信息。该UI控件可减少使用鼠标进行垂直页面滚动,以便用户快速查到信息。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图3.2:Polkascan PRE标签结构

3.4.数据渲染

浏览器GUI复合体的诸多部分都是嵌套的数据结构。在许多情况下,Substrate的元数据会为数据结构提供正确的解码上下文。这些案例可作为概念验证,未来此功能将会在更多的地方实现。

帐户地址

帐户地址始终以包含恒等式、资源深链接和缩写规则的方式呈现。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图3.3:丰富的帐户地址呈现

公民投票决定提案

提案通过需要公民投票决定。Substrate允许以访问的形式对提案进行投票表决。访问进行投票是否有效取决于Substrate运行时,而Substrate运行时又是动态变化的,因此提案不存在固定的解码上下文。因此,提案的呈现方式取决于运行时的动态元数据,甚至可以使用嵌套结构来递归查询提案。图3.4的示例就是民主提案,用户将账户的余额设置为特定值以表示同意该提案通过。递归与账户地址的呈现显示在一起。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图3.4:高度民主——公民投票提案呈现

3.5.过滤器

基本过滤器已添加到交易,固有和事件的概述页面中。这些过滤器可通过轻松地过滤出与设置的动态类别相匹配的记录。这些示例可作为概念验证,未来此功能将在更多地方实施。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图3.5:交易概述页面上的基本过滤器

3.6.搜索

目标网页和“分析工具”菜单中的特定页面上都提供了基本搜索功能。可输入以下进行搜索:区块哈希值,区块编号,帐户地址,帐户搜索,交易哈希值和固定ID。搜索匹配将指向特定资源的详细页面。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图3.6:基本搜索页面

此外,登录页面是未来高级搜索功能的占位文字,针对搜索数据点繁多的情况,未来高级搜索功能为用户提供了逻辑搜索和结果页面。

4.性能优化

里程碑4版本实现了许多性能优化。

通过“ 多链区块浏览器和数据分析 ”技术的研究,Polkascan认为优化性能是一项持续的挑战。任何单个应用程序或任何单个攻击载体都可以使区块链的库达到极限。通常,如果用户需要浏览器提供接近实时的数据。因此用户需根据区块链的链式提示,在区块数据开放的时间内将所有数据处理并存储。

4.1.基本的Substrate 测试

里程碑4版本已通过了基本的Substrate测试,初步结论是Polkascan-stack能够以非常高的容量扩展和处理基于Substrate的区块链。

该Substrate测试使用了SubstrateJSON-RPC模型来服务一百万个区块,每个区块的外部交易以数量级增长的方式来模拟具有高容量的基于Substrate的链。

Vanilla Polkascan PRE能够在消费级硬件上以恒定的速率处理多达5000笔交易(一个区块的交易量)。当区块处理的交易量超过5000时,可通过水平扩容提高区块的可扩展性。

4.2.水平扩容

Polkascan堆栈允许在多个级别上进行水平扩容。

根据每个区块处理的交易量,在高交易量的区块上可实施水平扩容。也就是说,只要Harvester 能够在链的区块时间内处理区块链的数据,它就能够跟上链条并提供实时数据。Polkascan项目的多链区块浏览器包括每个区块链的Harvester应用程序。

Redis消息代理体系结构上的Celery-workers通过异步多线程在单个区块链中进一步实现了水平扩容。Harvester有两个不同的进程,其中一个是累加器(accumulator),它用来收集无状态数据,另一个是排序器(sequfier)可根据可用的无状态数据来构建有状态数据。累加器的任务弹性非常好,因为累加器可以并行化,并以任意随机顺序执行。排序器只需执行很少的任务。

4.3.数据库优化

通过之前对通用EVM区块浏览器的工作,认为管理大型数据库是一个持续的挑战。通常,如果你需要特定区块链的所有数据分析(所有的数据分析都由浏览器提供),那么你数据库将会变得非常大。Polkascan认为以太坊主网区块浏览器的数据库容量> 10TB。事实证明,按照以下策略可成功处理大型数据库。

基于交易的提交

Harvester适用于基于交易的提交策略。这种策略写入完整区块的所有数据内,若通过异常则失败。这种策略确保了每个区块数据的完整性。

确定键

浏览器的数据结构的数据定义有确定键。在许多示例中,确定键都是复合键结构。以extrinsics和events为例,它们的主键分别是block_id的复合键和区块记录索引的复合键。确定键和整个数据库的确定性数据都能够跨数据库执行数据的完整性检查。请注意,某些entity尚未进行优化。

一次写入

应用一次写入数据库策略确保了只需一次即可将数据写入数据结构,而无需额外的读取。这意味着几乎所有case都不需要更新语句,从而限制了数据库i / o。

批量写入

尽可能应用批量写入数据库策略。例如,当区块由'n'笔交易组成时,一个带有“n”笔交易记录的插入语句比只带有一笔交易记录的n个插入语句更高效,因此限制了数据库i / o。

搜索优化

附加的数据库索引有更高的读取性能(查询,过滤和排序),但写入性能步伐哦。应用优化策略使添加索引的占用空间可以通过附加功能得到验证。

此外,Harvester的数据库模型和浏览器API已被严格的分离。Harvester自带将数据写入数据库功能,浏览器API自带读取数据库数据的功能。虽然这两个应用程序当前使用的是相同的数据库模型,但这些模型目前已在两个代码库中被复制。Harvester的数据库模型和浏览器API的分离最终会为每个应用程序提供不同的数据库索引策略。Harvester的索引策略针对数据库写入进行优化,而浏览器API的索引策略针对数据库读取进行优化。

Partition-ready

区块链数据库具有固有属性,即大部分数据都是无状态的,表明数据是不会更改的。每个区块范围的分区策略允许对大型静态数据分区的服务管理活动进行优化。尽管尚未实现分区策略,但是大部分数据的数据结构可以通过100,000块的区块范围来划分。

4.4.API缓存

一个实现Web应用程序的缓存策略的简单参数可以限制数据库i / o。文件系统i / o或内存i / o都比数据库i / o运行的更快。如前文所述,区块链数据库的固有属性是大部分数据都是无状态的。任何多次提供服务的无状态数据都来自缓存引擎。

每当Web应用程序得到公共服务并具有高流量时,就会加大对缓存的需求。为了有效地处理缓存和控制流量,开发者已经做了大量的技术准备,例如:json输出缓存,互斥锁定,基于资源的TTL,速率限制和节流,访问控制。以上技术准备将在后续的文章中详细介绍。

4.5.应用程序优化

浏览器GUI是一个 Angular 应用程序,使用Typescrip(作为主要语言)转换为纯Javascrip。该应用程序有一个SPA -架构,SPA -架构完全在浏览器中运行,并通过动态改写当前页面与用户交互,而不是从服务器加载整个新页面与用户交互。应用程序的数据完全由外部—本地或远程—API端点(浏览器-API)提供。

该架构可以很容易地与生态系统中可用的许多库兼容。Bulma框架确保了用户界面组件和控件的跨浏览器兼容性,并应用响应设计标准实现对屏幕布局的优化,其中包括对web,平板电脑和移动设备的屏幕优化。

Angular架构是移动准备,Angular架构将会作为跨平台和web应用程序被安装在安卓系统和苹果系统,而安卓和苹果各自的应用商店用的是 Ionic架构。

5.Polkascan PRE的黑客技术

Polkascan堆栈基于Harvester的 Python框架和浏览器的Angular框架。应用程序堆栈与Docker和Docker-Compose粘合在一起,这使得应用程序可在任何地方运行。破解本文档前面引用的docker compose文件,可使Polkascan PRE免受黑客攻击。在之前的开发更新中记录了许多黑客技术,例如:自定义端口,运行其他网络,使用自己的Substrate节点和数据库服务器。在2009年进一步讨论了这些黑客技术。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图5.1:WEB3SCAN的Arjan Zijderveld在Web3 Summit 2019:Hacking on Polkascan PRE。

6.Polkascan

Polkascan项目为Polkadot生态系统做出了贡献——提供通用的开源区块浏览器(称为Polkascan PRE)。Polkascan PRE为基于Substrate的区块链提供区块浏览器,例如Polkadot中继链(Kusama网络)。所提供的区块浏览器从Substrate节点收集和解码数据,将解码数据存储在关系数据库中,并通过API(区块浏览器用户界面所使用的API)传播数据。第一轮WEB3基金会就确保了Polkadot生态系统从第一天起就可以访问开源区块浏览器!

6.1.Polkascan及其生态系统

开发活动与重要的生态系统组织(Web3 基金会和 Parity tech)紧密结合。社区支持各种新网络和平行链(Edgeware,Robonomics ,Joystream等等)。社区对平行线程非常感兴趣,并希望Polkascan PRE能够兼容任何平行线程区块链。社区正在与其他生态系统服务提供商(钱包,水龙头,客户)就平台集成进行协商。

社区已经代码库提供了第一个社区代码贡献,并且社区第一次得到 Web3 基金会的资助,此次资助将用于开源代码库范围功能的开发活动。第一个Gitcoin赏金将用于实现浏览器GUI的国际化和本地化,为Polkascan提供(英语,中文,俄语,日语等)多种语言支持。该项目将进一步广泛采用多链探索和数据分析技术。

WEB3SCAN正在构建多链探索和数据分析技术,Polkascan堆栈是关键的组件。Polkadot生态系统已经可以显示出其他区块浏览器的标志。其中特别有趣的标志是Polkadot JS Apps。与Polkascan相比,该项目关注的是区块链的当前状态,而不是专注于全链和多链。与Polkascan一样,WEB3SCAN项目一开始就开发了整个堆栈。一个关键的区别是Polkadot JS Apps项目有Typescript / Javascript代码库,而Polkascan项目有Python代码库。鉴于两个项目的目标,代码库的选择是合理的。生态系统中的其他区块浏览器都重用了Polkadot JS Apps项目(Polka.io)或Polkascan项目(Subscan和Boka)技术堆栈。

6.2.Polkascan项目更新

此篇文章总结了社区与第一波Web3 基金会赠款的相关的工作。社区将继续研究区块浏览器堆栈的开源组件,将持续更新有关多链浏览器平台polkascan.io的信息。你可在以下公告资源中查看项目技术开发的进度:Medium,Twitter和GitHub。如果你想与社区开展合作,或者你想成为项目的Substrate实施者或生态系统服务提供商,请主动联系社区。你可在Riot频道上联系社区。快来联系社区吧,期待与你一起合作开发新技术。

7.WEB3SCAN

7.1.WEB3SCAN | 服务提供者

WEB3SCAN是 Polkascan项目背后的组织 ,WEB3SCAN不仅提供关于区块链数据和区块链信息管理的专业服务,还提供全方位多链探索和数据分析技术的服务,咨询服务和系统集成服务。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图7.1:WEB3SCAN的使命:使多链数据易于访问和理解

7.2.Polkascan.io | Polkadot生态系统多链浏览器

WEB3SCAN正在开发一个名为Polkascan MC的多链浏览器,其中polkascan.io就是多链浏览器。多链浏览器旨在使多链数据易于访问和理解。为了进一步实现Polkascan 多链浏览器,社区正在开发可与许多独立链配合良好的区块浏览器。这些独立链的区块浏览器依次聚合到Polkascan多链探测器中。

项目进展|Polkascan第四次开发更新所取得的里程碑!

图7.2:Polkadot生态系统的多链区浏览器。(链接)

7.3.WEB3SCAN | 媒体

欲知更多有关WEB3SCAN的信息,或者有任何疑问,请与社区联系。

博客

·Parity Technologies博客:基于Substrate的Polkascan 

·LongHash博客:WEB3SCAN:Polkascan背后的团队 

·Polkadot博客:发展更新#3 

·Polkadot博客:发展更新#2 

·Polkadot博客:发展更新#1 

·Web3基金会拨款公告: 第一波赠款受助人

·Polkadot博客: Polkascan公告

播客

·去中心化数据!:第23集 

演讲

·新加坡LongHash:演示日 

·柏林的Sub0: 发展更新 

·巴黎EthCC 2019的Web3基金会:采访

·Parity Technologies在布拉格Devcon4举办的活动:Polkascan公告 

项目进展|Polkascan第四次开发更新所取得的里程碑!

图7.3:WEB3SCAN的Dave Hoogendoorn在DotCon 0.5 2019。

来源|https://medium.com/polkadot-network/polkascan-development-update-4-584705a00cc6

翻译|头等仓Cathrine

编译|头等仓Mark

译文版权属头等仓所有,任何转载请保留文末信息

本文由 区块链资讯平台头等仓 作者:Mark 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
头等仓APP下载

发表评论