Vite測試網路將在11月上線 全球領先DAG公鏈瞭解一下

買賣虛擬貨幣
一、前言經過緊張有序的Vite主網各項模組的開發除錯,Vite測試網路已經進入到聯調階段,預計將於11月上線。測試網路是ViteLabs團隊非常重要的階段性成果,上線之後,技術團隊會針對Vite測試網路進行多維度的測試,為打造健壯穩定的Vite主網做充分的準備。二、功能模組測試網路包括的主要功能模組如下:1、DAG 賬本結構
2、內建智慧合約3、HDPoS分層共識機制4、非同步通訊 5、快照鏈6、Vite鑄幣7、交易配額
8、超級節點註冊和選舉三、功能解讀1、【免手續費交易】Vite提供的方式為,低頻使用者透過簡單的PoW獲取基礎配額,高頻使用者透過抵押Vite Token獲取大額配額,透過使用者可配置的自動簽收功能來保證接收有效交易。支援使用者免手續費交易,這在BTC和ETH中是無法實現的,Vite的此項功能為公鏈的落地帶來了更多的想象力。2、【內建智慧合約】內建智慧合約也是重要的部分,為定時排程、去中心化交易所等功能打下基礎。3、【HDPoS分層共識】個人賬戶透過私有共識組進行共識,合約賬戶透過委託共識組進行共識,快照鏈透過快照共識組進行共識。DAG共識保證賬本快速寫入,快照鏈共識提高交易的不可篡改性。並且後續版本將會支援側鏈、私有鏈、聯盟鏈的搭建。4、【更快速】為了提高公鏈的效能,DAG賬本結構和非同步架構也是本次測試網路上線非常核心的部分。主要有三部分:請求和響應的非同步設計,交易寫入和確認的非同步設計,合約間通訊的非同步設計。同時輔助推拉結合的P2P資料傳輸方案,提高系統效能。
5、【更安全】快照鏈部分會定期快照所有DAG賬本,保證交易的不可篡改。6、【一鍵鑄幣】支援內建合約鑄幣,免去了使用者在以太坊發幣的高額的技術成本,可以技術低成本也更安全的發行數字貨幣。7、【超級節點】支援超級節點的註冊和選舉,對於有意向瞭解Vite超級節點的使用者和團隊,可以提前嘗試超級節點的註冊和選舉流程。四、技術方案說明【DAG 賬本】由多條賬戶鏈、多條合約鏈及一條快照鏈及賬戶合約鏈間關係共同構成了DAG賬本。對於賬戶或合約鏈來說,每條鏈包含請求塊和相應塊;賬戶鏈的出塊權由賬戶所有者產生;合約鏈的出塊權由共識組參與者產生,例如預設的超級節點構成的共識組;快照鏈的出塊權是當前時間具有出塊許可權的超級節點。所有的接收塊必然依賴於其他賬戶或者合約的傳送塊;快照塊需要依賴所有被快照打包的賬戶塊和合約塊;這就構成了Vite的賬本結構。

這種賬本結構允許互不相干的交易“並行”寫入,降低衝突概率,提高系統吞吐能力。這種使用者DAG結構有先天的安全性缺陷。這是由於交易是按賬戶分組的,一個交易只會附加到其所屬賬戶的賬戶鏈末端,其他賬戶產生的交易不會自動成為該交易的後繼節點,因此,一些交易被回滾的概率不會隨時間推移而降低。Vite透過獨創的快照鏈技術,彌補了這一缺陷,實現了白皮書中承諾的使用者鏈、合約鏈和快照鏈的全部功能。

【智慧合約】

智慧合約目前完成了必要的內建合約的開發,已經實現的內建合約包括:超級節點註冊、超級節點投票、抵押Vite Token、建立委託共識組。並且即將支援使用者編譯智慧合約程式碼,釋出智慧合約,vm支援大部分evm指令。

其中:

超級節點註冊,當一個節點申請註冊成為超級節點時,需要發起一個註冊交易,並支付100w Vite Token,鎖倉3個月,鎖倉開始時間為response交易引用的快照塊的時間。當response交易被快照後,這個節點就可以作為超級節點候選被投票,超級節點不能重複註冊。

超級節點投票,使用者賬戶可以發起一筆交易,為超級節點投票,一個使用者只能投一票。當一個節點申請註冊成為超級節點並鎖倉超過3個月時,可以發起一個登出超級節點的交易,退出超級節點候選列表,提取鎖倉的ViteToken。

抵押ViteToken,抵押人指定受益人、抵押金額和抵押到期時間,受益人可以在抵押期間使用抵押金額對應的額度。當抵押的response交易被快照時,受益人可以享受相應的額度。一個受益人可以持有多個抵押人抵押的ViteToken;一個抵押人可以給多個受益人抵押ViteToken;當抵押人在抵押到期時(抵押開始時間 + 抵押時間)取回抵押的ViteToken,取回時需要指定受益人和金額,金額不能大於抵押人為受益人抵押的總金額。

建立委託共識組,建立委託共識組需要抵押1000ViteToken,最小抵押時間為3個月。系統內建計票規則、超級節點註冊條件、投票條件,後期可支援自定義規則。

【HDPoS機制】

個人賬戶透過私有共識組進行共識,合約賬戶透過委託共識組進行共識,快照鏈透過快照共識組進行共識。DAG共識保證賬本快速寫入,快照鏈共識提高交易的不可篡改性。生產使用者賬戶和合約賬戶的請求交易和響應交易對應的區塊,分別寫入請求方和響應方的賬本,完成賬戶鏈的區域性共識。對賬本中的資料進行快照,由超級節點根據出塊計劃依次生產快照塊,完成全域性的共識,實現不可篡改。

【非同步通訊】

Vite中的非同步設計主要包括三個方面:

1、請求和響應的非同步設計
2、交易寫入和確認的非同步設計
3、合約間通訊的非同步設計

Vite中的交易分為請求交易和響應交易。無論是一筆轉賬還是一次合約呼叫,均會在賬本上先後生成兩筆交易。傳送交易或者呼叫合約不會因為接收者是否線上或者響應過慢而受到阻塞,有效提高吞吐。同時,不同賬戶的交易可以分佈在網路中的不同的節點上,為系統帶來了擴充套件性。

交易寫入賬本和被系統確認也是非同步的。不同的使用者可以並行的將交易寫入賬本,快照鏈將以固定的速度對賬本進行快照。一旦交易被快照,就可以認為是一次確認,隨著快照鏈的增長,確認數也會累積。非同步確認機制可以削平交易寫入速率的峰谷,最大化利用系統資源。

Vite的合約間通訊採用了一種基於訊息驅動的架構,合約間不共享狀態,只透過彼此傳送訊息進行通訊。Vite的賬本擔任了訊息中介軟體的角色,並且可以保障訊息的Exactly Once語義。基於訊息的架構具有高吞吐和擴充套件性的優勢。但與此相應,付出的代價是程式設計模型變得相對複雜,無法保證強一致性,而且有可能使延遲變大。經過認真的研究,我們發現在實際場景中,強一致性語義是可以用BASE(最終一致性)語義替代的。由於Vite的HDPoS共識演算法可以保障交易確認在一秒之內完成,因此,延遲的增加仍然在可控範圍之內。

【快照鏈】

超級節點負責快照塊的生產,超級節點根據選舉結果判斷是否該為自己出塊時間,如果是自己的出塊時間,把驗證好的使用者塊和合約塊打包,生成一個快照塊,放入到自己的快照鏈賬本里面,並廣播出去;對於網路上傳來的快照塊,所有全節點會根據競選結果驗證出塊權是否正確,並且驗證資料的合理性;由於網路環境等因素導致的超級節點出塊分叉,採用最長的合法鏈作為本地快照鏈的世界狀態,同時儲存分叉資料,以防後續分叉資料成為更長的本地快照鏈。如果發生了分叉(本地節點產生了更長的快照鏈和之前認定的快照鏈不存在延續關係),那麼本地會將本地賬本切換到最長快照鏈對應的世界狀態,對應的使用者鏈和合約鏈也會和快照鏈嚴格保持一致。

【Vite鑄幣】

因為區塊鏈金融屬性是基礎的能力,因此Vite測試網路原生支援了鑄幣內建合約,和以太透過外接合約方式實現不同,我們直接原生支援了快速鑄幣,使用者只需要給內建鑄幣合約地址傳送一筆交易就可以輕鬆鑄幣。使用者傳送request塊鑄幣交易給鑄幣合約,填寫必要的token資訊;鑄幣合約地址,校驗成功後,生成了response塊,並且傳送給指定的地址所鑄幣的所有token;被指定的地址,生成response塊,接收所鑄幣的所有token;同時快照鏈快照了以上所有塊,鑄幣成功。

【交易配額】
為了避免Vite上出現類似於比特幣和以太坊高昂的手續費,Vite免收手續費。手續費是為了系統的穩定性和保證合理有效的交易設立的,因為Vite為保證穩定性和支撐合理交易,提出了配額的概念,所以在交易和執行合約過程中無需支付手續費,只需要免費的獲取配額。充分考慮Vite的低頻使用者和高頻使用者的不同訴求,有兩種方式可以獲取配額:一種方式是無門檻的計算POW,透過有效的POW,可換取滿足普通使用者正常使用的配額,及POW作為系統限流合理使用的門檻。另一種方式是透過抵押vite來換取配額,抵押的vite越多,獲取的配額越多,及單位時間內可以傳送和接收的交易越多,例如適用於高頻交易的商戶地址。另外測試網路充分考慮輕錢包和移動端計算POW的不變性,提供了計算POW的礦池API,在雲端幫助普通使用者計算POW的需求。

【超級節點註冊和選舉】

節點抵押Vite競選超級節點,使用者為超級節點投票,透過呼叫投票內建合約;每輪次統一投票結果,確定下次的超級節點名單以及超級節點的出快照塊順序。例如25個節點,每個節點連續出三個塊,每個塊時間1s,那麼一輪即為75s左右。超級節點發現新的一輪即將開始,開始統計內建投票合約鏈結果,開始生成下一輪25個節點出塊順序。後續節點按照該順序出塊。

【交易最佳化】

為了兼顧安全性並且滿足對高吞吐、低延遲和擴充套件性的要求,我們在系統模組劃分和系統模組之間的呼叫投入了非常多的時間完善,下圖為一筆交易發生的過程:

說明:

pool(本地世界狀態判斷模組)將接收來自於節點Producer模組生產的快照塊、節點傳送交易的request塊、在途(生產響應塊模組)生產出的response塊和其他節點產生網路傳遞過來的以上三種塊。

傳送交易節點:錢包或者命令列透過vite rpc 生產request塊,傳送給pool(本地世界狀態判斷)模組,pool透過生產驗證模組(判斷配額,vm驗證等)將資料插入到本地賬本,同時透過P2P廣播到網路上。

接收交易節點:接收交易的地址節點上線後,會從網路獲取到request塊,並且交給onroad pool(在途)來生產接收塊,確定交易成功。並把response塊廣播到網路中。

挖礦節點:超級節點會收集所有的使用者塊,並且根據共識結果,在自己的出塊週期內打包所有的確定的使用者交易塊和合約塊,生成snapshot塊,廣播到網路中。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;