cc加速器数据解析出错

作者:王越 / 微众银行区块链核心开发者

来源:微众银行区块链微信公众号

其中, 数据仓库组件Data-Stash通过为节点在外部生成全量数据备份,实现海量数据高效治理,关键特性和使用方式参见《数据仓库组件Data-Stash:助力区块链节点“轻装上阵”》

本文将介绍数据导出组件Data-Export,欢迎大家积极体验,并将使用诉求或优化建议反馈给我们。

区块链业务应用中,对链上数据进行分析处理是常见需求,如统计、报表、监管、审计等,这些需求往往给现有区块链网络带来一些挑战:

当前区块链针对链上数据进行复杂查询或分析,存在效率低、兼容性差的问题。

链上计算资源非常宝贵,如果在链上对数据执行复杂的分析处理,会造成链上资源的浪费。

链上智能合约各不相同,每个区块链项目都要开发能够导出基于自身合约业务数据的应用,重复“造轮子”。

Data-Export为上述难题提供解决方案,通过提供一种通用化、智能化、标准化的数据导出解决方案,降低区块链数据开发门槛,提升研发效率。

使用者几乎无需编码,只进行简单配置,即可把结构化的数据导出到关系型数据库或ElasticSearch等数据存储中,以便后续业务分析和处理。同时支持多活部署、数据分库分表、导出数据可视化、应用监控等功能,适应各类复杂业务场景,满足业务开发中各项需求,提升使用体验。

Data-Export作为区块链数据治理的关键组件,已整合到区块链中间件平台WeBASE数据导出子系统。Data-Export也可以独立与区块链底层集成,灵活地支持业务需求,以适应更多的使用场景、打造更多的功能。

作为数据治理工具,Data-Export可为区块链底层平台提供数据导出能力,支持多活部署、数据分库分表、导出数据可视化、应用监控等功能,具备支持金融级高并发、高可用、海量数据导出的能力。

1)支持自动分析、导出智能合约数据

Data-Export支持导出区块链基础数据、基于智能合约自动分析的详情数据。基础数据包含当前块高、交易总量等。如配置了FISO BCOS上运行的合约,则可导出区块链上合约的业务数据,包括event、构造函数、合约地址、执行函数的信息等。

开发者可基于已导出的区块链基础数据,以及智能合约部署合约账户、事件和函数等数据,进行二次开发、定制复杂查询和数据分析的逻辑,快速实现业务需求。

2)灵活的存储和导出策略

链上存在海量数据时,将数据导出到单个数据库或单个业务表会给运维带来巨大压力,造成数据库性能衰减;如数据量过大,通常需对数据进行分片,将同一表内的数据拆分到多个或同个数据库的多张表中,即分库分表。

为此,Data-Export支持可配置的多数据源存储、读写分离和分库分表。Data-Export也支持ElasticSearch,方便海量数据的存储、查询、检索。

数据导出策略方面,Data-Export提供灵活可配置的区块、交易、事件、账户等数据导出功能,可过滤不需要的事件、函数以及其中的具体字段。如某个合约事件信息无需导出,则可通过配置来过滤该事件信息。

在大数据、高可用的场景中,单节点部署的数据导出服务通常无法满足业务需要,且一旦单机服务宕机,则无法获取最新数据。多节点部署方案,可将导出任务独立分片到多节点执行,即便个别节点宕机时也能保证任务正常执行,同时还能提升数据导出的效率。

Data-Export支持灵活的分布式部署和任务调度,保证数据导出的高效率和高可用,具备分布式任务协调服务、横向扩展、灵活伸缩的能力。

4)丰富的API及可视化能力

在数据查询上,Data-Export支持丰富的Restful API数据查询接口,方便用户对链上导出数据完成通用查询操作。

在数据可视化上,Data-Export集成了swagger插件,提供可视化互动API控制台;集成了可视化数据插件Grafana,实现直观、实时、可视化的展示区块链数据;支持自动生成FISCO BCOS链上数据监控视图,让用户对链上数据了如指掌。

Data-Export组件包括了codegen、parser、extractor、db、common六个主要模块,提供了数据导出、分布式任务调度、数据查询、可视化、监控和管理等功能。

