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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【译】Thoughts and Goals on Qtum's x86 VM

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【译】Thoughts and Goals on Qtum's x86 VM 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
因此,我們一直對(duì)x86虛擬機(jī)在Qtum中將允許的內(nèi)容表現(xiàn)出色,除了更多的編程語(yǔ)言支持。 這基本上是因?yàn)樵O(shè)計(jì)過程很容易使一個(gè)平庸的版本,但很難建立一個(gè)優(yōu)化,高效,易于使用的版本。 所以在這里我不會(huì)深入了解設(shè)計(jì)的細(xì)節(jié),但是我想宣布我們想要的目標(biāo)。

編程語(yǔ)言支持

當(dāng)然,編程語(yǔ)言支持是構(gòu)建這個(gè)x86虛擬機(jī)的重要原因。 我個(gè)人想讓2018年在魯斯特寫的智能合約年。 Rust非常高效,重量輕,而且最重要的是注重安全性并避免程序員的錯(cuò)誤。 當(dāng)然,除了Rust之外,還有很多。 帶來(lái)易用的語(yǔ)言,如C#或Go也是一個(gè)目標(biāo)。

x86 VM功能的基本要點(diǎn)是你可以使用幾乎任何現(xiàn)有的編譯器或編程語(yǔ)言,只需進(jìn)行一些修改,以便它可以在Qtum的操作系統(tǒng)(如環(huán)境)上運(yùn)行。 幾乎所有的編譯器都支持x86,因此實(shí)際的字節(jié)碼和體系結(jié)構(gòu)支持已經(jīng)存在。

標(biāo)準(zhǔn)庫(kù)

關(guān)于EVM的常見抱怨之一是缺乏標(biāo)準(zhǔn)庫(kù)。 這不僅是開發(fā)商的煩惱,而且也是珍貴的區(qū)塊鏈空間的直接消費(fèi)者。 提供標(biāo)準(zhǔn)庫(kù)不僅可以使Qtum的區(qū)塊鏈變得更加輕薄和高效,而且它還允許這些標(biāo)準(zhǔn)庫(kù)函數(shù)具有特殊的內(nèi)部代碼,類似于以太坊的預(yù)編譯合同。 無(wú)需為新的預(yù)編譯合同添加特殊支持,然后依靠合同開始使用此特殊功能,即可發(fā)生此功能。 相反,契約可以使用相同的未經(jīng)優(yōu)化的代碼,當(dāng)他們調(diào)用它時(shí),代碼是不透明的,可以隨意優(yōu)化,而不需要對(duì)共識(shí)做出任何改變。 像這樣的標(biāo)準(zhǔn)庫(kù)的優(yōu)化是一個(gè)實(shí)現(xiàn)細(xì)節(jié)。 然而,隨著生態(tài)系統(tǒng)的實(shí)施變得高效,氣體模型可以被調(diào)整用于這些功能,以使其氣體成本反映其真實(shí)的資源成本。

另外,標(biāo)準(zhǔn)庫(kù)不需要fork來(lái)擴(kuò)展。 通過使用分散治理協(xié)議,通用功能可以輕松地進(jìn)入專用標(biāo)準(zhǔn)庫(kù)存儲(chǔ)空間。 這種機(jī)制還允許修補(bǔ)標(biāo)準(zhǔn)庫(kù)中的錯(cuò)誤,但必須特別審核這種權(quán)力,因?yàn)橹悄芎霞s可能依賴于錯(cuò)誤的行為來(lái)實(shí)現(xiàn)正確的功能。 因此,對(duì)標(biāo)準(zhǔn)庫(kù)函數(shù)的潛在升級(jí)可能只能通過選入功能,或者根本不存在。 我們與DGP的目標(biāo)始終保持保守,并確保即使在完全折衷的情況下,智能合同邏輯也不會(huì)受到影響,并且用戶的資金安全。

優(yōu)化的氣體模型

這一部分非常復(fù)雜,就像預(yù)警一樣,我們很可能最初會(huì)用類似于EVM的簡(jiǎn)單氣體模型來(lái)啟動(dòng)x86 VM。 但是,由于x86和ISA的功能有多強(qiáng)大,因此有一些相當(dāng)直接的方法可以推進(jìn)這一領(lǐng)域。

其中一個(gè)簡(jiǎn)單但功能強(qiáng)大的解決方案不僅將提供一個(gè)標(biāo)準(zhǔn)庫(kù),其中包含智能合約和程序通常使用的常用功能。 但是也有一條相當(dāng)直接的途徑可以使這些標(biāo)準(zhǔn)庫(kù)函數(shù)具有人為成本,而不是要求這些函數(shù)依賴于用于一般計(jì)算的簡(jiǎn)單和普通的氣體模型。 因此,例如,簡(jiǎn)單氣體模型中的strlen可能需要串中每個(gè)字符90個(gè)氣體。 但是,經(jīng)過開發(fā)人員的檢查,發(fā)現(xiàn)strlen在Qtum虛擬機(jī)上實(shí)際執(zhí)行起來(lái)非常便宜。 所以,Qtum的分散治理協(xié)議被用來(lái)為這個(gè)功能提出一個(gè)特殊的氣體規(guī)則。 所以,現(xiàn)在調(diào)用這個(gè)函數(shù)的成本可能是10個(gè)氣體的平坦初始成本,加上每個(gè)角色1個(gè)氣體。 要制作一個(gè)完美的氣體模型是不可能的,因此,我們希望利用Qtum中的DGP機(jī)制來(lái)使這種近似盡可能優(yōu)化和高效。

釋放AAL的全部力量

現(xiàn)在,我們傾向于將帳戶抽象層作為“使EVM工作所必需的”。 然而,AAL的隱藏功能遠(yuǎn)遠(yuǎn)超出了Qtum之上的EVM工作所需的功能。 Qtum從一開始就設(shè)計(jì)為支持多個(gè)虛擬機(jī),而EVM只是第一個(gè)支持的虛擬機(jī)。 也就是說,賬戶抽象層目前受限于可以通過EVM輕松暴露的內(nèi)容。 我們正在設(shè)計(jì)的x86 VM不會(huì)遇到這種限制。 我們想要公開的一些有力的東西是因?yàn)檫@個(gè):

  • P2SH(比特幣風(fēng)格)多信用卡作為一級(jí)公民,用于發(fā)送和接收來(lái)自智能合同的付款
  • 原始交易腳本支持發(fā)送自定義事務(wù)以充分利用Qtum中的腳本功能
  • 允許segwit交易包含并執(zhí)行智能合約

智能合約的新可能性

使用x86,我們獲得了Von Neumman計(jì)算架構(gòu)。 這意味著代碼是數(shù)據(jù),反之亦然。 此功能以及諸如硬件/軟件中斷等功能允許將潛在操作系統(tǒng)(如構(gòu)造和功能)與多個(gè)半可信參與者集成到單個(gè)智能合約中。 這包括合作多任務(wù)處理,暫停和恢復(fù)執(zhí)行(即在稍后的事務(wù)中恢復(fù)執(zhí)行)以及看門狗定時(shí)器(盡管不是“時(shí)間”,它可以用于天然氣)。 這當(dāng)然還包括更新合同字節(jié)碼的直接機(jī)制,而不需要將資金和數(shù)據(jù)轉(zhuǎn)移到新合同。

x86指令集還包括許多專門的功能來(lái)控制某些代碼空間的專用權(quán)限,分頁(yè)和內(nèi)存映射以及系統(tǒng)調(diào)用等。 Qtum預(yù)計(jì)不會(huì)公開大多數(shù)這些專門的系統(tǒng)級(jí)指令。 它們使氣體模型設(shè)計(jì)變得非常復(fù)雜,并且使得一切難以優(yōu)化。

盡管如此,盡管這些指令中有關(guān)智能合約的東西相對(duì)較少。 在單個(gè)智能合約代碼中擁有單獨(dú)的ring-0特權(quán)代碼和ring-3非特權(quán)代碼的公共區(qū)塊鏈幾乎沒有實(shí)際需要。 如果這些功能傾向于真正流行的用例是在特權(quán)和半特權(quán)區(qū)塊鏈中。 所以,當(dāng)我們開始關(guān)注Qtum的企業(yè)方面時(shí),我們當(dāng)然會(huì)重新審視這一點(diǎn)。

一流的神諭

在用于事務(wù)的x86 VM模型中,如果您知道該合同所需的數(shù)據(jù),則無(wú)需調(diào)用合同。 可以直接從外部合同的存儲(chǔ)空間加載數(shù)據(jù)。 這允許一流的ORACLE,合同可以建立自己的ABI和API機(jī)制來(lái)標(biāo)準(zhǔn)化他們的存儲(chǔ)空間。 然后,合同可以直接加載存儲(chǔ)數(shù)據(jù),不需要進(jìn)行昂貴的調(diào)用,需要加載整個(gè)合約字節(jié)碼,創(chuàng)建新的虛擬機(jī)環(huán)境等。這將最終使Oracles成為區(qū)塊鏈上的一等公民而不是受智能合約功能的限制。 小號(hào)

區(qū)塊鏈分析

x86可用的大內(nèi)存空間以及用于一般計(jì)算的高效操作碼集使得區(qū)塊鏈分析的潛力成為EVM的一個(gè)夢(mèng)想。 可以公開完整的區(qū)塊鏈數(shù)據(jù)進(jìn)行合同分析。 這可能允許基于人工智能的智能合約自動(dòng)監(jiān)控區(qū)塊鏈,可能作為預(yù)言者,以便允許智能合同調(diào)整自己的行為,以便在當(dāng)前網(wǎng)絡(luò)條件下盡可能高效地運(yùn)行。 這種區(qū)塊鏈數(shù)據(jù)可能包括完整的交易數(shù)據(jù)或由區(qū)塊鏈節(jié)點(diǎn)計(jì)算出的統(tǒng)計(jì)數(shù)據(jù)(以共識(shí)關(guān)鍵的方式)。 暴露這些數(shù)據(jù)沒有什么壞處,因?yàn)樗峭耆蛔兊?#xff0c;只會(huì)導(dǎo)致幾Mb的額外內(nèi)存使用量。

替代數(shù)據(jù)存儲(chǔ)

目前,EVM強(qiáng)制每個(gè)人使用指向32字節(jié)數(shù)據(jù)的32字節(jié)密鑰。 這可能會(huì)非常痛苦,特別是在考慮分割和維護(hù)該空間時(shí)。 而且,這沒有什么重要的理由。 因此,在x86機(jī)器中,我們打算給智能合約一個(gè)通用的鍵值存儲(chǔ)。 因此,您可以存儲(chǔ)從1到大量字節(jié)的任何內(nèi)容作為關(guān)鍵字,并指向相同的變量值。 到目前為止,針對(duì)此功能的建議氣體模型基本上涉及用于向該數(shù)據(jù)庫(kù)寫入/讀取的固定費(fèi)用,然后每個(gè)字節(jié)的每字節(jié)費(fèi)率需要被觸及。 當(dāng)然,這個(gè)功能仍然會(huì)被stateRootHash所涵蓋,以便SPV錢包可以使用這個(gè)數(shù)據(jù)庫(kù)與智能合約進(jìn)行交互。

顯式依賴樹

另一個(gè)有點(diǎn)崇高的目標(biāo)是允許智能合約的依賴樹被明確地聲明和執(zhí)行。 這將僅僅是一個(gè)選擇功能,以便接觸未知智能合約的合同仍然是可能的。 但是,對(duì)于確切知道他們依賴哪些依賴關(guān)系的合同,這允許在某些情況下并行執(zhí)行這些合同,因此他們可能會(huì)獲得降低的天然氣成本等優(yōu)點(diǎn)。 對(duì)于選擇加入此功能的基于x86的智能合約,這將是主要的擴(kuò)展優(yōu)勢(shì)。

為什么x86? 為什么不是ARM?

我聽到很多人問“為什么x86?為什么不是ARM?”。 這個(gè)問題問得好。 我們認(rèn)為x86是虛擬機(jī)和仿真器最為人熟知的平臺(tái)。 數(shù)十年來(lái)一直致力于為x86創(chuàng)建高效安全的虛擬機(jī)。 如果你想真正研究這一點(diǎn),看看沒有比Stackoverflow的許多問題關(guān)于使Android模擬器在合理的性能水平上運(yùn)行。 基本上,大多數(shù)情況下,解決方案是使用x86虛擬機(jī)而不是ARM虛擬機(jī)。 當(dāng)然還有一些項(xiàng)目用于那些不被視為可怕的ARM虛擬機(jī),比如Qemu,我確信其他人不知道。 但關(guān)鍵是x86仿真是一個(gè)相當(dāng)直接的解決方案的已知問題。 著名的“英特爾手冊(cè)”被認(rèn)為是這類CPU架構(gòu)中最好的書面清晰文檔。 甚至還有一些高中的孩子為了好玩而編寫x86模擬器(哈哈,就是我!)。 ARM的編譯器支持總是在不斷改進(jìn),但它仍然沒有達(dá)到與x86支持相當(dāng)?shù)牡夭健?/span>

現(xiàn)在,盡管如此,x86絕不是簡(jiǎn)單的ISA。 它自70年代以來(lái)一直存在于8008之后,自8088/8086以來(lái)一直保持向后兼容。 這確實(shí)會(huì)對(duì)設(shè)計(jì)產(chǎn)生影響,也就是為什么只有大量的操作碼可用,其中包括一些可能無(wú)用的操作碼,并且實(shí)際上在硬件上執(zhí)行速度要慢于編寫代碼以避免這些操作。 我最喜歡的例子是詛咒的二進(jìn)制編碼的十進(jìn)制指令集,自80年代以來(lái)一直沒有受到歡迎。 然而,這是一個(gè)額外的復(fù)雜工作,需要幾個(gè)小時(shí)的額外工作。 使用x86的好處遠(yuǎn)遠(yuǎn)超過成本。

盡管如此,ARM仍然處于我們的視線之內(nèi),尤其是對(duì)于通常在ARM處理器上本地運(yùn)行的物聯(lián)網(wǎng)用例。 現(xiàn)在我們專注于x86,但之后,誰(shuí)知道,特別是對(duì)于企業(yè)和許可的區(qū)塊鏈。


http://earlz.net/view/2017/10/02/0801/thoughts-and-goals-on-qtums-x86-vm

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的【译】Thoughts and Goals on Qtum's x86 VM的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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