服務項目

需求溝通

dapp技術開發

  ASCH白皮書里提到過,asch使用的是不同于以太坊和比特幣的側鏈架構,dapp是運行在側鏈上的,每套側鏈對應一個dapp。dapp技術開發

  側鏈的獨立性

  側鏈架構的好處是代碼和數據獨立,不增加主鏈的負擔,避免數據過度膨脹,實際上是一種天然的分片機制。 側鏈有獨立的區塊鏈,有獨立的受托人或者說見證人,同時也有獨立的節點網絡,就是說一個側鏈產生的區塊只會在所有安裝了該側鏈的節點之間進行廣播。

  獨立性既是優點,也是缺點。開發者完成了dapp的開發工作之后,還要考慮運維,也就是說要尋找足夠的節點來運行它,否則難以維持足夠的安全性。 從這一點來看,與以太坊相比,是缺陷,以太坊上一旦發布一個dapp,所有的節點都可以為它工作,并為它提供安全保障。

  側鏈的靈活性

  但是側鏈架構依然有存在的必要性,因為并非所有的應用都需要那么高的安全性。Asch給用戶提供了一種可以選擇的靈活性。 比方說,假設asch有1000個節點,那么其中有的dapp比較重要,需要500個節點來運行它,有的dapp不那么重要,可能只需要100個節點,這完全是由用戶和開發者決定的。 在以太坊上,則只能選擇一種,即全部節點都來運行它。據說以太坊也打算實現一種分片的機制,實際上這在asch系統中是一個早就解決了的問題。 另外,對于比較重要的、安全性要求較高的應用,我們依然可以選擇在主鏈上開發,但是不可能對所有開發者開放這種權力,還是為了避免主鏈的膨脹和不可控(DAO事件)。

  側鏈的靈活性還表現在,所有的區塊鏈參數是可以定制的,簡單的比如區塊間隔、區塊獎勵、交易費的去向等,高級用戶還可以修改共識算法。 不過最重要的還是業務邏輯,側鏈上可以輕易的開發出與你的業務相關的交易類型或者智能合約。 這一點是與側鏈的發明者blockstreams不同,blockstreams的側鏈,只是一個不同的貨幣系統而已,開發新型交易和智能合約很不容易。

  如下圖所示 黑色的圓圈代表一個節點,64個節點組成了主鏈的網絡。紅色方框之內的是1號側鏈,其側鏈網絡是由12個節點組成。藍色方框之內的是2號側鏈,其網絡是由36個節點組成。

  主鏈與側鏈的互利關系

  Asch的主鏈與側鏈之間是互惠互利的關系,asch為側鏈提供基礎設施,比如數據庫寫入的api,網絡通訊api,加密api等等,側鏈則可以為asch補充更多的節點,以壯大整個系統。 側鏈的開發者不需要提供所有的機器,可以利用已經存在主鏈節點,只需要節點主人安裝該應用即可。 另外,主鏈的代幣XAS可以轉入側鏈中,由于XAS可以在交易所交易,就相當于為側鏈的資產提供了一種價值的媒介。 開發者在側鏈發行一種資產后,可以直接與XAS兌換,不需要考慮交易平臺的問題。

  解決生產力問題

  我們在sdk中為側鏈提供了一套模板,或者說腳手架,也可以叫做開發框架,側鏈的大部分底層功能都是寫好的,dapp開發者只需要關心具體的業務邏輯,在這一點上,與以太坊的dapp開發難度相當。 Asch的側鏈框架使用的語言是nodejs,我們內置了不少常用的庫讓開發者直接使用,當然開發者也可以自行安裝所需要的,有一個龐大的JavaScript社區作為后盾。

  下面是asch內置的模塊

  解決安全問題

  這里的安全問題與上面提到的因為節點不足導致的問題不一樣,這里說的安全問題是指側鏈代碼對安裝者造成侵犯的問題。 我們希望每一個asch節點都能安裝一個側鏈,而且asch節點的主人無需信任側鏈的開發者。這就需要提供一種安全防范的措施,比如,防止側鏈代碼讀取文件系統、進行網絡操作。 在asch系統中,側鏈代碼會以子進程的方式啟動,子進程首先加載一個使用沙箱機制隔離的javascript虛擬機,這個js虛擬機就是沒有require以及任何多余模塊的裸體虛擬機。 然后我們為這個虛擬機植入一個定制的require和一些常用且安全的模塊, 最后再加載側鏈的代碼。 我們還通過進程間通訊的方式提供一系列的api。 這樣,側鏈的框架就擁有了足夠多的api,同時側鏈的安裝者也沒有任何風險。dapp技術開發

文章標簽:
文章評論:

專業的游戲開發/系統開發、品牌設計/網站建設,選仟源!

選擇專業的企業服務公司,服務更靠譜!

立即點擊咨詢>
客服圖標
客服圖標
118旺角心水论坛