Commit 83debd76 authored by 谢昇's avatar 谢昇

Update cli独立模块命令.md

parent a5bb6a1f
**版本:V6.2.0** **版本:V6.2.0**
**版本:V6.2.0** **版本:V6.2.0**
# 部分模块使用流程 # 部分模块使用流程
## hashlock 哈希锁定合约 # hashlock 哈希锁定合约
`cli hashlock -h `
``` ```
Available Commands: Available Commands:
lock Create hashlock lock transaction lock Create hashlock lock transaction
...@@ -9,6 +10,26 @@ Available Commands: ...@@ -9,6 +10,26 @@ Available Commands:
unlock Create hashlock unlock transaction unlock Create hashlock unlock transaction
``` ```
## 合约功能概述
私钥是花费数字加密货币的唯一手段, 一旦出现丢失的情况,个人财产将无法找回。
目前,主流数字货币本地钱包均实现通过SEED找回私钥的功能,但应用场景局限,仍然存在很大改进空间。
钱包/私钥找回功能为Chain33项目提供一种技术支持,通过实现多权限等级私钥,在保证安全的前提下,为数字加密货币的花费、找回增加灵活性。
## 合约方法描述
钱包/私钥找回功能的实现并不是真正通过某种方式找回丢失的私钥,而是为默认私钥**备份**一个或一组私钥,当默认私钥丢失时,可以通过备份私钥花费之前备份的余额。
要使用备份私钥找回余额,必须之前用默认私钥做过备份,在备份时,账户余额打入相应的retrieve合约地址。
当用户需要用备份私钥花费余额时,先进行prepare操作,这一步操作是为了防止备份私钥被盗的情形。经过此操作,账户余额与合约余额均不改变,只是通知网络,有一笔用私钥签名的操作发生,在一定的周期延时后,此备份私钥可以通过perform操作,将合约地址余额打入到自己合约地址,并后续进行取钱操作。
如果在这个阶段中,默认私钥执行了cancel操作,说明此次取回无效,即使到达限定周期,备份私钥也无法取钱。
整个功能的状态机如下图所示,在backup和prepare状态,余额存在默认私钥对应的合约账户中,只有在成功执行perform操作时,余额才转移到备份私钥对应的合约账户,并可以进行下一步的取回到账户的操作。
默认私钥和备份私钥不是一对一的关系,一个默认私钥可以设置多个备份私钥,这些私钥在进行prepare操作以后,能够执行perform的延迟周期不同。
另外,多个默认私钥可以使用同一个备份私钥地址,这是通过内部关联实现的,当一组备份关系建立时,为这两个私钥建立关联,一旦最终进入performed或canceled状态,关联取消。
![状态机](https://gitlab.33.cn/flyaway53/test/raw/master/img-folder/14.png)
## 合约操作流程
Hashlock正常流程,完整过程: Hashlock正常流程,完整过程:
- 1. 需要准备两个账户A和B,其中A是returnAddr,用于在锁定时间结束后,可以返回余额,B是toAddr,在锁定时间内,能够进行操作转移金额 - 1. 需要准备两个账户A和B,其中A是returnAddr,用于在锁定时间结束后,可以返回余额,B是toAddr,在锁定时间内,能够进行操作转移金额
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment