libra 学习笔记

libra协议核心概念

交易和状态

libra协议两个核心基本概念-交易和状态。

在任何时间点,区块链都有一个“状态”。状态(或称为分布式账本状态)表示链上数据的当前快照。 在执行了交易后会更改区块链的状态。

Libra 区块链的客户端通过提交交易来请求更改分布式账本的状态,在区块链上一个签名交易包含如下部分:

  • 发送人地址 — 交易发起人的帐户地址。
  • 发送人的公钥 — 用于签署交易的私钥所对应的公钥。
  • 程序 — 程序包含以下内容:
    • Move语言的字节码交易脚本。
    • 可选的输入参数列表。对于点对点的交易中,输入包含接收人的信息,交易发送的金额。
    • 可选的需发布的字节码模块
  • Gas 价格 (以 microlibra/gas 为单位) — 发送方执行交易时需要为每单位gas支付的价格。 Gas是支付的是在区块链上计算和存储的费用。Gas是一个计算量的抽象,没有具体固定的真实价值。
  • Gas 上限 — 交易允许消耗的最大 Gas 量。
  • 序号 — 无符号整型,必须等于发送者帐户中存储的序列号(重放交易会拒绝)。
  • 过期时间 — 交易有效截止的时间。
  • 签名 — 发送人的数字签名。

Libra区块链中的所有数据都保存在单个版本化分布式数据库中(single-versioned distributed database)。

账户

Libra账户包含 Move 模块(modules)和Move 资源(resources)。

证明

Libra区块链中的所有数据都存储在单个版本化分布式数据库中。存储是用于记录确定过的区块交易及执行结果。区块链链用一个不断增长的 Merkle交易树 来表示。对于在区块链上执行的每个交易,交易树都会追加一个"叶子"

验证器节点 (验证器)

libra 区块链的客户创建交易并将其提交到验证器节点。验证器节点运行共识协议(与其他验证器节点一起),执行交易,并将交易和执行结果存储在区块链中。验证器节点决定哪些交易将添加到区块链,以及按什么样顺序进行交易。

验证器节点包含以下逻辑组件:准入控制 (AC),内存池(Mempool),共识 Consensus,执行 Execution,虚拟机(VM),存储 Storage

Libra 区块链使用LibraBFT,这是一个基于 HotStuff.的共识协议。LibraBFT进一步完善了HotStuff协议,引入了明确的活跃度机制,并提供了具体的延迟分析。

交易的生命周期

验证器之间的交互

MOVE:可编程资源语言

Move是一种可执行的字节码语言,用于实现自定义交易和智能合约。Move的关键特性能够使用具有线性逻辑的语法自定义资源类型:资源永远不会被复制或隐藏丢弃,只能在程序的存储位置之间移动。这些安全性由Move的类型系统在静态编译时得到保证。不单有这些特殊保护,资源也作为一个原生的程序值 - 可以存储在数据结构中,还是能作为参数传递给过程(procedures)程序,等等。

Move语言的主要功能:

  1. 可编程的Move交易脚本
  2. 可组合智能合约的Move模块
  3. Move的一等资源

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值