国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Bytom設(shè)計(jì)結(jié)構(gòu)解讀

xuexiangjys / 3021人閱讀

摘要:一引文設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),組合了許多技術(shù)點(diǎn),如,,,,,,等。采用樹,其中的數(shù)據(jù)可快速證明,可以快速證明每一份狀態(tài)機(jī)是否一致。四是在狀態(tài)機(jī)的轉(zhuǎn)化過程被啟動(dòng)運(yùn)行,也就是這一步驟。是指發(fā)布該資產(chǎn)時(shí)需要執(zhí)行的程序。的邏輯結(jié)構(gòu)則是用二叉樹來管理。

一、引文

設(shè)計(jì)Bytom 數(shù)據(jù)結(jié)構(gòu),組合了許多技術(shù)點(diǎn),如 patricia tree,utxo, bvm, account model,protobuf,sql,memcache 等。本文會(huì)對一些技術(shù)點(diǎn)做以下兩點(diǎn)分析。

Bytom 為什么要采用該技術(shù)點(diǎn)?

Bytom 如何應(yīng)用該技術(shù)點(diǎn)?

最后介紹綜合這些技術(shù)點(diǎn)如何實(shí)現(xiàn)Bytom。

[patricial tree](http://www.allisons.org/ll/AlgDS/Tree/PATRICIA/)

二、為什么要采用PAT樹?

?PAT樹具有[基數(shù)樹](https://en.wikipedia.org/wiki... 的特點(diǎn),內(nèi)容可快速追蹤。

?PAT樹具有[merkle樹](https://en.wikipedia.org/wiki... 的特點(diǎn),數(shù)據(jù)可快速證明。


在分布式系統(tǒng)中,一致性和有效性是十分關(guān)鍵的點(diǎn)。bytom采用PAT樹,其中的數(shù)據(jù)可快速證明,可以快速證明每一份狀態(tài)機(jī)是否一致。內(nèi)容可快速追蹤,可以使bytom在每一個(gè)快照狀態(tài)下,快速查找其數(shù)據(jù),并檢驗(yàn)數(shù)據(jù)的有效性。

Bytom 如何用PAT樹?

Ethereum的PAT樹是16叉基數(shù)樹,分兩層,第一層管理的是所有的賬戶,第二層管理是各賬戶的存儲(chǔ)內(nèi)容。

Bytom 的PAT樹與Ethereum 不同?

?Bytom 的PAT樹是二叉基數(shù)樹。

?Bytom的PAT樹是用來管理未花費(fèi)的outputs。

三、UTXO

為什么要使用UTXO?

UTXO誕生于比特幣,和現(xiàn)實(shí)世界的RMB一樣,從央行誕生的那一刻起,他流轉(zhuǎn)無數(shù)人的賬戶,但他的價(jià)值面額始終和原來一樣,這樣以幣為中心,而不是以人為中心,資產(chǎn)便于監(jiān)管和統(tǒng)計(jì)。Bytom 就是用于資產(chǎn)的發(fā)布和管理的,所以,UTXO的這種以資產(chǎn)為中心的設(shè)計(jì)模式,是很適合Bytom上面的資產(chǎn)管理。

怎么使用UTXO?

相比比特幣的UTXO, bytom的UTXO多了三個(gè)字段

assertid, 因?yàn)閎ytom是一個(gè)多資產(chǎn)發(fā)布與管理的平臺(tái),所以使用該字段來唯一確定各種資產(chǎn)。

accountid, 這是便于各賬戶對utxo的索引和管理,bytom 相比bitcoin,引入了賬戶模型,后面會(huì)介紹。

program, 擁有該utxo的賬戶可以用Ivy語言編寫自己想要的程序放在該字段,以便在交易時(shí),圖靈完備的BVM會(huì)執(zhí)行該程序。

四、BVM


BVM是在狀態(tài)機(jī)的轉(zhuǎn)化過程被啟動(dòng)運(yùn)行,也就是excute(transaction)這一步驟。

為什么需要使用BVM?

bitcoin 中的非圖靈完備棧式腳本語言,所表達(dá)的功能極少,很難實(shí)現(xiàn)一些稍微復(fù)雜的功能,如verify_spv(跨鏈錨定驗(yàn)證的功能,如btc_relay),再如簡單的去實(shí)現(xiàn)multi_lock(M人加密,只要收集N人私鑰就能解密,0 < N < M)功能。
ethereum中的evm能簡單的用solidity語言編寫程序?qū)崿F(xiàn)這些功能,但EVM過于復(fù)雜,它號稱超級世界計(jì)算機(jī),對于bytom這種只對資產(chǎn)有興趣的區(qū)塊鏈?zhǔn)菦]必要的。因此bytom不如基于[Chain](https://chain.com/) 公司的能用[Ivy](https://chain.com/docs/1.2/ivy-playground/docs) 高級語言編程的CVM去做自己的擴(kuò)展,靈活易用。

如何使用BVM?


用戶在發(fā)送每一筆交易時(shí),可以自己編寫自己所需要的程序,等到交易打包進(jìn)塊時(shí),BVM會(huì)去執(zhí)行該代碼,由于BVM是圖靈完備的虛擬機(jī),所以需要加入feed計(jì)價(jià)機(jī)制(feed 等同于ethereum的gas * gasprice)來解決停機(jī)問題。

五、賬戶模型

為什么要采用賬戶模型?

賬戶模型易于管理相關(guān)數(shù)據(jù),是以人為中心,十分的直觀。對于BVM來說,基于賬戶代碼去執(zhí)行也十分便捷。再者我們引入了資產(chǎn)模型,類似于賬戶模型,這樣易于資產(chǎn)的監(jiān)管和查詢。

bytom怎么去實(shí)現(xiàn)賬戶模型?

bytom 中的賬戶模型也分兩類,但不同于ethereum中的個(gè)人帳戶和合約賬戶, 它是指資產(chǎn)賬戶和個(gè)人賬戶。
資產(chǎn)賬戶:

assetid 是全局唯一的資產(chǎn)識(shí)別id。

alias 是資產(chǎn)的別名,可便于記憶,如(gold, silver) 。

vmversion 是為了軟分叉時(shí),做到動(dòng)態(tài)過度。

program 是指發(fā)布該資產(chǎn)時(shí)需要執(zhí)行的程序。

initialblockhash 是指該資產(chǎn)是在哪個(gè)塊高度被登記。

signer 管理公私鑰對,以便用該資產(chǎn)的私鑰簽名,只有擁有該資產(chǎn)私鑰的人才能發(fā)布該資產(chǎn)。

definition 對該資產(chǎn)的解釋說明等。

個(gè)人賬戶:

accountid 全局唯一可識(shí)別賬戶id。

alais 帳戶名。

signer, 私鑰對,用于發(fā)送交易。

*utxos 該賬戶所有的未花費(fèi)交易的索引,便于快速管理該賬戶下資產(chǎn)。

program, 該賬戶發(fā)送交易時(shí)可插入需要的程序。

綜述

UTXO的物理結(jié)構(gòu),用memcache 存著。UTXO的邏輯結(jié)構(gòu)則是用二叉PAT樹來管理。

個(gè)人賬戶 根據(jù)AccountId 能夠快速的索引其相關(guān)的utxo。資產(chǎn)賬戶根據(jù)AssetId能夠快速的管理相關(guān)的utxo。

上圖是描述bytom主要數(shù)據(jù)結(jié)構(gòu)的uml圖。

Bytom用PAT樹來組織utxo作為世界狀態(tài)樹。

賬戶模型分兩種,資產(chǎn)賬戶和個(gè)人賬戶,賬戶可以索引管理其相關(guān)的utxo。

UTXO 池會(huì)采用如memcache的內(nèi)存數(shù)據(jù)庫,落盤數(shù)據(jù)庫會(huì)選擇關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)會(huì)選擇protobuf來序列化。

