XDAG技術(shù)詳解3-主鏈

根據(jù)定義,主鏈?zhǔn)擎滊y度最大的的鏈(chain),所以,如何計(jì)算鏈難度(chain-diff)是關(guān)鍵。

鏈難度(chaindiff)

在xdag中,chaindiff的直接定義,是把chain上面所有block的diff直接累加起來。但是有特殊場(chǎng)景,當(dāng)一個(gè)chain在一個(gè)時(shí)間片中經(jīng)過了多個(gè)block,diff累加過程中,只累加當(dāng)前時(shí)間片中diff最大的那個(gè)block的diff值。

下面對(duì)常見的幾種情況舉例說明:

  1. 鏈上每個(gè)block都跨越時(shí)間片
image-20190930161954283.png

這種是最簡(jiǎn)單的類型,每個(gè)block剛好跨越了時(shí)間片,chaindiff等于所有block難度之和。

chaindiff = t01 + t02 + t03 + t04

  1. chain在單個(gè)時(shí)間片內(nèi)經(jīng)過多個(gè)block,最終跨越時(shí)間片。
image-20190930163728748.png

這種場(chǎng)景,chaindiff在time frame3的時(shí)間片中累加的時(shí)候,只取這三個(gè)中diff最大的一個(gè),其他兩個(gè)會(huì)忽略。

chaindiff = t6 + maxdiff(t5, t4, t3) + t2 + t1。

因?yàn)閱蝹€(gè)周期中有大量交易,這個(gè)模式實(shí)際上是最常見的模式。

在實(shí)際構(gòu)造的過程中,主鏈上每個(gè)時(shí)間片中頂部的block會(huì)被判定會(huì)主塊,也就是說,main-chain只包含每個(gè)時(shí)間片中頂部那個(gè)block,盡管也會(huì)走過同時(shí)間片中其他block,但其他block在定義上不屬于main-chain,這個(gè)定義也在前一章特別說過了。那么根據(jù)定義,t5會(huì)被賦予挖礦獎(jiǎng)勵(lì)。

  1. chain在單個(gè)時(shí)間片內(nèi)經(jīng)過多個(gè)block,終結(jié)于時(shí)間片內(nèi)。
image-20190930165454508.png

這種類型是前面一種類型的特例,計(jì)算方法是一樣的,只不過這個(gè)chain在time frame3中終結(jié)了,發(fā)生了某種分叉。

chaindiff = t6 + maxdiff(t5, t4, t3)

  1. chain直接跨過某個(gè)時(shí)間片
image-20190930165817696.png

這種情況是第一種模式的特例,系統(tǒng)允許這種場(chǎng)景存在,比如系統(tǒng)重啟過程中。

主鏈決策

在區(qū)塊鏈系統(tǒng)中,主鏈?zhǔn)莿?dòng)態(tài)決策的,主鏈上的交易是有效交易,非主鏈上的交易作廢或者無效,xdag中也是類似的,只不過xdag擴(kuò)展了這種定義,不止主鏈上有效,主鏈直接和間接關(guān)聯(lián)的圖上的block也都算有效,這也是為什么xdag能大幅度的提高tps的原因。

  1. 主鏈選擇
image-20191003210657169.png

假設(shè)機(jī)器1中的結(jié)點(diǎn)圖如上所示,t1/t2/t3是最新的三個(gè)頂點(diǎn),從這三個(gè)頂點(diǎn)出發(fā)向下,分別計(jì)算各個(gè)路徑上block難度之和(注意前面說的計(jì)算規(guī)則)后,發(fā)現(xiàn)從t1開始走藍(lán)色路徑的diff和最大,則藍(lán)色路徑被選為了主鏈,被主鏈直接或間接引用的block都為有效交易(圖中綠色block)。

  1. 主鏈切換
image-20191003211958699.png

隨著網(wǎng)絡(luò)block不斷互相同步,在隨后的某個(gè)時(shí)間,假設(shè)機(jī)器2存儲(chǔ)中的結(jié)點(diǎn)與機(jī)器1略有不同,經(jīng)過一番計(jì)算后,發(fā)現(xiàn)從t2開始的這條紅色鏈條上難度和最大,則機(jī)器2會(huì)判定t2開始的這條紅色鏈才是主鏈。

在新的主鏈下,

  1. 黃色為先前無效,新規(guī)則下有效block。

  2. 紫色為新老主鏈交叉部分,繼續(xù)有效。

  3. 綠色為老主鏈有效,新主鏈下無效block,則被判定無效,其中所有交易被回退。

  4. 直接與間接引用

image-20191003205908731.png

假設(shè)圖中藍(lán)色路徑為主鏈,則有效block為:

  1. 藍(lán)色,主鏈路徑上的block。
  2. 紅色,主鏈路徑直接引用的block。
  3. 黃色,主鏈路徑間接引用block。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容