JCCDex / ProjectFundingProposal

Jingtum & MOAC Project Funding Proposal
28 stars 8 forks source link

PFP05 SWTC公链钱包开发 #5

Closed gwang74 closed 4 years ago

gwang74 commented 5 years ago

大家好,我们是井创科技,井创科技是科大国创和井畅的合资公司,致力于井通区块链生态的发展。基于目前井通生态发展趋势,提出井通区块链钱包设计方案,想要打造一款去中心化的高安全,高可用的一站式服务区块链数字资产钱包app。 钱包提案:https://shimo.im/docs/a50c2f6d70c04d12

AnFengDe commented 5 years ago

请提供一个工作清单,工作量和工期

此外钱包的定位是技术模块,方便第三方快速搭建应用,面向B端?还是C端?

gwang74 commented 5 years ago

目前我们的定位应该是C端的钱包开发,具体的计划如下,有什么建议或错误欢迎提出! SWTC钱包开发清单:https://shimo.im/sheets/SWYv0GuAbGoZ1CS2/

AnFengDe commented 5 years ago

我建议一个最核心的功能集合,作为社区可以复用的基础代码使用

基础功能

KYC&AML

KYC&AML的登记认证,毫无疑问需要一个中心化设施服务,可以和井证、IPFS结合,通过法定接口确认和建立身份信息

杂项

KYC功能算是增强选项,第一阶段目标达成,我们可以继续考虑DAPP Store的接入,作为整个井通公链的生态入口考虑

gwang74 commented 5 years ago

基于上面提到的功能,列了下 开发工作量清单:https://shimo.im/sheets/CYwhyfptOu48mDIl/YTO5X

gwang74 commented 5 years ago

SWTC钱包版本库--Android(开发中) https://github.com/HFJingchuang/Doughnut

iOS版要稍等一下。。。

AnFengDe commented 5 years ago

支付记录 Android版本审计后发放 iOS版本审计发放

Android审计 iOS审计

purplieee commented 5 years ago

试用了优盾钱包,还算OK的,准备继续用

gwang74 commented 5 years ago

甜甜圈钱包Android版下载地址,欢迎试用!

lospringliu commented 5 years ago

@gwang74, 现在按百分比进度大概多少了?

gwang74 commented 5 years ago

85%吧,主要是iOS这边还有部分功能没有完成,正在加紧进度开发。。

gwang74 commented 5 years ago

@AnFengDe @lospringliu 由于对于iOS开发工数的预估不足,现在导致iOS的开发超出预算,这种可以申请补贴吗? 1.Object-c keystore库的编写; 2.jingtum-lib-objectc对于链上获取的原始数据未解析封装,导致数据解析任务增加 3.另外就本身开发任务的预估不足 预计申请补贴 20人日

gwang74 commented 5 years ago

开发进度 android版本:100% iOS:90%

silentvolcano commented 4 years ago

这个项目目前的现状是什么?上月更新时android开发进度100%,ios90%。

gwang74 commented 4 years ago

已完成,Android & iOS 项目地址 Android:https://github.com/HFJingchuang/Doughnut iOS:https://github.com/HFJingchuang/Doughnut-ios

Yelvabaoji commented 4 years ago

这个项目已经完成了。那么下一步你有什么打算?是召集人来测试,还是审计?

abellq commented 4 years ago

测试DAPP相关,源码还需要安装环境,比较麻烦。有直接打包好的APK文件吗?

gwang74 commented 4 years ago

@lospringliu @AnFengDe 这个项目之前提交交付申请了,麻烦社区技术委员会安排下验收呗。 另外,本次新追加了中文助记词功能模块和ED25519模式支持。

lospringliu commented 4 years ago

这个跨时间好长,我们再整理一下

lospringliu commented 4 years ago

@abellq, 如果你已经在作该审计,立刻联系我确认,通告进度。

gwang74 commented 4 years ago

甜甜圈钱包 Android版下载 iOS版本由于审核问题暂无法提供下载