该模块负责相关合约代码和配置文件的生成,包括合约解析、代码模板、代码生成、组件组装等子模块。

codegen运行模式如下图:

合约解析模块:解析智能合约文件,获取合约中的交易和event对象。

代码模板模块:用于生成获取交易/event数据的代码模板。

代码生成模块:根据获取的交易和event对象,填充代码模板,生成代码文件。

组件组装模块:用于将生成的代码和core组装成一个独立服务。

2)core模块:核心模块

该模块是Data-Export的核心模块,它被打包为一个可执行的BootJar包,内置开箱即用的Restful API,开发者可便捷地获得数据导出服务。同时,core自身也是一个示例,向开发者展示了如何组合利用各功能模块Jar包,来开发一个功能完整的数据导出系统。

链上数据由Data-Export任务调度模块统一调度,由BlocakFetcher从链上获取数据到本地处理节点,交由对应的BlockHandler进行解析,最后将解析后的数据封装,交由db数据存储模块进行持久化。

如上所述,Data-Export对于链上数据处理的核心流程为数据获取、解析、持久化三步,其中涉及功能模块包括线程管理、多活管理、数据管理、异常监控、用户访问。

该模块旨在单节点运行情况下,最大限度地提升数据导出和处理效率,包括链上数据的获取、解析、任务调度和执行等,均由线程管理模块统一调度。

该模块集成了Elastic-Job,现已支持分布式部署、任务分片、弹性扩容、并行调度和定制化流程任务。该组件可在分布式环境下,通过SimpleJob对区块进行抓取,并由DataflowJob对区块进行解析处理。

该模块集成了Sharding-JDBC,支持分库分表和读写分离,开发者使用时只需设置分片数,系统会自动生成分片策略配置,将海量数据导出到不同的库表中。

该模块负责对导出数据的异常进行监控和处理,包括在任务异常失败时,对区块数据进行回滚,并重试补偿,以及对任务超时的校验。

Data-Export通过脚本监控数据源和链上数据,来确保导出任务的正确执行,监控主要基于两个维度:

一段时间内,DB中的数据开始落后于链上数据,直到达到某个阈值;

链上块高增加,一段时间内,DB中块高不变。

一旦触发其中某一个的条件,则会输出报警日志。

该模块提供两种数据访问方式,一种是API方式,支持用户系统本地调用;另一种为REST方式,可通过http方式访问,降低业务耦合性,支持跨平台调用。

用户接口按照数据类型分成四类接口:区块数据接口、账户数据接口、交易数据接口和事件数据接口。其中,每类接口中都支持基于块高、hash或账户的查询,同样也支持基于时间、特定字段的复杂查询。

该模块进一步封装了区块链底层平台FISCO BCOS SDK的逻辑,可以更便捷地调用上链功能,获取区块链数据,包括区块高度、交易详情、区块详情等信息。

4)parser模块:数据解析

该模块封装了区块解析功能,可对链上数据进行分析处理。extractor模块获取链上数据后,由parser模块对合约和区块信息进行完整的解析处理,获得区块、函数、事件、账户等数据详情。

合约加载:解析器执行前,会加载合约的BIN、ABI和配置信息,计算所有合约函数的MethodId。

账户解析:通过Block获取区块的合约地址,通过合约地址获取runcode后,由预先加载的合约BIN信息,识别账户的类型,最终解析出账户。

函数解析:如函数为构造函数,通过加载合约可解析出函数的值传递信息;如函数非构造函数,则transaction中的to字段即为合约地址。通过合约地址获得函数所属的合约,并根据transaction中附带的input和预先加载的methodId进行比对,可获得函数名。在精准定位了函数所属合约和函数名以后,会触发transactionHandler,并执行对应的解析工作。

事件解析: 基于已解析的transactionHash与合约名映射,可以获取合约名称;根据特定的合约名称,会自动触发该合约下的eventHandler,并执行对应解析工作。

区块解析: 根据获得的Block对象属性解析,获得区块概要信息。

5)db模块:数据存储

该模块封装了数据存储和查询逻辑,并提供数据存储扩展接口,可进行定制开发,目前默认支持mysql和ElasticSearch的存储。

