在自主研发并开源的区块链应用开发组件WeBankBlockchain-SmartDev中,我们打造了集基础类型、数据结构、通用功能、上层业务等功能于一身的SmartDev-Contract智能合约库,帮助Solidity开发者提升开发效率,降低因手动编写合约代码所带来的合约安全风险。
独行快,众行远。当前版本的智能合约库历经供应链金融、存证、农牧溯源等多个业务场景的广泛应用,已经能够满足大多数业务场景的开发需求。然而,行业不同,业务需求变幻无穷,我们期待各行各业智能合约实践者能够向社区分享你的点滴开发心得,共同推动智能合约库向更成熟的技术、更完善的生态上发展。为此,我们启动“智能合约代码征集令”,诚邀社区伙伴“码”不停“提”,一起打磨出更好用的工具库!
我们将为活动开设专业交流群,参与者可以获得智能合约专家的在线助攻,轻松将丰富礼品收入囊中。提交代码成功完成PR合入,还代表着你成为智能合约库项目的一员,届时,你的贡献者身份将出现在社区各个荣誉榜单中。
活动介绍
活动时间
2021年5月19日——2021年6月16日
*活动长期有效,欢迎大家在任意时间提交代码,我们将以四周为一个统计周期,明确周期的活动规则,并设置任务各异的挑战。
活动内容
本次活动基于Solidity语言征集智能合约代码
Solidity版本范围:0.4.25-0.6.10
为了便于参与,我们拟定了部分任务列表(如下表所示),每位参与者可以选择自己感兴趣的任务进行领取并开发,也可以基于具体的业务场景作为开发任务,原则上不做代码功能的限定。由于每一个任务为概述性描述,包含内容较多,所以每个任务可由多位参与者领取。
任务ID | 任务名称 | 任务描述 |
1 | 原有合约库优化和增强 | 针对智能合约库中现有合约的功能进行补充和增强,如针对不同数据类型,提供数组、字符串、地址等操作。 |
2 | 浮点数、定点数 | solidity本身没有相关支持,需要允许指定精度、四则运算等功能 |
3 | 数学运算增强 | 提供开方、指数、对数等运算 |
4 | 位操作 | 提供各种位操作,例如取整数最左或最右的1等。 |
5 | 二维数组 | 可针对不同数据类型,提供二位数组的增、删、改、查、遍历、是否存在等操作。 |
6 | 单向链表 | 可针对不同数据类型,提供链表的创建、增、删、改、查、遍历及是否存在等操作。 |
7 | 集合 | 可针对不同数据类型,提供集合(Set)的创建、增、删、改、查、遍历及是否存在等操作。 |
8 | 梅克尔树 | 提供创建梅克尔树及验证功能 |
9 | 摘要计算 | 基于solidity内置函数keccak256、sha3、ripemd160等计算摘要 |
10 | 签名和验签 | 提供基于solidity的签名和验证签名等功能 |
11 | 内置函数 | 基于block、msg、tx等内置函数提供对应的功能 |
12 | 时间操作 | 提供年月日时间计算、转化和查询功能 |
13 | 计数器操作 | 提供基于solidity的计数器功能 |
14 | 隐私计算 | 试验zkrp等零知识证明算法,提供一个范围证明验证器合约 |
15 | 匿名投票 | 实现匿名投票,在投票期间各票信息以密文形式上链,在投票结束后才公开 |
16 | 代理执行 | 一个代理合约,主要包含添加待执行函数与过期时间、函数执行 等接口 |
17 | 角色操作 | 提供角色的增、删、改、查等功能。 |
18 | 权限操作 | 提供权限的创建、分配、取消等功能 |
19 | 多方签名 | 提供一个抽象层面的多方签名功能,可以应用于多方认证的场景 |
20 | 多方投票 | 提供多方投票功能,投票策略可多样化 |
21 | 黑白名单 | 提供黑白名单的创建、查询、遍历、新增及删除等功能 |
22 | 商品溯源 | 可针对商品溯源的全生命周期或其中的某项环节,提供智能合约的相关解决方案案例。 |
23 | 版权保护 | 包括但不限于文化、专利、艺术品、数字内容的确权、鉴权等方案。 |
24 | 金融 | 对于供应链金融、征信、反洗钱等金融场景,提供相关的智能合约通用化模板。 |
25 | 慈善公益 | 基于慈善公益,提供但不限于善款追溯、善行激励等场景的使用场景 |
26 | 档案管理 | 提供档案管理相关的功能实现,包括但不限于个人简历、学历证明、荣誉证明等使用场景 |
27 | 共享经济 | 针对共享经济中的痛点,提供区块链的解决方案,例如租房、智能电网、图书共享等使用场景。 |
奖励介绍
参与流程
本次活动可以以个人方式参与也可以组队参与,流程如下所示。
报名方式
识别下方二维码加小助手为好友,小助手将邀请你进入活动专属交流群。加好友时请备注:智能合约。
微众区块链小助手二维码
领取任务
小助手将为大家提供在线报名表,报名后可在任务列表中选择1个或多个任务,也可以根据自身情况设定任务,在群中同步管理员,完成任务领取。
任务开发及测试
基于领取的或者自身设定的任务进行合约开发测试,并编写对应的测试案例和文档。
任务提交
完成开发和测试之后, 即可通过PR的方式对代码及文档进行提交,提交内容中需包含:
经过测试后的完整代码;
提交PR路径:
https://github.com/WeBankBlockchain/SmartDev-Contract/pulls
代码提交至dev分支。
代码审核
智能合约库组件维护者对合约代码及文档进行审核,如有问题,会在群中和开发者进行讨论,直到开发者和维护者达成共识,并符合合入要求。
代码合入
当完成代码审核,由智能合约库组件维护者对PR进行合入,任务结束。
注意事项
贡献的代码必须遵循Apache V2协议。
参与活动的代码须原创,否则视为无效参与。
基于政策和监管要求,智能合约代码中严禁出现coin、tokoen等字眼,功能层面严禁出现代币、Defi等场景。
活动奖品将在1个活动周期结束后的15个工作日内完成发放,如有问题咨询小助手。
为保障活动公平公正进行,如出现1人多号刷礼品等现象,经查实后取消活动参与及奖励资格。
组件代码仓库及文档
Github代码仓库:
https://github.com/WeBankBlockchain/SmartDev-Contract
Gitee代码仓库:
https://gitee.com/WeBankBlockchain/SmartDev-Contract
文档地址:
https://smartdev-doc.readthedocs.io/zh_CN/latest/