lospringliu commented 4 years ago

iOS好像有个testflight可以试试

lospringliu commented 4 years ago

@lospringliu @AnFengDe 这个项目之前提交交付申请了,麻烦社区技术委员会安排下验收呗。 另外,本次新追加了中文助记词功能模块和ED25519模式支持。

你用的是swtc-lib 还是 jingtum-lib ?

HFJingchuang commented 4 years ago

@lospringliu 使用的是基于jingtum-lib-java改造的jch-jingtum-lib-android

xmzhou2019 commented 4 years ago

安卓app已完成审计工作,附件是测试报告和用例。 【腾讯文档】swtcwallet-andriod https://docs.qq.com/doc/DSXFucklRY0FzSFFO 【腾讯文档】swtcwallet-andriod-testcase https://docs.qq.com/sheet/DSWZweFZqY2NwS0JH

lospringliu commented 4 years ago

由于@xmzhou2019 没有苹果的环境,我来接受IOS钱包的审计 @gwang74 , 中间碰到问题的话我联系哪位?

lospringliu commented 4 years ago

测试(ios版本)

测试案例

结果 编号 测试模块 用例标题 步骤 预期结果
:white_check_mark: 01 创建钱包 创建钱包跳转 1.打开客户端程序
2.点击创建钱包
1.跳转到创建钱包页面
:x: 02 创建钱包 创建钱包功能验证 1.输入名称和密码
2.确认密码后点创建
1.创建钱包成功
2.提示用户备份钱包
3.:x:提示钱包激活
:white_check_mark: 03 导出钱包 备份钱包功能跳转 1.创建后点立即备份
2.在管理钱包点导出
1.跳转到导出钱包页面
04 导出钱包 助记词备份钱包 1.:x:导出钱包页面中选择助记词方式
2.点击确认备份
1.按照顺序显示中文助记词
:white_check_mark: 05 导出钱包 私钥备份钱包 1.导出钱包页面中选择私钥方式 1.显示钱包私钥
2.显示包含私钥的二维码
3.copy文本或保存二维码
:white_check_mark: 06 导出钱包 keystroe备份钱包 1.导出钱包页面中选择keystore方式 1.显示keystore格式的字符串
2.显示包含keystore内容的二维码
3.copy文本或保存二维码
:white_check_mark: 07 导入钱包 导入钱包功能跳转 1.主界面中点导入 1.跳转到导入钱包页面
08 导入钱包 助记词导入钱包 1.:x:导入钱包页面中选择助记词方式 1.助记词导入
:white_check_mark: 09 导入钱包 私钥备份钱包 1.导入钱包页面中选择私钥方式 1.私钥导入
:white_check_mark: 10 导入钱包 keystore备份钱包 1.导入钱包页面中选择keystore方式 1.keystore导入
:white_check_mark: 11 增加资产 增加资产 1.主界面点击增加资产 1.显示井通链上发行的token类型
2.选择一种资产类型,在钱包页面中显示该该资产的数额
:x: 12 转账 转账 1.向其它钱包转账 1.转账成功:x:(程序退出)
2.资产在其它钱包上查询成功
:white_check_mark: 13 收款 收款 1.生成收款二维码
2.切换钱包扫描二维码转账
1.收款成功
:white_check_mark: 14 交易记录 查看钱包交易流水 1.点击交易记录菜单 1.显示当前钱包交易记录
:white_check_mark: 15 删除钱包 删除钱包 1.输入正确的钱包密码后删除钱包 1.在钱包列表中删除该钱包
:white_check_mark: 16 配置接入 配置接入节点 1.节点设置菜单
2.选择内置或添加自定义接入节点
1.切换后钱包资产仍能显示
:white_check_mark: 17 版本信息 查看版本信息 1.菜单中点击当前版本 1.显示当前版本号
a0 安全 安全相关 1.离线签名
2.:x:备份点击自动保存二维码
a1 文档 文档相关 1.:x:缺失
a2 国际化 语言本地化相关 1.缺省依照系统语言
2.应用内切换语言
3.:x:其它
:white_check_mark: a3 兼容性 设备/版本表现 1.多设备
2.多版本
3.ui一致
a4 助记词 bip39 1.:x:支持
a5 ed25519 crypto 1.:x:支持
a6 多签 multisign 1.:x:支持
:white_check_mark: a7 安装/删除 1.安装
2.删除

