Skip to content
yangchongbin edited this page Dec 20, 2018 · 8 revisions

测试1:

在节点A执行send操作后,在update之前,不能执行redeem操作:
ABC三个节点互连:
①,节点A mint
②,A给B进行send操作,同时C挖矿,miner.start(),proof验证成功。
③,节点A进行redeem操作,操作失败。cannot send RedeemTx after sendTx


测试2:
在节点A执行send操作后,在update之前,不能再次执行Mint操作:
ABC三个节点互连:
①,节点A mint
②,A给B进行send操作,同时C挖矿,miner.start(),proof验证成功。
③,节点A进行Mint操作,操作失败。cannot send MintTx after sendTx


测试3: 在节点执行完某个操作后,退出控制台,再进去,接着下一步操作。
ABCD四个节点互连,A作为矿工不参与交易:
①,BCD执行均Mint操作,同时,A挖矿,proof都验证成功。 ②,exit 退出控制台,再进入。
③,接着分别执行B send给C,C send给D,D send给B,同时A挖矿。
④,exit 退出控制台,再进入。
⑤,接着分别给 B C D执行update 操作,proof验证成功。


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