Data-Export通过db模块将数据导出到存储介质中,每一类数据都有特定的存储格式和模型,包括区块原始数据、解析后的区块数据、合约信息、事件数据和交易数据等多种存储模型,存储模型如下:

6)common模块:公共模块

该模块封装了一些公用的数据结构、工具类和公共参数等,包括:

链上数据类型转换工具,提供solidity和java类型转换功能支持。

合约类扫描解析工具,对配置合约类进行解析,提取有效信息。

用于模块间交互的数据对象,在模块间传递信息。

全局静态参数,包括任务状态等枚举。

时间、格式等常用工具。

1)集成到数据可视化后台系统

某公司运营人员需获得当前链上业务进展的实时信息和摘要信息,此时可使用Data-Export组件,根据实际需求进行定制化开发,在较短时间内即可投入使用。

使用Data-Export,将导出db的链上数据接入到公司的统一监控平台,公司产品经理可在业务后台系统上获得链上业务的实时进展,运维人员也可实时监控业务系统状态。

2)集成到区块链业务数据分析系统

某公司基于FISCO BCOS开发了区块链业务系统,要求对链上数据进行分析,并可实时查看各类复杂的业务报表,此时可使用Data-Export,配置相关智能合约信息,导出链上数据。

使用Data-Export,将区块链上的数据实时导出到数据库中,开发者可利用Data-Export自带的Restful API对数据进行查询,获得准实时的链上数据,从而进一步分析数据,生成各类业务报表。

上述功能所涉及的最新代码和技术文档已同步更新,欢迎体验和 star 支持。如需咨询技术问题,欢迎关注本公众号,对话框回复【小助手】进技术交流群。

首次体验Data-Export,可参考快速部署文档:

向我们报告问题,欢迎提交issue:

}

不少猫和老鼠玩家都在吐槽,猫猫怎么又变弱了啊。最近的版本对猫猫真的是有很大恶意呢,有哪些变动?小编给大家整理了一下猫和老鼠手游橘猫削弱数据解析,老鼠有所增强。

1、托普斯增强,主动技【两重猫格】LV二级时段身延续时长提高!

2、图多盖洛增强,兵器技能【魅惑之吻】将对鼠方带来伤害提高!


3、牛仔汤姆减弱,兵器技能【斗皮鞭】早期直接被砍!再也不能开心顽耍了,但是主动技却是稍微增强了!

4、牛仔杰瑞大面积增强,主动技后期最少达到到9秒,而且提高其伤害!

5、恶魔泰菲增强,CD时间大面积缩减,被动技能答复特效提高!

6、海盗杰瑞稍微微调,减弱兵器技能【海盗火药桶】,目前炸毁火箭筒时间要更长期才可以复原!荣幸的是增强了其被动技能【无坚不摧】,LV2的挣扎速度提高、LV3的破墙力量提高!

7、雪梨大面积增强,主动技【爱心之吻】由本来的【30秒】降到最少【10秒】!

8、剑客杰瑞增强,增强其被动技能【越战越勇】!

9、恶魔杰瑞稍微微调,这一个就需要自身瞧了,特效乐呵呵!

玩猫的小伙伴中,使用橘猫的占多数,就连曾经热门的黑猫,在橘猫面前也只能排第二。猫和老鼠手游中的橘猫之所以强,是因为它的2技能垃圾桶,可以说是守株待兔的必备技能,只要把垃圾桶往火箭旁边一放,老鼠玩家就别想轻易的救队友。想要获得橘猫莱特宁,需要花费9998个金币,所以说,贵还是有贵的好处的。不过剑客泰菲就不一样了,虽然它很贵,但在对局中却无用武之地,剑客泰菲的1技能升到满级,还不如剑客杰瑞2技能的1级效果。

在这次的版本更新当中,游戏策划削弱了橘猫莱特宁的2技能和被动技能,众所周知,游戏中的橘猫主要靠这2个技能进行守尸。不止对橘猫这个角色进行了削弱,还对猫咪整体进行了一定程度的削弱,这在接下来的内容中会给大家具体说到。这次对猫咪的削弱,相信是小伙伴们喜闻乐见的,即使你经常玩橘猫,如果太容易赢了,也不会让你有任何的成就感。

}

我要回帖

更多关于 cc加速器加速不了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信