全球性區(qū)塊鏈開(kāi)源社區(qū)項(xiàng)目NULS介紹
去中心化應(yīng)用(DAPP)都需要搭建在某個(gè)底層鏈上。不同的業(yè)務(wù)場(chǎng)景對(duì)底層公鏈的性能、共識(shí)機(jī)制等有不同的要求,某的應(yīng)用甚至需要搭建自己的一條底層鏈(包括私有鏈、聯(lián)盟鏈和公有鏈等)。
然而,開(kāi)發(fā)一條適配自身業(yè)務(wù)底層鏈往往需要一定的技術(shù)門檻和時(shí)間。有很多具有落地場(chǎng)景的業(yè)務(wù)并無(wú)了解區(qū)塊鏈底層的技術(shù)人員,同時(shí)業(yè)務(wù)需要盡快上線,即便有也難以在短時(shí)間內(nèi)搭建一條完全合適的底層鏈。
NULS就打算將底層鏈“模塊化”,降低開(kāi)發(fā)者快速定制自身底層鏈的門檻。
NULS是一個(gè)可定制的區(qū)塊鏈基礎(chǔ)設(shè)施,是全球性區(qū)塊鏈開(kāi)源社區(qū)項(xiàng)目,基金會(huì)注冊(cè)在新加坡。團(tuán)隊(duì)搭建了一條主鏈,同時(shí)將底層鏈擁有主要組成部分模塊化,這些組件都是可重用開(kāi)源的,開(kāi)發(fā)者可以通過(guò)組裝和修改不同的模塊,來(lái)定制一條不同的底層鏈。
NULS發(fā)起人張星表示,原來(lái)比特幣和以太坊,“如果你要改它的底層,就會(huì)牽一發(fā)而動(dòng)全身”。NULS團(tuán)隊(duì)有點(diǎn)像將單體結(jié)構(gòu)的底層鏈微服務(wù)化,以接口的形式對(duì)外提供服務(wù),同時(shí)各個(gè)微服務(wù)組件的代碼是開(kāi)源的。底層架構(gòu)需要升級(jí),也可以直接升級(jí)某個(gè)模塊,而不需要把整條鏈再寫(xiě)一遍。
發(fā)起人和白皮書(shū)從四個(gè)方面總結(jié)了NULS的特點(diǎn):
1、共識(shí)機(jī)制:
NULS將其主鏈的共識(shí)機(jī)制命名為POC(Proof-Of-Credit,基于信用的共識(shí)機(jī)制),這個(gè)機(jī)制有點(diǎn)像DPOS。持幣少的散戶可以將幣委托給代理人,代理人可以形成節(jié)點(diǎn)參與共識(shí)。
節(jié)點(diǎn)的歷史出塊數(shù)量、違規(guī)情況和出塊正確情況影響節(jié)點(diǎn)信用。節(jié)點(diǎn)信用達(dá)標(biāo)的情況下,鎖定一定保證金即可加入共識(shí),共識(shí)節(jié)點(diǎn)重新排序后每輪輪流出塊。
POC共識(shí)機(jī)制中代理人和委托人角色的不同
2、模塊化架構(gòu):
張星介紹,目前Nuls有賬本模塊、網(wǎng)絡(luò)模塊,存儲(chǔ)模塊,帳戶模塊、共識(shí)模塊、跨鏈共識(shí)模塊、智能合約模塊等九個(gè)模塊,使用Nuls在線模塊倉(cāng)庫(kù)管理。不同模塊通過(guò)接口調(diào)用或事件監(jiān)聽(tīng)的方式通訊,開(kāi)發(fā)者不需要了解底層。
開(kāi)發(fā)者可以根據(jù)自己對(duì)性能和安全的要求,改變共識(shí)機(jī)制、區(qū)塊大小、打塊機(jī)制和存儲(chǔ)機(jī)制等,把底層鏈建成公有鏈、聯(lián)盟鏈、私有鏈等不同形式。
3、多鏈并行:
多鏈并行是提高區(qū)塊鏈性能的一個(gè)機(jī)制,弱化了主鏈的概念,不同的鏈可以處理不同業(yè)務(wù),理論上可以不斷平行擴(kuò)展。Nuls社區(qū)會(huì)針對(duì)不同子鏈開(kāi)發(fā)不同的跨鏈共識(shí)模塊,Nuls用跨鏈共識(shí)模塊將不同的鏈連接在一起從而實(shí)現(xiàn)跨鏈通訊。
主鏈部分節(jié)點(diǎn)與子鏈部分節(jié)點(diǎn)組成跨鏈共識(shí)域,跨鏈共識(shí)域內(nèi)節(jié)點(diǎn)對(duì)跨鏈交易達(dá)成共識(shí),將跨鏈數(shù)據(jù)協(xié)議轉(zhuǎn)換后分享跨鏈數(shù)據(jù)到其他對(duì)等節(jié)點(diǎn)。
4、智能合約:
根據(jù)項(xiàng)目白皮書(shū),Nuls 內(nèi)置 NulsVM 處理智能合約。智能合約模塊處于對(duì)外服務(wù)模塊(如 RPC 模塊)和底層設(shè)施模塊(如網(wǎng)絡(luò)模塊、存儲(chǔ)模塊、賬戶模塊等)之間,后者為其提供底層支撐。Nuls 設(shè)計(jì)了一些智能合約模板,其解釋器將支持多種高級(jí)編程語(yǔ)言,開(kāi)發(fā)者可自由選擇。