日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Libra教程之:Libra协议的关键概念

發布時間:2024/2/28 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Libra教程之:Libra协议的关键概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • Libra協議
    • 交易和狀態
      • 交易詳解
      • 賬本狀態詳解
    • 版本數據庫
    • 賬戶
    • 賬戶地址
    • Proof
    • 驗證節點
    • 存儲

Libra協議

Libra協議是Libra區塊鏈的基礎,本文主要講解Libra協議的一些關鍵概念。

交易和狀態

我們知道區塊鏈也可以叫分布式賬本,它主要的作用就是存儲各種交易。而為了便于查詢和提升效率,現代的區塊鏈都會引入狀態的概念,來代表某時刻鏈上數據的當前快照。

交易會改變相應的狀態,如下圖所示:

上圖描述了執行交易發生時Libra區塊鏈相應的狀態改變。

其中T是交易,S是狀態,為了便于描述,我們假設每個交易和狀態是一一對應的,T1對應S1,T2對應S2,Tn對應Sn。隨著時間的推移n的值不斷變大。

假設在Sn-1狀態時我們有兩個用戶A和B,A擁有110LBR,B擁有52LBR。接下來會進行一個交易Tn,將A擁有的10LBR轉給B。

這里會使用一個確定函數F(Sn-1,Tn)=Sn 來獲得最新的Sn。

確定函數的意思是:對于特定的初始狀態和特定的交易,F始終返回相同的最終狀態。

這個函數F在Libra中是使用Move語言來實現的。在后面的文章中我們會詳細介紹Move語言。

交易詳解

交易記錄著賬號之間的信息傳遞,是區塊鏈的重要信息,每個區塊都是由一個個交易組成的。 Libra區塊鏈中的交易包含如下信息:

  • 交易發送人的賬戶地址
  • 發送人公鑰-與用于簽署交易的私鑰相對應的公鑰
  • 程序:
  • 移動字節碼的交易腳本
  • 腳本輸入的可選列表。對于點對點交易,輸入包含有關接收者和轉移到接收者的金額的信息。
  • 要發布的移動字節碼模塊的可選列表。
  • Gas價格:發送方愿意為執行交易而為每單位Gas支付的金額。Gas是一種支付計算和存儲費用的方式。Gas單位是對計算的抽象度量,沒有固有的實際值。
  • 最大Gas數目:允許交易消耗的最大Gas量。
  • 序列號:一個無符號整數,必須等于在發件人帳戶下存儲的序列號。
  • 到期時間:交易停止有效的時間。
  • 簽名:發送者的數字簽名。

交易腳本是一個任意程序,可對交易邏輯進行編碼并與在Libra區塊鏈的分布式數據庫中發布的資源進行交互。

賬本狀態詳解

Libra的賬本狀態由區塊鏈中所有帳戶的狀態組成。為了執行交易,每個驗證者必須知道最新版本的區塊鏈分布式數據庫的全局狀態。

版本數據庫

Libra區塊鏈中的所有數據都保存在單版本的分布式數據庫中。 版本號是一個無符號的64位整數,與系統已執行的事務數相對應。

版本數據庫允許驗證者執行以下操作:

  • 針對最新版本的賬本狀態執行事務。
  • 響應客戶有關當前和以前版本賬本歷史記錄的查詢。

賬戶

Libra帳戶包括Move modules和Move resources。它由帳戶地址來標記的。這實質上意味著每個帳戶的狀態都由代碼和數據組成:

  • Move modules包含代碼(類型和過程聲明),但它們不包含數據。模塊用來對用于更新區塊鏈全局狀態的規則進行編碼。
  • Move resources包含數據,但沒有代碼。每個資源值都有在區塊鏈分布式數據庫中發布的模塊中聲明的類型。

一個帳戶可以包含任意數量的Move modules和Move resources。

賬戶地址

Libra帳戶的地址為256位值。在公鑰私鑰體系中,帳戶地址是用戶公鑰的加密哈希。要簽署從其帳戶地址發送的交易,用戶(或代表該用戶的托管客戶端)必須使用與該帳戶相對應的私鑰。

Libra用戶可以創建的賬戶可以是無限的,但是要創建帳戶地址,需要從擁有住夠Libra幣的帳戶發送交易用來支付帳戶創建費用。

Proof

Libra區塊鏈中的所有數據都存儲在一個單版本的分布式數據庫中。該存儲用于持久存儲已確定的交易塊及其執行結果。這些數據是以不斷增長的Merkle樹來實現的。如果有需要,我會在后面的文章中講解什么是Merkle樹,這里我們只要知道對于在區塊鏈上執行的每筆交易,都會以葉子節點的形式附加到樹上。

Proof是一種驗證Libra區塊鏈中數據真實性的方法。

存儲在區塊鏈上的每個操作都可以進行密碼驗證,并且沒有數據被遺漏。例如,如果客戶從一個帳戶中查詢了最近的n筆交易,則Proof將驗證查詢響應中沒有遺漏任何交易。

在區塊鏈中,客戶端不需要信任從其接收數據的實體。客戶可以查詢帳戶余額,詢問是否處理了特定交易,等等。與其他Merkle樹一樣,賬本的歷史記錄可以提供特定交易對象的Proof。

驗證節點

在區塊鏈系統中,驗證節點是一個非常關鍵的組件,通常來說驗證節點運行共識協議(與其他驗證者節點一起),執行交易,并將交易和執行結果存儲在區塊鏈中。 驗證者節點決定將哪些交易添加到區塊鏈中,并以什么順序添加。Libra區塊鏈的客戶創建交易并將其提交到驗證者節點。

驗證器節點包含以下邏輯組件:

  • Admission Control (AC)

    準入控制是驗證程序節點的唯一外部接口。客戶端對驗證者節點的任何請求都首先轉到AC。
    AC對請求執行初始檢查,以保護驗證器節點的其他部分不受損壞或輸入量大的影響。

  • Mempool
    Mempool是一個緩沖區,用于保存正在等待執行的交易。
    將新交易添加到驗證程序節點的內存池后,此驗證程序節點的內存池將與系統中其他驗證程序的內存池共享此交易。

  • 共識
    共識組件負責通過與網絡中的其他驗證器節點一起參與共識協議來對交易塊進行排序并就執行結果達成一致。

  • 執行
    執行組件利用虛擬機(VM)執行事務。
    執行工作的任務是協調一系列交易的執行,并保持可以通過共識投票的臨時狀態。
    執行保持執行結果的內存表示形式,直到共識將塊提交給分布式數據庫為止。

  • 虛擬機(VM)
    AC和Mempool使用VM組件對事務執行驗證檢查。
    VM用于運行事務中包含的程序并確定結果。

上圖是驗證節點的示意圖。

存儲

存儲用于持久存儲已確定的交易塊及其執行結果。

更多精彩內容且看:

  • 區塊鏈從入門到放棄系列教程-涵蓋密碼學,超級賬本,以太坊,Libra,比特幣等持續更新
  • Spring Boot 2.X系列教程:七天從無到有掌握Spring Boot-持續更新
  • Spring 5.X系列教程:滿足你對Spring5的一切想象-持續更新
  • java程序員從小工到專家成神之路(2020版)-持續更新中,附詳細文章教程

更多教程請參考 flydean的博客

總結

以上是生活随笔為你收集整理的Libra教程之:Libra协议的关键概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。