Skip to content

整体测试出的问题

chickspy edited this page Dec 17, 2018 · 21 revisions

整体测试出的问题

实例1

步骤:pow算法,signer1, node1, node2节点连接,signer1挖矿,node1执行Mint、Send操作,node2执行Deposit操作
问题:Deposit能产生proof,但是报****** invalid private key; 同时,node2执行Mint操作提示无法验证proof
注:由于Deposit成功产生proof,由于交易签名返回空,导致该笔交易失败;但是存储的value_new、cmtA和cmtA_old却更新,
而账户零知识余额的cmtA却没有更新,所以进行Mint操作时,能产生proof,
但是验证proof时,由于所需的cmtA_old从账户余额中读取,所以无法验证proof

已解决:换个账户,问题不再出现,原因未知

张桐

问题1

步骤:node1成功进行Mint交易,Send交易(向node2发送),以及Update交易,然后node2执行Deposit交易。
问题:node2Deposit操作执行后,在Deposit交易生成之前,打印了两次Update交易验证成功的结果(之前Update已经成功生成并验证,生成了区块)

已解决:换个账户,问题不再出现,原因未知

刘卫壮

问题:开四个节点,A(Mint)给B send,A给C send,此时send失败。
然后B(Mint)给C send,C(Mint)给D send后,此时,B,C都可以执行update操作,而A执行update操作后失败,打印send sendtx firstly

杨崇彬

魏中尧

吉晓辉

问题一:单节点单账户连续redeem错误

step1: Mint   0x200  -  成功
step2: Redeem 0x1ff  -  成功 
step3: Mint   0x1ff  -  失败 
       ''Verifying mint proof unsuccessfully!!!'' 
       Error: Verifying mint proof failed!!!
         at web3.js:3143:20
         at web3.js:6402:15
         at web3.js:5081:36
         at <anonymous>:1:1
step4: Mint   0x1ff  -  失败

1. 方案设计

VNT零知识设计方案

方案设计图

2. 方案实现

实现细节思考

2.1 libsnark模块实现

2.2 ethereum模块实现

2.3 cgo模块实现

3. 方案测试

部分问题

整体测试出的问题

3.1 libsnark模块测试

3.2 整体测试

4. 修改汇总

4.1 libsnark模块修改汇总

4.2 ethereum模块修改汇总

4.3 cgo模块修改汇总

5. 开发技巧

修改并编译web3.js文件

libsnark遇到的大“坑”

FZQA

CGO

MPT trie

transaction 部分修改

简易以太坊测试

Clone this wiki locally