美文网首页
Libra测试网调研

Libra测试网调研

作者: logz2020 | 来源:发表于2019-07-11 20:50 被阅读0次

    Libra测试网

    浏览器: https://librabrowser.io/

    1. 从官方rust code可以编译客户端,接入测试网
    2. 客户端支持账户/查询/转账等基本操作,libra代币可以自己mint,用来测试。
    3. 客户端可以“创建”任意数量的账户,对应的私钥由一组助记词派生,可以导入导出。

    Libra账户

    1. Libra账户包含 Move 模块(modules)和Move 资源(resources)。
      Move 模块 , 包含代码(类型和过程声明),但他们不包含数据。模块过程(procedures)编码了更新区块链的全局状态的规则。
      Move 资源 , 包含数据不包含代码。每个资源值的类型都需要是在已发布的模块中声明过。
      账户可以包含任意数量的Move资源和Move模块。

    2. 账户通过账户地址来标识,地址是256位的值。用户使用私钥签名后来声明地址所有权,账户的地址由公钥Hash生成。

    3. 普通地址不是一个账户,不能用来接收代币。账户需要显式创建,并需要支付一笔创建账号的费用。

    4. 当一个账户在一个地址创建,默认权限key是地址对应的私钥。用户可以通过替换操作,修改权限key。

    5. 创建一个账户,本质上即创建一个LibraAccount.T资源在一个指定地址
      https://github.com/libra/libra/blob/master/language/stdlib/modules/libra_account.mvir#L164

    6. 从Move实现看,可以创建一个Mykey合约账户模块,并部署MykeyAccount.T资源到指定地址,完成合约账户创建。用来管理账户下的资产。

    7. zengo多签(2/2)账户demo
      https://zengo.com/libras-next-frontier-a-non-custodial-wallet-with-no-private-key/

    Move语言

    1. Libra的设计目标是可编程资源/资产, 介于 BTC和ETH之间。

    2. Move语言主要面向资产类数据,并将资产设计为顶级资源。

    3. Move 通过限制对资源的操作来防止不恰当的修改,从而提高资产的安全性。资源只可以Move移动, 而不能copy复制。

    4. Move本身的设计还在开发,现有的实例基于 中间语言Move IR。未来会有 Move 高级语言。

    5. Move 的基本封装单元是 “模块”,模块有点类似于以太坊中的 “智能合约”, 区别在于模块只包含逻辑而没有数据。
      模块中定义资源,并通过接口部署资源到账户。

    6. Libra 的交易(Transaction)中,也可以嵌入一段 Move 代码。这段代码不属于任何模块,是一次性执行的,不能再被其他代码调用。脚本中可以包含多个过程,通过 main 过程作为入口来执行,在其中也可以调用其他模块中的过程。

    7. Move 的虚拟机是一个基于栈的虚拟机,和 EVM 相似。每条指令也会计算一个gas, 耗光 gas 后代码会停机。一个交易的代码执行符合原子性,要么全部执行成功,要么一条也不执行。

    8. Move 完全不支持动态指派, 即所有的过程调用必须在编译器确定(静态),而不能运行时动态指派。好处是可以在编译期,充分的分析验证。因此,ETH/EOS动态合约调用即不能实现。

    9. 总体上,Move是一个更严格的适用于金融资产场景的语言,保证了安全性的同时也提供了一定的灵活性。比较务实。更像一个Domain language。

    BTC, 可编程货币。
    ETH, 可编程的去中心化应用。
    Libra, 可编程资源/资产。

    相关文章

      网友评论

          本文标题:Libra测试网调研

          本文链接:https://www.haomeiwen.com/subject/vyzhkctx.html