02 创建钱包

12 钱包转账

a0 安全

a1 文档

a2 国际化

a3 兼容性

a4 助记词

a5 ed25519

a6 多签

lospringliu commented 4 years ago
lospringliu commented 4 years ago

审计(ios版本)

测试

目录

1. 源码构建

1.1 苹果编译环境

组件 版本
操作系统 MacOS Catalina
Xcode 11.6
Cocoapod 1.9

2. 测试概要

2.1 测试组织

角色 姓名 具体职责
测试执行 测试执行:依据测试用例执行测试、跟踪测试过程,必要时回归测试
测试管理 测试策划:包括测试策略的确定、测试进度、资源的准备等
测试设计:根据需求规格说明书完善测试方案,设计测试用例等
测试总结:对测试的过程和活动进行缺陷的汇总分析、经验总结等

2.2 测试环境

机器类型 操作系统 语言
ios app iphone 7 Max ios 10.3
ios app iphone 8 Max ios 11.4
ios app iphone Xs Max ios 12.4
ios app iphone 11 Pro ios 13.7
ios app iphone 11 Pro ios 14.0

2.3 测试类型

类型 \ 阶段 单元 集成 系统
程序版本构建 :white_check_mark:
业务流 :white_check_mark: :white_check_mark: :white_check_mark:
数据流
性能测
兼容性 :white_check_mark:
用户界面(UI) :white_check_mark: :white_check_mark:
安全性和访问控制 :white_check_mark:
安装与反安装 :white_check_mark:

3. 测试结果及缺陷分析

3.1 测试结果

测试表明大致上实现申请的基本功能需求,不过尚存在一系列的缺陷, 其中3.1.1部分需要修复

3.1.1 须要修复的缺陷

测试执行率=15/15*100%=100%(已执行的测试用例数量/测试用例的总数量)

测试通过率=13/15*100%=86%(成功执行的测试用例与测试用例执行数之比)

功能测试用例效率=2/15(发现的缺陷总数量/测试用例的数量)

3.2.2 需求覆盖分析

测试需求覆盖率(测试用例支持的需求数量/测试需求总数)

测试用例的设计是完全建立在需求的基础上的,测试用例和测试需求是完全覆盖的关系,即一个需求既有一个或者多个测试用例进行覆盖,测试用例完全执行,说明测试需求的覆盖率达到100%

3.3 测试用例执行结果

测试用例测试执行通过了13个, 有2个没有通过,通过率86%。

3.4 安全性验证

通过审计代码,用户的钱包地址和私钥用keystore格式用钱包密钥加密存储。在涉及转账的操作均是用私钥本地签名的方式来与远程服务交互,并不会把钱包私钥暴漏给远程服务。

但是,二维码备份时会保存到照片中,这是一个安全隐患。应该提示用扫一扫功能读取,不保存图片

3.5 未决问题

详见 3.1

4 综合评价

4.1 软件能力与缺陷

该系统用xcode开发环境,开发App程序,实现了钱包创建、修改密码、钱包导出、钱包导入、转账收款、交易记录、接入节点配置、版本管理等功能,该系统基本实现了申请资助时明确的各项需求,但受限于实际客观情况,未能实现部分需求, 存在一些列缺陷(详见3.1), 其中3.1.1是必须要修复的部分

4.2 建议

由于项目立项较早,一些基础的需求不完整,建议补充上 bip39/ed25519/多签功能, 支持@swtc/proxy后台(jingtum-api已经弃用)