2020-11-07 EOS 体系下钱包实现Multisig 多签的方法。
EOS體系下的多簽Multisig 實(shí)現(xiàn)。
首先我們需要知道EOS的賬戶體系 是由錢包地址與對(duì)應(yīng)的權(quán)限表組合而成的。
例如一個(gè)普通的地址 eosalice 對(duì)應(yīng)了2個(gè)不同的密鑰對(duì), 一個(gè)是 owner ,一個(gè)是active , 分別對(duì)應(yīng)了類似 EOS8gywijiNKo75ZkXYKW4LiavJjz3VxDpfL7r6C9fSkpbjzrQnuZ 這樣格式的一個(gè)公鑰,權(quán)重Weight 分別是1 , 然后這個(gè)賬戶的所有者能夠通過(guò)set account 指令(updateauth) 將 權(quán)限表做變更(轉(zhuǎn)移),如果新的權(quán)限表也是單一的公鑰,那么僅是更換了一個(gè)密鑰對(duì) (Key pairs ) 而已;如果新的權(quán)限表(permission table) 是總權(quán)重>1 ,例如由2個(gè)賬戶組合而成的 active 2 : (alice@active 1,? bob@active 1 )? 那么這個(gè)賬戶新的active 權(quán)限表對(duì)應(yīng)的action 執(zhí)行的時(shí)候需要用到eosio.msig 合約,? 舉個(gè)例子, 這是一個(gè)眾籌的地址 kol.crowd , 它對(duì)應(yīng)的權(quán)限表是 ( alice@active1 , bob@active 1 ,victor@active 1 ) , 現(xiàn)在kol.crowd 的余額是 1000.0000 EOS, 需要轉(zhuǎn)賬到一個(gè)地址 teacher ,金額是100.0000 EOS , 那么需要用到多簽合約的流程, 先做提案proposal , 之后由權(quán)限表里的各個(gè)用戶執(zhí)行簽名approve , 簽名收集齊了后,由任意一個(gè)地址再發(fā)起一幣交易exec 這個(gè)提案, 這個(gè)時(shí)候賬戶kol.crowd 才會(huì)真正執(zhí)行一個(gè)transfer 交易,轉(zhuǎn)賬到teacher 賬戶,金額是按照提案里設(shè)定的100.0000 EOS.
這里前后需要用到的cleos 指令包括:?
cleos set account? ? 設(shè)置權(quán)限表
cleos multisig propose? ? 提案
cleos multisig review? ? ? 檢查提案
cleos multisig approve? ? 簽名同意提案
cleos multisig exec? ? ? ?執(zhí)行提案
可能用到的指令包括
cleos multisig cancel? ? ?取消提案
cleos multisig unapprove? ? ?取消簽名
我們看看命令行執(zhí)行的提案內(nèi)容。
?
?我們?cè)倏纯丛阱X包APP 里對(duì)應(yīng)的頁(yè)面呈現(xiàn)。
這個(gè)錢包在github 上可以下載,?https://github.com/xwh123/wallet/tree/main? ?目前只有安卓版, 想體驗(yàn)整個(gè)流程的同學(xué),可以聯(lián)系我們,獲得一個(gè)永遠(yuǎn)有效的錢包地址,以及幾枚幣,用于測(cè)試。
?
總結(jié)
以上是生活随笔為你收集整理的2020-11-07 EOS 体系下钱包实现Multisig 多签的方法。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据分析——数据清洗之文字特征编码
- 下一篇: 使用layui/layuiAdmin的总