NULS2.0對比1.0的優點

NULS2.0對比1.0的優點

一直以來,NULS都致力於突破區塊鏈技術瓶頸,提供穩定、高效、高性能的網絡運行環境。且為企業提供靈活易用的區塊鏈底層技術支持,通過降低企業開發和使用成本,從而推動區塊鏈商業應用進程。

為了繼續更快、更好的推動NULS的發展,擴大NULS的生態圈等一系列意義,團隊決定開發NULS2.0。

接下來,我將詳細講述NULS2.0對比1.0做了哪些方面的優化。

NULS2.0對比1.0的優點

一、NULS2.0模塊化開發做得更徹底

首先要給大家解釋一下什麼是模塊化開發。模塊化開發是指,將一個業務複雜的大系統,按照內部不同的功能點,分解成一個個獨立的小系統,每個系統負責完成自己模塊的功能。最後將小模塊整合到一起,完成整個系統的功能需求。

用區塊鏈來舉例:首先我們需要下載錢包,一個錢包就可以看做是一個節點。錢包可以創建賬戶,並且給賬戶加密。錢包運行起來之後,就會去網絡上發現更多的節點,相互之間建立連接。連接建立好後,就可以相互發送與驗證交易,最後由一些節點將合法的交易打包成區塊,再分發給各個節點,節點驗證區塊後統一達成共識。

將整個區塊鏈業務分解開來,我們就可以發現,有賬戶模塊來負責創建賬戶、有網絡模塊來負責發現節點和廣播數據、有交易模塊來驗證處理交易、有共識模塊來打包區塊、有區塊管理模塊來負責區塊的同步和存儲。

模塊化開發的好處:

1.每個模塊的功能更獨立,業務更清晰,便於開發人員理解;例如:開發賬戶模塊只需要關心賬戶私鑰的安全性,如何實現私鑰的加密解密,而不需要去關心網絡模塊是如何發現節點、區塊管理模塊是如何實現處理分叉的

2.各個模塊之間定義好相互的交互接口後,就可同時做開發,提升開發效率;

3.每個模塊可以獨立升級和替換,不影響整個系統中的其他模塊;

4.每個模塊可以用不同的語言做開發,降低開發者的門檻;

為什麼說NULS2.0模塊化更徹底?

1.模塊化做得更細緻,分工更明確:

我們在做NULS1.0的時候,確實是將模塊劃分開,每個模塊都在設計的時候做了明確的分工。但因為經驗不足,在實際開發過程中,出現了一些分工不明確的地方。開發時出現了本來應該在A模塊實現的功能,最後在B模塊裡實現。在做2.0的設計方案時,吸取了很多1.0開發時的經驗教訓,每個模塊的定義清晰,業務功能明確。

2.模塊更獨立、更利於擴展:

更獨立:

NULS1.0雖然做了模塊化,但整體還是由一個程序來驅動,一種語言做的開發。NULS2.0採用微服務的架構,模塊與模塊之間做到真正的獨立開發,模塊之間使用RPC通信。每個單獨的模塊都可以使用不同的編程語言來開發,從而降低了開發者的門檻。

例如:我們的核心模塊nulstar,是用C++做的開發,共識模塊、交易模塊、區塊管理模塊用JAVA做的開發,而賬戶模塊,目前JAVA版本和JS版本都已實現。

更利於擴展:

1)模塊獨立化後,模塊的實現方式就可以更多樣化,例如共識模塊nuls採用的是poc共識機制,有需求有能力的開發人員,也可以開發pow共識機制來替換。

2)若需要增加新的功能,我們可以直接增加新的模塊來實現,不需要修改原有的模塊。

3.更規範、更容易上手:

經過1.0的探索後,2.0在開發設計的時候就制定了很多開發規範。例如文檔的規範、接口定義的規範、代碼風格的規範。更好的規範就更利於合作開發,降低新開發成員的學習成本。

二、賬本模塊從NULS1.0的UTXO模型轉換成傳統賬戶餘額模型

這裡還是要解釋一下什麼是UTXO模型,什麼是賬戶餘額模型

傳統賬戶餘額模型:

很好理解,我們平時使用的支付寶、微信支付都是賬戶餘額模型,我微信收到一個100塊錢的轉賬,賬戶裡就有100的餘額。之後我又收到了一個200塊錢的轉賬,賬戶裡的餘額就變為300。

