Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GLCC课题:插件接口测试工具 #3

Open
zhejianglab-ospo opened this issue Jun 26, 2024 · 1 comment
Open

GLCC课题:插件接口测试工具 #3

zhejianglab-ospo opened this issue Jun 26, 2024 · 1 comment

Comments

@zhejianglab-ospo
Copy link

希望测试工具支持对插件所有接口给出全面可靠的测试流程:1.测试用例全面覆盖已有插件的已有接口、2.用例需要充分考虑接口的正常、异常测试场景、3. 测试工具需要提供充分的执行日志信息和测试结论信息。

@bladechen
Copy link
Collaborator

报名链接:https://www.gitlink.org.cn/glcc/2024/subjects/detail/951

背景

AntChain Bridge将跨链互操作解释为两个层次:通信和可信,即跨链的目标在于实现区块链实体之间的可信通信。

在AntChain Bridge的架构中,中继需要与区块链进行交互,而异构链的通信协议各式各样,无法统一适配,因此AntChain Bridge抽象出了区块链桥接组件(Blockchain Bridge Component, BBC),来解决区块链和跨链网络的通信问题。

每种异构链要接入AntChain Bridge跨链网络,都需要实现一套标准的区块链桥接组件,可以分为链上和链下两部分,包括链下插件和系统合约。链下插件需要基于SDK完成开发,链上部分则通常是智能合约,要求实现特定的接口和逻辑,为降低开发难度,我们提供了Solidity版本的实现。

AntChain Bridge为开发者提供了SDK、手册和系统合约模板,来帮助开发者完成插件和合约的开发。同时,AntChain Bridge提供了插件服务(PluginServer)来运行插件,插件服务是一个独立的服务,具备插件管理和响应中继请求的功能。

在当前的工程实现中,BBC链下部分是以插件的形式实现的。AntChain Bridge实现了一套SDK,通过实现SDK中规定的接口(SPI),经过简单的编译,即可生成插件包。插件服务(PluginServer, PS)可以加载BBC链下插件,详情可以参考插件服务的介绍文档。

目标

设计与实现异构链插件测试工具,并针对AntChain Bridge已经开源7款插件产出测试报告。

导师

方宝珠 | fangbaozhu.fbz@antgroup.com
陈盛龙 | shenglong.chensl@antgroup.com

产出要求

支持对插件所有接口给出全面可靠的测试流程:
1. 测试用例全面覆盖已有插件的已有接口:插件需要覆盖现有bcos,fabric,eth,eos,chainmaker,hyperchain,polygon等异构链插件,接口需要覆盖目前已有13个接口;并且针对每个异构链插件,测试工具需要支持启动对应的链进行测试
2. 用例需要充分考虑接口的正常、异常测试场景:正常场景需要保证接口之前调用顺序的正确有效,异常场景需要考虑合约部署需兼容手动部署合约的场景、跨链消息收发需要考虑异常消息收发等多种场景;
3. 测试工具需要提供充分的执行日志信息和测试结论信息:保证每个接口都有日志输出,关键执行逻辑处需要提供核心参数信息,执行失败或异常时提供充分的分析日志。
4. 产出工具使用说明,并给出bcos,fabric,eth,eos,chainmaker,hyperchain,polygon 7款插件的测试报告

能力要求

熟悉Java开发
了解区块链工作原理
熟悉主流区块链的使用方式

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants