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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Libra教程之:Transaction的生命周期

發(fā)布時(shí)間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Libra教程之:Transaction的生命周期 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • Transaction的生命周期
    • 提交一個(gè)Transaction
    • 交易入鏈的詳細(xì)過程
      • 接收Transaction
      • 和其他Validators共享這個(gè)Transaction
      • 區(qū)塊Proposing
      • 執(zhí)行區(qū)塊并達(dá)成共識(shí)
      • 提交區(qū)塊

Transaction的生命周期

本文會(huì)以一個(gè)提交到Libra validator的transaction為例,來講解Transaction和其他組件的交互,和具體的狀態(tài)變化過程。

提交一個(gè)Transaction

這里我們舉個(gè)例子,還是上篇文章的例子,A擁有110LBR,B擁有52LBR。接下來會(huì)構(gòu)建一個(gè)原始交易Tn,將A擁有的10LBR轉(zhuǎn)給B。

這個(gè)原始交易將包含如下字段:

  • A的帳戶地址。

  • 一個(gè)要代表A執(zhí)行的動(dòng)作的程序。它包含:

    一個(gè)Move字節(jié)碼表示的peer-to-peer交易腳本。

    一個(gè)該腳本的輸入列表(例如,B的帳戶地址和付款金額)。

  • Gas價(jià)格 -A愿意為執(zhí)行交易而為每單位Gas支付的金額。Gas是一種支付計(jì)算和存儲(chǔ)費(fèi)用的方式。Gas單位是對(duì)計(jì)算的抽象度量,沒有固有的實(shí)際值。

  • A愿意為此交易支付的最大Gas金額。

  • 交易的到期時(shí)間。

  • 序列號(hào)

    每個(gè)賬號(hào)的交易都有一個(gè)唯一的序列號(hào),用來標(biāo)記這個(gè)賬號(hào)發(fā)出的交易。

有了這個(gè)原始交易之后,我們會(huì)使用A的私鑰對(duì)這個(gè)原始交易進(jìn)行簽名,簽名后的交易包含如下內(nèi)容:

  • 原始交易
  • A的公鑰
  • A的簽名

我們假設(shè)這個(gè)Libra區(qū)塊鏈上面有100個(gè)validators, 我們用V1到V100來表示。客戶將這個(gè)Transaction提交到了V1。V1是這一輪共識(shí)的發(fā)起者。

交易入鏈的詳細(xì)過程

我們先用一張圖來表示這個(gè)Transaction入鏈的過程:

Transaction的入鏈過程可以分為五大步:

  • 接收Transaction
  • 和其他Validators共享這個(gè)Transaction
  • 區(qū)塊Proposing
  • 執(zhí)行區(qū)塊并達(dá)成共識(shí)
  • 提交區(qū)塊

接收Transaction

  • 客戶端將transaction提交給V1,V1的admission Control(AC)模塊將會(huì)接收這個(gè)transaction。

    AC是驗(yàn)證器的唯一外部接口。 客戶端對(duì)驗(yàn)證器的任何請求都將首先轉(zhuǎn)到AC。

  • AC調(diào)用虛擬機(jī)(VM)的接口來驗(yàn)證該交易的正確性,包括:簽名認(rèn)證,判斷賬戶是否有足夠的金額,Tn不是一個(gè)重放交易等等信息。用以防止惡意節(jié)點(diǎn)。

    這里虛擬機(jī)是用來執(zhí)行Move腳本,也是Libra業(yè)務(wù)邏輯運(yùn)行的地方。

  • 如果Tn通過了VM的驗(yàn)證,那么進(jìn)入下一步,AC將會(huì)把Transaction送到MemPool中。

    Mempool是一個(gè)共享緩沖區(qū),用于保存“等待”執(zhí)行的事務(wù)。 將新事務(wù)添加到內(nèi)存池后,內(nèi)存池將與系統(tǒng)中的其他驗(yàn)證程序共享此事務(wù)。 為了減少“共享內(nèi)存池”中的網(wǎng)絡(luò)消耗,每個(gè)驗(yàn)證器負(fù)責(zé)將自己的事務(wù)傳遞給其他驗(yàn)證器。 當(dāng)驗(yàn)證者從另一個(gè)驗(yàn)證者的內(nèi)存池接收到事務(wù)時(shí),該事務(wù)將添加到接收者驗(yàn)證者的內(nèi)存池中。

  • 和其他Validators共享這個(gè)Transaction

  • Mempool將會(huì)把接收到的Transaction緩存起來,用于和其他驗(yàn)證器共享。
  • 通過共享Mempool的協(xié)議,V1將會(huì)把自己mempool的交易和其他驗(yàn)證節(jié)點(diǎn)共享,并將從其他驗(yàn)證節(jié)點(diǎn)收到的交易放到自己的mempool中。
  • 區(qū)塊Proposing

  • 我們假設(shè)V1是Proposing節(jié)點(diǎn),那么它會(huì)將自己mempool的交易打包成一個(gè)Block,然后通過共識(shí)模塊向其他驗(yàn)證節(jié)點(diǎn)提交一個(gè)Proposal。

    共識(shí)模塊負(fù)責(zé)通過與網(wǎng)絡(luò)中的其他驗(yàn)證者一起參與共識(shí)協(xié)議來對(duì)交易塊進(jìn)行排序并就執(zhí)行結(jié)果達(dá)成一致。

  • V1的共識(shí)模塊負(fù)責(zé)協(xié)調(diào)所有驗(yàn)證者之間對(duì)擬議區(qū)塊中交易順序的協(xié)議。

  • 執(zhí)行區(qū)塊并達(dá)成共識(shí)

  • 為了達(dá)成共識(shí),在第六步生成的Block會(huì)被傳遞到執(zhí)行模塊。執(zhí)行的工作是協(xié)調(diào)一組事務(wù)的執(zhí)行,并保持一個(gè)可以通過共識(shí)投票的臨時(shí)狀態(tài)。

  • 執(zhí)行模塊管理虛擬機(jī)(VM)中事務(wù)的執(zhí)行。 請注意,這里的執(zhí)行是在區(qū)塊中的交易達(dá)成一致之前進(jìn)行的推測性執(zhí)行。

  • 將Block中的Transaction執(zhí)行完成后,執(zhí)行模塊將Block中的Transaction追加到Libra區(qū)塊鏈的Merkle累加器。 這是Merkle累加器的內(nèi)存/臨時(shí)版本。 執(zhí)行這些事務(wù)的(提議/推測)結(jié)果將返回到共識(shí)組件。從“共識(shí)”到“執(zhí)行”的箭頭表示執(zhí)行交易的請求是由共識(shí)組件發(fā)出的。

  • V1(共識(shí)領(lǐng)導(dǎo)者)試圖與參與該共識(shí)的其他驗(yàn)證者就塊的執(zhí)行結(jié)果達(dá)成共識(shí)。

  • 提交區(qū)塊

  • 如果區(qū)塊的執(zhí)行結(jié)果由一組具有多數(shù)表決權(quán)的驗(yàn)證器達(dá)成一致并簽名,則驗(yàn)證器V1的執(zhí)行模塊從推測執(zhí)行緩存中讀取區(qū)塊執(zhí)行的結(jié)果,并提交區(qū)塊中的所有事務(wù)并永久存儲(chǔ)。

  • A的帳戶現(xiàn)在將具有100LBR,其序列號(hào)將為n+1。如果Tn被B重放,則它將被拒絕,因?yàn)锳的帳戶的序列號(hào)n+1大于重放的事務(wù)的序列號(hào)n。

  • 更多精彩內(nèi)容且看:

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

    更多教程請參考 flydean的博客

    總結(jié)

    以上是生活随笔為你收集整理的Libra教程之:Transaction的生命周期的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。