UTXO模型:utxo模型俗稱錢包零錢模型,例如你兜裡本來有一張100元的人民幣,出門逛街,你在地上撿到200元,這時雖然你總共有300塊錢,但從表象上來看,你有的是三張100塊的人民幣,而不是說你有一張面值300元的錢。你撿到錢非常高興,請朋友吃飯,花費260,這個時候你給錢的方式也是將三張100的人民幣都給出去,然後飯店在找零40給你。

說到這,熟悉我們nuls1.0錢包的小夥伴就可以聯想到我們平時在用錢包轉賬的時候,明明我轉的是100,最後交易成功了去查看交易詳情,發現一大推零零散散的金額被轉出去了,最後還會找零給自己一個餘額。這個就是UTXO模型,賬戶沒有一個總賬,每次計算餘額的時候,都會像躲在家裡數錢一樣,把每個零錢都加一遍。

那麼NULS2.0為什麼要採用賬戶餘額模型呢?

顯而易見,採用賬戶餘額模型的話,對程序開發來說,計算量更小,需要存儲的數據也更少。這樣既提升了效率又節省了空間。

還有一個更關鍵的原因——它減少了用戶轉賬時候的手續費。我們都知道,區塊鏈上的數據都是有成本的,每一筆交易的數據越多,打包節點收取用戶的手續費就越多。

三、NULS2.0支持跨鏈

跨鏈是當前區塊鏈的一個熱門話題,也是區塊鏈應用落地需要解決的三大難點之一。

為什麼要有跨鏈呢?

目前雖然有很多公鏈存在,但每一條鏈都是一個相對獨立的網絡,數據信息不能做到互通互聯,存在信息孤島的問題。不同的區塊鏈網絡之間協作的難度大,這極大地限制了區塊鏈應用的發展。於是,關於如何實現跨鏈技術和多鏈融合,成為了當前區塊鏈領域研究的熱點之一。如果說共識機制是區塊鏈的靈魂核心,那麼對於區塊鏈特別是聯盟鏈及私鏈來看,跨鏈技術就是實現價值網絡的關鍵。

NULS2.0如何實現跨鏈?

跨鏈涉及到的專業名詞較多,為了方便理解,儘量用簡單易懂方式描述。NULS的跨鏈分為兩部分,我給他取名為體制內和體制外。

體制內:

以NULS為主鏈(也叫衛星鏈),以其他使用NULS區塊鏈搭建的平行鏈應用為友鏈,相互之間發送跨鏈交易實現互聯互通。

實現方式:

1.制定NULS區塊鏈標準化協議。標準協議是跨鏈交互的唯一協議標準。

2.擴展網路模塊功能。Nuls1.0的網絡模塊只支持nuls主網的節點之間相互連接。Nuls2.0支持nuls主網節點和多個友鏈節點相互連接。

3.開發跨鏈模塊,該模塊支持友鏈和主網按照標準協議相互發送跨鏈交易。並且該模塊還要驗證和處理對方的跨鏈交易。

4.友鏈只和nuls主網通信,跨鏈交易的驗證由nuls主網負責,各友鏈信任主網驗證結果。

具體流程:假設有一A鏈,需要發送跨鏈交易將資產轉移到B鏈。

首先,A鏈發送跨鏈交易到主網,主網先驗證交易格式,再驗證交易信息,最後主網通過拜占庭驗證後,將交易轉發到B鏈。B鏈收到交易後,無需再驗證交易信息,只需要做拜占庭驗證即可。

體制外:NULS會搭建一條適配網絡層,將比特幣、以太坊等主流幣通過適配層轉換為NULS的標準協議,與主鏈實現互聯互通。

四、NULS2.0更國際化、更看重社區的發展

1. 底層開發已經開始有社區小夥伴加入

從最核心的NULSTAR,這個很核心的其他模塊的管理器,就是由技術社區的Berzeck設計,並且和技術社區成員Ray一起開發完成的,當然NULSTAR還在繼續開發中,單單NULSTAR就項目於其他區塊鏈的一個獨立項目的體量。另外技術社區中的Naveen、Edward也參與了賬戶還有事件總線模塊的開發,現在這兩個模塊交給他們來維護都是完全沒有問題的。

這樣團隊和技術社區一起融合開發的項目,NULS可能是除了以太坊社區以外唯一能夠做到這樣工作模式的項目。

這樣的深度融合回培養一批對NULS這個底層網絡極度熟悉以及認可的全球開發者,而他們才是代表區塊鏈未來的中堅力量。


分享到:


相關文章: