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语言的主要功能:
- 可编程的Move交易脚本
- 可组合智能合约的Move模块
- Move的一等资源
libra 学习笔记相关推荐
- Diem(原Libra)学习笔记
一.介绍 diem目标: 实现一个能够承载数十亿的账户的区块链系统,这个系统需要由 高吞吐量,低延迟 的交易能力以及一个高效的大容量存储系统: 极高的 安全性 ,足以保障资金和金融数据的安全: 足够的 ...
- RedShift: Transparent SNARKs from List Polynomial Commitments学习笔记
1. 引言 纽约大学Kattis和Matter Labs团队2019年论文<RedShift: Transparent SNARKs from List Polynomial Commitmen ...
- Compressed sigma-Protocol Theory and Practical Application to Plug Play Secure Algorithmics学习笔记
1. 引言 Thomas Attema等人2020年论文<Compressed sigma-Protocol Theory and Practical Application to Plug & ...
- Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记
1. 引言 前序博客有: Lurk--Recursive zk-SNARKs编程语言 rank-1 constraint system R1CS Spartan中 Vitalik R1CS例子 SNA ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 2020年Yann Lecun深度学习笔记(下)
2020年Yann Lecun深度学习笔记(下)
- 2020年Yann Lecun深度学习笔记(上)
2020年Yann Lecun深度学习笔记(上)
最新文章
- LNMP基础架构介绍与安装
- 1.7 Java 8中Map新增的方法
- 地理知识归纳:影响降水的九大因素
- java jpanel隐藏_java – 绘制JPanel隐藏菜单
- Shamir密钥分享算法 python实现
- 5G 时代,AI 如何破竹而出? | AI ProCon
- php jquery ajax实现用户名,php+jquery+ajax实现用户名验证
- iPhone7无服务问题解决方案-越狱绕过手机激活
- 三四线城市的房地产泡沫率先崩盘?
- 菜肴百度百科html,酸汤鱼
- 联系人管理系统 Python GUI版
- 厉害了!28岁程序员期权过亿,彪悍从字节退休!
- 关于dcm4chee方面的问题,求各位英雄帮助,小女子感激不尽.... ...
- 健身房有哪些令人讨厌的行为?
- 开发者必备的顶级Android开发工具,成功入职阿里
- 阿里云服务器配置远程打印机,电脑启用打印服务器配置
- 获取移动端ip的方法
- 怎样消除幸存者偏见?——谈谈成败观
- 开源H5选择器UI组件——Picker.js
- 关于uniapp编译小程序 引入全局scss问题解决方案
热门文章
- 关于三维模型从HFSS中导出的问题
- 直觉和潜意识_管理需要技巧和直觉
- (转)程序员如何静下心来高效学习
- 2021年5款最佳3D渲染软件
- BlackNurse新型DoS攻击 15M流量就可以打瘫思科防火墙 思科做出了回应
- ElasticsearchException: Bulk indexing has failures
- java package 注解,如何添加包级别注释或编辑package-info.java?
- SL651-2014水文监测RTU解决方案
- 计算机有关的基础知识,计算机基础知识之计算机中有关数及编码的知识
- 华为5月23日加班累死25岁程序员--胡新宇