Facebook币Libra学习-1.核心概念

Libra区块链是一个基于Libra协议的加密认证的分布式数据库。本文将简略介绍Libra协议的核心概念。其详细说明请参阅Libra技术白皮书.

Libra区块链由分布式的Validator节点网络维护, 或简称为Validator。Validator集体遵循共识协议 决定区块链中交易的进行次序。

Libra测试网络是Libra区块链项目早期原型,即Libra Core的Demo 。

交易和状态

Libra协议的两个核心基本概念为交易和状态在任一时间点,区块链都有一个所谓的状态。状态(或成为分布式账本状态)表示区块链上数据此时的快照。交易的执行会改变区块链的状态。

图 1.1 A 交易状态变更.

图 1.1 交易状态变更.

 

图 1.1 展示了执行交易时,Libra区块链的状态变化。例如,在状态 SN-1 时,Alice 的余额为110 Libra币, Bob的余额为52 Libra币.交易发生后,区块链生成一个新的状态。在状态 SN-1 的前提下,交易 TN 发生,则状态由 SN-1 变更为 SN 。Alice的余额减少10Libra币,Bob的余额增加了10Libra币新的状态SN 展示了状态更新后的账户余额情况。在图1.1中:

  • A and B 分别代表Alice和Bob在区块链上的账户。
  • SN-1 代表区块链中第(N-1)个状态。
  • TN 代表区块链中执行的第N个交易。
    • 从图中的例子可以看出,TN 代表的交易是:从A账户中转10 Libra币到B账户中。
  • F为一个确定性函数。在特定的初始状态执行特定的交易,F函数总会返回相同的最终状态。如果当前区块链状态为 SN-1, 执行交易 TN ,则返回的新状态恒为 SN 。
  • SN 代表区块链的第N个状态。SN 为将函数F应用于 SN-1 和 TN 的结果。

Libra协议使用 Move 语言 来实现函数F的确定性执行。

交易

