The Libra Blockchain开发者文档-(二)Libra协议:核心概念

对应官方开发者文档:https://developers.libra.org/docs/libra-protocol

Libra协议:核心概念

Libra区块链是一个通过加密认证的分布式数据库,它基于Libra协议。本文档简要介绍了Libra协议中的关键概念,有关Libra协议中所有元素的详细说明,请参阅Libra区块链技术白皮书。 

Libra区块链分布式网络由验证器节点来维护。也称为验证器。验证人(验证节点)通过共同遵守共识协议来促成区块链中的交易的数据的一致。 

Libra testnet展示了Libra区块链软件的早期原型—即Libra Core。

交易和状态

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


图1.1交易状态变更.

图1.1表示执行交易时在Libra区块链上状态的一个变化。例:在状态SN-1时,Alice拥有110Libra Coin,Bob拥有52个Libra Coin。当交易(TN)发生后,区块链生成一个新的状态。交易TN(发送10Libra Coin从Alice到Bob)发生,状态从SN-1到SN。可以看到Alice的Libra Coin减少10,Bob的Libra Coin增加10。新的状态(SN)显示更新后的Libra Coin余额,在图1.1中可见。

A和B代表区块链中的Alice和Bob的帐户。

SN-1表示区块链中(N-1)的状态。

TN是区块链上执行的第n个交易。在图中例子是,TN表示是: “将10个Libra Coin从Alice的账户发送到Bob的账户”。

F是一个功能函数。F始终会返回一致的初始状态或者特定交易后的最终状态。如果区块链当前状态是SN-1,那么在状态SN-1上执行了交易TN,最后区块链的状态为SN。

SN是区块链的第n个状态。 SN是将F应用TN中与SN-1后的结果。

Libra协议使用Move语言来实现功能函数F的操作。

交易

Libra区块链的用户执行提交交易来请求更改分布式账本的状态,在区块链上交易包含如下:

发送人地址 - 交易发起人的帐户地址。

发送人的公钥 - 用于签署交易的私钥所对应的公钥。

程序-该程序包含以下内容: 

Move的交易字节码脚本。 

脚本中相关选项,对于点对点的交易中,输入包含接收人的信息,交易发送给接收人的金额。 

Move字节码模块可选列表。

Gas价格(以微Libra/Gas为单位)-发送方执行交易时所需要支付的Gas金额。Gas是支付的是在区块链上计算和存储的费用,这个单位是一个抽象浮动的计量,没有具体固定的真实价值。

Gas单位上限 - 允许交易消耗的最大Gas单位限制。

序号 - 无符号整型,必须等于发送者帐户下存储的序列号。

到期时间 - 交易有效截止的时间。

签名 - 发送人的数字签名。

交易脚本是一个自定义的程序,脚本中交易逻辑与Libra区块链分布式数据中的相关内容进行交互。

分布式账本状态

分布式账本或者称为Libra区块链的全局状态是由区块链中所有账户的状态组成,在执行交易时,每个验证节点必须知道区块链中的分布式数据库的最新的全局状态。查看数据库版本状态

数据库版本号

Libra区块链中的所有数据都保存在分布式节点的数据库中,那么每个节点中都会有一个版本号,版本号是64位无符号型整数,对应系统执行的交易数。 

数据库中的版本号允许验证者如下操作:

在最新的版本中执行交易操作。

响应用户针对当前版本和之前版本的相关分布式账本中历史记录的查询。

账户

Libra账户包含Move模块和Move资源(资产)。它由账户的地址来标识。这就意味上每个账户的状态都包含代码和数据:

Move模块包含代码(类型和程序声明),但他们不包含数据。程序中相关模块根据规则用于更新区块链的全局状态。

Move资源包含数据(资产),但是不包含代码。在区块链中相关的资源值都由分布式数据库中发布的模块来声明类型。 

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

账户地址

Libra账户的是地址是256位值。用户使用数字签名后来发布地址。账户的地址需通过用户公钥Hash加密。用户(代表用户或者监管的客户端)要发送交易要求用户通过自己的私钥签名后进行发送, 

Libra用户发布的地址数量没有限制。申请账户需要拥有足够Libra Coin,才能支付创建账户的费用。

证明

Libra区块链中所有的数据都以数据库副本的模式存储在各个节点中,存储用于记录相关交易及交易函数执行后结果以及整体区块链的全局状态,区块链上执行的交易数据通过不断增长的Merkle交易树来保存,通过Merkle树中“叶”附加至树上。

证明(验证)是一种验证Libra区块链中数据真实性的方式。

存储在区块链上的每个操作都进行加密验证处理,结果验证也保证了没有数据被省略(删除)。例如:如果客户端从账户查询最新的几个交易,那么验证查询响应时没有交易被省略。

在区块链中,客户端无条件信任它从其他节点过来的接收的数据。客户端可以查询账户余额,可以请求是否处理了特定的交易,等等。和其他的Merkle树一样,分布式账本历史记录中可提供特定交易的O(logn)-sized(大小)的证明,其中n是处理的交易的总数。

验证器节点

Libra区块链的客户端创建建议,并将他们提交到验证器节点。验证器节点(和其他验证器节点一起)运行共识协议,执行交易,并将交易和执行结果存储在区块链中。验证器节点将决定筛选那些交易通过何种顺序添加到区块链中。


图1.2验证器的逻辑组件图

验证器节点包含以下逻辑组件:

准入控制(AC)

准入控制是验证器节点的唯一的外部接口。客户端向验证器节点发出的任何请求都首先进入AC。

AC对请求进行初始的检查,以保护验证器节点的其他部分免受损坏或被高频输入攻击。

内存池

内存池作为一个缓冲区,用于保存“等待”执行的交易。

当新的交易添加到验证器节点内存池中,该验证器节点的内存池与系统中其他验证器共同处理该交易。

共识

网络中的验证器节点通过共识组件对交易数据块进行处理,且通过共识协议协商,达成执行结果一致。

执行

执行组件利用虚拟机(VM)来执行交易操作。

执行主要工作是协调一个交易块的执行,并维持在最终达成一致状态前的一个过渡状态。

执行过程中的执行结果在内存中显示,直到共识将块提交到分布式数据库中。

虚拟机(VM)

AC和内存池使用虚拟机组件对交易执行验证检查。

虚拟机用于运行交易中的程序代码,并确定执行后的结果。

存储

存储用于保存最终交易数据块和执行的结果。

存储每个验证器和其他组件交互的信息,请参阅交易的生命周期

参考

欢迎页

我的第一笔交易 - 指导您使用Libra CLI客户端在Libra区块链上执行您的第一笔交易。

Move入门 - Move新区块链编程语言。

交易的生命周期 - 提供交易提交和执行时“幕后”发生的事情。

Libra核心概述 - Libra核心组件的概念和实现细节。

CLI指南 - 列出Libra CLI客户端的命令及其用法。

Libra 词汇表 - 提供Libra术语的快速参考。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容