在賬戶做交易時(shí),每個(gè)賬戶都可以從世界狀態(tài)樹去查找選擇自己的utxo,并編寫自己所需的資產(chǎn)程序,將其做為TxInput。

在交易打包進(jìn)塊時(shí),驗(yàn)證節(jié)點(diǎn)會(huì)去實(shí)例化BVM,并執(zhí)行該交易中所有TxInput中的程序。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24172.html

相關(guān)文章

  • Derek解讀Bytom源碼-孤塊管理

    摘要:此時(shí)節(jié)點(diǎn)將放入到孤塊管理緩存池中,等待彼此的父塊。判斷當(dāng)前塊是否存在于區(qū)塊鏈上或是否存在孤塊緩存池中,如果存在則返回。比如當(dāng)前區(qū)塊高度為,則在孤塊緩存池中查詢是否有區(qū)塊高度為的區(qū)塊。 作者:Derek 簡介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 本章介紹bytom...

    Donne 評論0 收藏0
  • Derek解讀Bytom源碼-P2P網(wǎng)絡(luò) 地址簿

    摘要:作者簡介地址地址本章介紹代碼網(wǎng)絡(luò)中地址簿作者使用操作系統(tǒng),其他平臺(tái)也大同小異介紹用于存儲(chǔ)網(wǎng)絡(luò)中保留最近的對端節(jié)點(diǎn)地址在下,默認(rèn)的地址簿路徑存儲(chǔ)在地址簿格式地址類型在中存儲(chǔ)的地址有兩種標(biāo)識(shí)新地址,不可靠地址未成功連接過。 作者:Derek 簡介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomB...

    Kahn 評論0 收藏0
  • Derek解讀Bytom源碼-P2P網(wǎng)絡(luò) upnp端口映射

    摘要:作者簡介地址地址本章介紹代碼網(wǎng)絡(luò)中端口映射作者使用操作系統(tǒng),其他平臺(tái)也大同小異介紹通用即插即用。端口映射將一個(gè)外部端口映射到一個(gè)內(nèi)網(wǎng)。 作者:Derek 簡介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 本章介紹bytom代碼P2P網(wǎng)絡(luò)中upnp端口映射 作者使用Mac...

    ranwu 評論0 收藏0
  • Derek解讀Bytom源碼-持久化存儲(chǔ)LevelDB

    摘要:函數(shù)總共操作有兩步從緩存中查詢值,如果查到則返回如果為從緩存中查詢到則回調(diào)回調(diào)函數(shù)。回調(diào)函數(shù)會(huì)將從磁盤上獲得到塊信息存儲(chǔ)到緩存中并返回該塊的信息。回調(diào)函數(shù)實(shí)際上調(diào)取的是下的,它會(huì)從磁盤中獲取信息并返回。 作者:Derek 簡介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc......

    Eminjannn 評論0 收藏0
  • Derek解讀Bytom源碼分析-持久化存儲(chǔ)LevelDB

    摘要:函數(shù)總共操作有兩步從緩存中查詢值,如果查到則返回如果為從緩存中查詢到則回調(diào)回調(diào)函數(shù)。回調(diào)函數(shù)會(huì)將從磁盤上獲得到塊信息存儲(chǔ)到緩存中并返回該塊的信息。回調(diào)函數(shù)實(shí)際上調(diào)取的是下的,它會(huì)從磁盤中獲取信息并返回。 簡介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 本章介紹Dere...

    GitChat 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<