2018年11月12日html
Yiling Ding 發佈於Zilliqa博客,Rita譯git
上週,咱們在推特和官方電報羣和你們分享了項目和主網上線的最新進展。最終,咱們將主網上線日期肯定在2019年1月底,距離Zilliqa代幣發行恰好一年整。github
主網上線詳細路線圖算法
Zilliqa主網將是一個大規模的分佈式網絡,這意味着它很是複雜,其工程難度要遠超比特幣和以太坊等基於中本聰協議的項目。做爲科學家和工程師,咱們一直但願爲主網實現儘量多的新功能,並盡全力進行完全的測試和校準。通過深思熟慮,咱們將主網上線日期定在這個時間,並認爲這一時間上線不會犧牲主網的去中心化特性、穩定性和安全性。數據庫
Zilliqa主網發佈的首要考慮因素是安全性。正如幾周前咱們在官方電報羣社區中所討論的那樣,咱們必需要確保在主網啓動初始階段、哈希算力相對較低期間,網絡免受攻擊。這就是爲何Zilliqa在主網上線後,首先會渡過一個引導階段(bootstrap phase),來確保網絡的安全性。在引導期,礦工挖礦可正常得到獎勵,但網絡並不處理交易。當咱們認爲哈希算力已足夠、生產的區塊數知足必定值以後,孵化引導期將自動結束。npm
挖礦將是Zilliqa網絡的重要組成方面。咱們將在11月底分享有關Zilliqa挖礦的更多細節和分步驟說明,屆時咱們還將發佈3.0版測試網,讓你們體驗與主網上線後基本一致的公開挖礦。bootstrap
對於那些熟知咱們測試網以及新加坡美食的朋友們,您能猜出3.0版Zilliqa測試網的代號嗎?api
如您有更多關於主網及其餘方面的問題,歡迎參加於11月15日下午3點在咱們的官方電報羣舉辦的自由問答AMA交流活動,與心書、Amrit和Yiling一塊兒互動!活動詳情和問題提交可查閱網址: https://www.reddit.com/r/zilliqa/comments/9swvn6/ask_us_anything_zilliqa_ama_15th_nov_2018/安全
同往常同樣,如您想要了解Zilliqa的更多信息或與咱們討論項目技術,請隨時經過如下官方渠道與咱們聯繫:網絡
Slack: https://invite.zilliqa.com
推特:https://twitter.com/zilliqa
Reddit:https://www.reddit.com/r/zilliqa/
Github: https://github.com/Zilliqa/zilliqa
Gitter:https://gitter.im/Zilliqa/ecogrant(開發相關專用頻道,包括「生態構建資助計劃」)
已舉辦的活動
一方面,咱們的技術團隊在積極推動主網上線;另外一方面,團隊其餘成員在亞洲各地出席活動,努力推進區塊鏈教育並吸引更多開發人員一塊兒發展Zilliqa生態體系。咱們很高興地與你們分享,新加坡交易所CoinHako已經支持ZIL/MYR、ZIL/IDR以及最重要的咱們當地的ZIL/SGD交易對。
En Hui和Yiling出席了在香港舉辦的數字媒體亞洲活動,幫助推進區域鏈技術教育的普及,還向諸位優秀的記者和媒體機構介紹了區塊鏈生態系統的總體狀況。
咱們的CMO Yiling在香港數字媒體亞洲演講
咱們團隊的Edison(區塊鏈應用程序開發人員)和Sophia(中國商業開發)赴北京在清華大學介紹了公鏈擴容與區塊鏈在遊戲中的應用。
與穿着Zilliqa帽衫的清華學生和區塊鏈遊戲開發者合影
咱們還於11月10日在Gitter頻道上(地址https://gitter.im/Zilliqa/ecogrant)與多位「Zilliqa生態資助金」獲獎者共同舉辦了以開發錢包爲主題的對話會活動。此次對話富有成效,激發了多個合做創意,其中包括Zilliqa加強提案(Zilliqa Enhancement Proposal,縮寫SEP)和在Github組織OpenZesame(https://github.com/OpenZesame)下整合Zilliqa社區開發項目等。咱們將繼續舉辦這個對話活動,頻率是兩週一次,從而讓咱們的社區開發者更好地參與Zilliqa生態系統建設。敬請你們期待將來更多精彩的對話活動!
11月對咱們來講將是一個相對安靜的月份,由於咱們把重點放在了關鍵技術和主網合做夥伴關係的開發上,目前已確認的活動有:
一、11月12–13日,新加坡
區塊鏈和網絡安全研討會
http://sgcsc.sg/Blockchain-and-Cybersecurity-Workshop-2018/
點此連接註冊,可免費參加於11月13日舉辦的Zilliqa安全智能合約研討會:https://www.eventbrite.sg/e/zilliqa-workshop-on-secure-smart-contracts-tickets-51866230291
二、11月25日17:00,Gitter頻道線上
第二次「Zilliqa生態資助金」獲獎者對話會
網址:Https://gitter.im/Zilliqa/ecogrant
技術進展
從前文咱們分享的路線圖中能夠看出,技術團隊當前主要專一於測試,包括單元測試編碼和運行系統級測試。同時,咱們還對現有的三個功能進行了加強,並實現了其中一個新功能的首個版本。
加強視圖更改機制
若是DS委員會層面的一輪共識因爲DS領導者沒有響應而中止了至關長時間,則DS備份節點會觸發視圖更改以恢復停滯的共識。此前版本中,視圖更改算法始終選擇第一個相鄰節點做爲新的候選DS領導者,但實際上這一算法意味着此行爲是可預測的,從而有被惡意節點利用的潛在威脅。
爲了解決這個問題,咱們如今將候選DS領導者這一過程進行隨機化。此外,因爲視圖更改機制僅在一段時間後才被激活,所以存在DS備份落後於其餘節點的可能性,因此在進入視圖變化以前須要添加預檢查。在預檢查期間,DS備份節點向查找節點查詢最新的可用DS塊和終塊。若是查詢到的塊信息代表DS備份確實落後於網絡的其他部分,則DS備份會跳過執行視圖更改,而是開始從新加入過程。最後,因爲視圖變化可能發生在各類複雜的場景中,咱們對單元測試用例進行了改進,以感應多種共識失速狀況。
目錄服務微塊(DS MB)和終塊(FB)共識合併
在以前版本中,DS委員會從每一個分片收到提交的微塊後,會發生兩輪共識協議。第一輪,委員會就其本身的微塊(即DS MB)達成共識,而後在掌握全部微塊的基礎上,就終塊達成第二輪共識。咱們認爲這個兩輪流程最終能夠合併爲一個,因此用了大概兩週時間來實現這一想法。合併的明顯好處是減小了每一個交易週期的總執行時間,此外,在整個過程當中咱們也減小了終塊的存儲需求。
加強升級機制
此前,咱們升級機制的工做原理是,讓節點在目標DS週期中自動下載、解壓並安裝咱們最新發布的GitHub軟件包。從初始版本開始,咱們在發佈包生成中慢慢添加了許多文件,包括配置常量和DS節點的初始列表。此外,咱們的升級機制須要一個單獨的daemon程序在升級後從新啓動節點,截至目前,該程序專門針對咱們基於Kubernetes的內部測試環境而設計。對於實際部署,咱們如今已經建立了daemon程序的腳本版本,以及一個示例腳原本指示用戶執行它。
節點恢復
節點恢復是咱們在過去幾周內完成的重要功能之一。若是節點因任何緣由(如完成升級)而終止而後從新啓動,它將讀取存儲在機器數據庫中的持久數據(如DS委員會組成、分片結構、DS塊、終塊等數據)以恢復其最後的已知狀態並開始與網絡的其他部分從新同步。整個恢復過程僅依賴於節點本身的數據庫,而不需查詢其餘節點,從而可以防止惡意節點反覆從新自我啓動而浪費網絡流量。一旦全部數據被讀出,節點就開始執行相似於前面針對視圖改變機制描述的預檢查。該節點向查找節點查詢最新的可用DS塊和終塊信息,並在發現它落後於網絡其他部分時開始從新加入過程。
Scilla解釋器
工做繼續圍繞現金流分析原型展開。咱們如今支持多態性和除了列表、maps在內的全部內置ADT。另外,雖然目前不支持庫函數,但已支持內置函數。現金流量分析器的目的是,爲每一個字段肯定該字段是否在合約中以某種方式用於表示貨幣。
例如,請注意下面Crowdfunding
合約中顯示的goal
字段和backers
字段:
contract Crowdfunding ( Immutable parameters ) (owner : ByStr20, max_block : BNum, goal : Uint128)
(* Mutable fields ) field backers : Map ByStr20 Uint128 = Emp ByStr20 Uint128 field funded : Bool = False ( Backers can invoke it donate funds *)
transition Donate ()
end
(* Allows the owner to get funds out of the contract *) transition GetFunds ()
end
(* Allows backers to claim back money if the campaign is not successful *) transition ClaimBack ()
end
goal
(Uint128
)表明衆籌合約的目標。該字段清楚地表示金額,而且分析可以正確識別它。backers字段是從backers的地址(ByStr20
)到他們貢獻的金額(Uint128
)的映射。分析還應並能夠作到將其識別爲表明資金。
同時,咱們也開始研究另外一種資源分析器的工具。
請注意,執行智能合約須要向礦工支付預付gas費。根據正在執行的轉換和轉換的輸入,執行它所消耗的gas費能夠變化。Scilla的資源分析是靜態分析(這意味着實際上沒有運行轉換,但只分析源代碼),它提供了對特定轉換可能消耗的gas費的估計,做爲輸入的參數。
舉一個簡化的例子,分析能夠代表處理n個元素列表的成本是n * (cost of processing one element of the list)
。咱們已經完成了分析器的設計並開始實施它。敬請關注下一次更新來了解更多信息!
開發工具
正如此前承諾的那樣,咱們最終發佈了Zilliqa JavaScript庫的v0.2.0以及文檔。它們能夠經過npm / yarn安裝,以下所示:
- @ zilliqa-js/zilliqa
- @ zilliqa-js/account
- @ zilliqa-js/contract
- @ zilliqa-js/core
- @ zilliqa-js/crypto
- @ zilliqa-js/util
咱們建議您使用next標籤(如npm install @zilliqa-js/zilliqa@ next
),這樣您將始終安裝一般天天發佈的最新版本(包含全部修復程序)。
請注意,此版本不適用於當前的公開測試網。但願測試新版本的開發人員應使用https://api-scilla.zilliqa.com和https://explorer-scilla.zilliqa.com。
與往常同樣,請隨時在咱們的Gitter 和 Slack頻道向咱們反饋任何意見和錯誤報告!
Zilliqa新聞報道
TechRepublic上刊登的對Amrit和Ilya的採訪,分別介紹了Zilliqa和智能合約語言Scilla:
https://www.techrepublic.com/article/how-scilla-could-speed-up-blockchain-transactions/
日文對Zilliqa的報道:
https://crypto.watch.impress.co.jp/docs/event/1150479.html
https://crypto.watch.impress.co.jp/docs/news/1152633.html
有關Zilliqa的3.0版公測網和主網消息的報道:https://www.cryptorecorder.com/2018/11/08/zilliqa-zil-testnet-end-of-november-upbit-btc-market-listing-in-24-hours-its-a-good-day-for-zil-investors/