Libra測(cè)試網(wǎng)
- 從官方rust code可以編譯客戶端,接入測(cè)試網(wǎng)
- 客戶端支持賬戶/查詢/轉(zhuǎn)賬等基本操作,libra代幣可以自己mint,用來測(cè)試。
- 客戶端可以“創(chuàng)建”任意數(shù)量的賬戶,對(duì)應(yīng)的私鑰由一組助記詞派生,可以導(dǎo)入導(dǎo)出。
Libra賬戶
Libra賬戶包含 Move 模塊(modules)和Move 資源(resources)。
Move 模塊 , 包含代碼(類型和過程聲明),但他們不包含數(shù)據(jù)。模塊過程(procedures)編碼了更新區(qū)塊鏈的全局狀態(tài)的規(guī)則。
Move 資源 , 包含數(shù)據(jù)不包含代碼。每個(gè)資源值的類型都需要是在已發(fā)布的模塊中聲明過。
賬戶可以包含任意數(shù)量的Move資源和Move模塊。賬戶通過賬戶地址來標(biāo)識(shí),地址是256位的值。用戶使用私鑰簽名后來聲明地址所有權(quán),賬戶的地址由公鑰Hash生成。
普通地址不是一個(gè)賬戶,不能用來接收代幣。賬戶需要顯式創(chuàng)建,并需要支付一筆創(chuàng)建賬號(hào)的費(fèi)用。
當(dāng)一個(gè)賬戶在一個(gè)地址創(chuàng)建,默認(rèn)權(quán)限key是地址對(duì)應(yīng)的私鑰。用戶可以通過替換操作,修改權(quán)限key。
創(chuàng)建一個(gè)賬戶,本質(zhì)上即創(chuàng)建一個(gè)LibraAccount.T資源在一個(gè)指定地址
https://github.com/libra/libra/blob/master/language/stdlib/modules/libra_account.mvir#L164從Move實(shí)現(xiàn)看,可以創(chuàng)建一個(gè)Mykey合約賬戶模塊,并部署MykeyAccount.T資源到指定地址,完成合約賬戶創(chuàng)建。用來管理賬戶下的資產(chǎn)。
zengo多簽(2/2)賬戶demo
https://zengo.com/libras-next-frontier-a-non-custodial-wallet-with-no-private-key/
Move語(yǔ)言
Libra的設(shè)計(jì)目標(biāo)是可編程資源/資產(chǎn), 介于 BTC和ETH之間。
Move語(yǔ)言主要面向資產(chǎn)類數(shù)據(jù),并將資產(chǎn)設(shè)計(jì)為頂級(jí)資源。
Move 通過限制對(duì)資源的操作來防止不恰當(dāng)?shù)男薷?,從而提高資產(chǎn)的安全性。資源只可以Move移動(dòng), 而不能copy復(fù)制。
Move本身的設(shè)計(jì)還在開發(fā),現(xiàn)有的實(shí)例基于 中間語(yǔ)言Move IR。未來會(huì)有 Move 高級(jí)語(yǔ)言。
Move 的基本封裝單元是 “模塊”,模塊有點(diǎn)類似于以太坊中的 “智能合約”, 區(qū)別在于模塊只包含邏輯而沒有數(shù)據(jù)。
模塊中定義資源,并通過接口部署資源到賬戶。Libra 的交易(Transaction)中,也可以嵌入一段 Move 代碼。這段代碼不屬于任何模塊,是一次性執(zhí)行的,不能再被其他代碼調(diào)用。腳本中可以包含多個(gè)過程,通過 main 過程作為入口來執(zhí)行,在其中也可以調(diào)用其他模塊中的過程。
Move 的虛擬機(jī)是一個(gè)基于棧的虛擬機(jī),和 EVM 相似。每條指令也會(huì)計(jì)算一個(gè)gas, 耗光 gas 后代碼會(huì)停機(jī)。一個(gè)交易的代碼執(zhí)行符合原子性,要么全部執(zhí)行成功,要么一條也不執(zhí)行。
Move 完全不支持動(dòng)態(tài)指派, 即所有的過程調(diào)用必須在編譯器確定(靜態(tài)),而不能運(yùn)行時(shí)動(dòng)態(tài)指派。好處是可以在編譯期,充分的分析驗(yàn)證。因此,ETH/EOS動(dòng)態(tài)合約調(diào)用即不能實(shí)現(xiàn)。
總體上,Move是一個(gè)更嚴(yán)格的適用于金融資產(chǎn)場(chǎng)景的語(yǔ)言,保證了安全性的同時(shí)也提供了一定的靈活性。比較務(wù)實(shí)。更像一個(gè)Domain language。
BTC, 可編程貨幣。
ETH, 可編程的去中心化應(yīng)用。
Libra, 可編程資源/資產(chǎn)。