Libra区块链客户端通过提交交易请求来更新分布式账本状态。区块链上一个签名交易包括:

  • 发送方地址 — 交易发起者的账户地址。
  • 发送方公钥 — 用于签署交易的私钥所对应的公钥。
  • 程序 — 程序包括以下内容:
    • 一个Move语言的字节码交易脚本;
    • 可选的输入列表:在点对点交易中,输入包括接受者信息及金额;
    • 可选的Move字节码模块部署列表;
  • Gas价格 (以microlibra/gas 为单位—执行交易时,发送方愿意为一单位gas 所支付的价格。Gas是用来支付在区块链上计算和存储费用。每一Gas单位是对计算量的抽象度量;
  • Gas上限 — 交易允许消耗的Gas最大值;
  • 序号 — 无符号整型,必须和发送者账户中的序列号相等;
  • 有效期 — 交易的有效截止时间;
  • 签名 — 发送者的数字签名。

交易脚本是任意包含对交易逻辑编码的程序,能够与Libra区块链中发布的数字资产进行交互。

分布式账本状态

分布式账本状态,又称为Libra区块链全局状态,是区块链上所有账户状态的集合。想要执行交易,每个Validator必须获得区块链上分布式数据库的最新全局状态。更多见版本化数据库.

版本化数据库

Libra区块链上的所有数据都存储在一个单一版本化的分布式数据库上。版本号为无符号的64位整数,与系统内已经执行的交易数量相对应。

版本化数据库允许Validator:

  • 在最新的全局状态下进行交易;
  • 响应客户端发送的对当前或历史全局状态的请求。

账户

Libra账户包括Move模块和Move资源。由账户地址标识。这也意味着每个账户的状态都包含代码和数据两方面。

  • Move模块 包含代码(类型和过程声明),但不包含数据。模块中的子程序对区块链全局状态的更新规则进行编码。
  • Move资源 包含数据不包含代码。每个资源的类型都应在区块链的分布式数据库中已发布模块里声明过。

账户可以包含任意数量的Move资源和Move模块。

账户地址

Libra账户地址为一个256位的值。用户可以使用电子签名来声明地址。对于一个账户,其地址由用户的公钥通过密码学Hash(或托管的客户端)生成,用户必须通过相应的私钥签名才能从此账户发起交易。

Libra对用户的账户地址的数量不做限制。但申请新账户地址时,必须通过另一Libra币充足的账户支付申请费用。

证明

Libra区块链上的所有数据都存储在一个单一版本化的分布式数据库上,存储被用来对交易区块和交易结果的持续确认。区块链是一个不断增长的Merkle交易树. 每次区块链上有新的交易执行,交易树都会增加一片“叶子”。

  • 证明是验证Libra区块链中数据真实性的一种方式;
  • 区块链上存储的每个操作都可以进行加密验证,结果性证明也可以证实没有数据缺损。例如,如果客户端发送了对最新的 n 笔交易的查询请求,证明可以验证查询响应中没有遗漏任何一笔交易记录。

在区块链中,客户端不需要信任接受数据的实体。客户端可以查询账户余额,以及特定交易的交易状态等。与其他Merkle树类似,分布式账本记录可以对特定的交易提供 O(\log n)O(logn) 时间复杂度证明, n 为处理的交易总量。

Validator 节点 (validator)

Libra区块链的客户端创建交易并提交到Validator节点。Validator节点(和其他Validator节点共同)运行共识协议,执行交易,并将交易和执行结果存储在区块链中。Validator节点判定哪些交易可以被添加到区块链上,以及以何种次序添加。图 1.1 validator逻辑组件图 1.2 VALIDATOR逻辑组件

Validator节点 包括以下逻辑组件:

准入控制 (AC)

  • 准入控制是Validator节点的唯一外部接口。客户端向Validator节点发送的任何请求都将先转入AC;
  • 准入控制通过对请求进行初始检查,来保护Validator节点的其他部件免受损坏或大量输入的影响。

内存池

  • 内存池是一个缓存区,用于保存“等待”执行的交易。
  • 当一个内存池中添加了新交易时,这个内存池会和系统中其他Validator节点的内存池共享此交易。

共识

  • 共识组件负责判断交易区块的顺序,并与区块链中其他的Validator节点在共识协议 下共同决定执行结果,

执行

  • 执行组件利用虚拟机(VM)交易。
  • 执行组件的作用是协调一个区块中的交易的执行,并维护一个可用于协商投票的瞬时状态;
  • 执行组件维护内存中执行结果,直至共识组件允许其被提交到分布式数据库。

虚拟机 (VM)

  • 准入控制和内存池借助虚拟机组件对交易进行校验。
  • 虚拟机用于运行交易中所包括的程序,并确定结果。

存储

存储被用来持久化保存已确认的交易区块和交易结果;

更多Validator组件与其他组件的交互信息,请参考交易生命周期.

参考:

  • 欢迎页.
  • My First Transaction — Guides you through executing your very first transaction on the Libra Blockchain using the Libra CLI client.
  • Getting Started with Move — Introduces you to a new blockchain programming language called Move.
  • Life of a Transaction — Provides a look at what happens “under the hood” when a transaction is submitted and executed.
  • Libra Core Overview — Provides the concept and implementation details of the Libra Core components through READMEs.
  • CLI Guide — Lists the commands (and their usage) of the Libra CLI client.
  • Libra Glossary — Provides a quick reference to Libra terminology.

翻译:Jadris Lau 校对:Zhe Wang

 

Libra国内开发者微信交流群:

不能入群请加管理微信,拉你进群=>

 

转载于:https://www.cnblogs.com/x-poior/p/11216418.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
综合小区管理系统管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、车位管理、车位分配管理、出入管理、字典管理、房屋管理、物业费缴纳管理、公告管理、物业人员投诉管理、我的私信管理、物业人员管理、用户管理、管理员管理。用户的功能包括管理部门以及部门岗位信息,管理招聘信息,培训信息,薪资信息等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 综合小区管理系统管理系统可以提高综合小区管理系统信息管理问题的解决效率,优化综合小区管理系统信息处理流程,保证综合小区管理系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理综合小区管理系统信息,包括出入管理,报修管理,报修管理,物业费缴纳等,可以管理操作员。 出入管理界面,管理员在出入管理界面中可以对界面中显示,可以对招聘信息的招聘状态进行查看,可以添加新的招聘信息等。报修管理界面,管理员在报修管理界面中查看奖罚种类信息,奖罚描述信息,新增奖惩信息等。车位管理界面,管理员在车位管理界面中新增。公告管理界面,管理员在公告管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值