2018年11月30日git
Xinshu Dong發佈於Zilliqa博客,Rita譯github
今年6月底,咱們推出了2.0版Zilliqa公測網,它具備文檔、智能合約Scilla集成開發環境等重要功能,使開發人員可以在咱們的平臺上編寫和測試他們的智能合約。數據庫
今天,咱們很高興地向你們宣佈:代號爲「貓山王」的3.0版Zilliqa公測網現正式上線!同以前測試網的代號同樣,「貓山王」是咱們十分喜歡的榴蓮品種。「貓山王」測試網正式上線標誌着咱們在技術上又達到了新的里程碑 — —據咱們所知,這是世界上首個同時實現網絡分片、交易分片以及智能合約分片的成熟測試網。這個測試網還成功解決了咱們安全審計公司發現的一些潛在的安全問題,添加了必要的安全檢查機制和額外的執行機制,提升了系統的穩定性。瀏覽器
「貓山王」包含了許多與即將推出的主網相同的功能,其中包括在整個網絡中全面實施安全智能合約語言Scilla、全面實現智能合約的分片https://blog.zilliqa.com/prov...。能夠說,這個版本的測試網可以讓咱們對即將推出的主網核心功能進行更大規模的公開測試,標誌着咱們向2019年1月31日發佈主網又邁出了關鍵一步(路線圖可查閱)。安全
和之前同樣,測試網地址爲https://explorer.zilliqa.com,測試錢包地址爲https://wallet.zilliqa.com.服務器
咱們將於12月3日星期一發布挖礦的所有細節和有關文件,爲咱們的礦工提供及時的技術和錯誤修復支持。網絡
對於社區的非榴蓮愛好者,您也能夠經過此連接(https://guide.michelin.com/sg...)來了解更多關於貓山王、紅蝦(1.0測試網代號)和D24(2.0測試網代號)之間的區別。框架
爲何"貓山王"相當重要ide
"貓山王"挖礦工具
如上所述,咱們將於週一(2018年12月3日)發佈「貓山王」的詳細挖礦指南。
在此公測網上挖礦的建議配置以下:
Ubuntu 16.04.5 64位操做系統
Intel i5處理器或更高版本
8GB DRR3內存或更高
可選:GPU顯卡(例如3GB 顯存的1 x GTX 1060)
NAT環境下支持UPnP的路由器(較新款的路由器應當都具備此功能)https://en.wikipedia.org/wiki...
"貓山王"主要新功能
若是您一直關注咱們的雙週報,就會很熟悉「貓山王」的這些新功能。過去幾個月,咱們一直在努力實現這些功能,如今咱們很高興邀請礦工和開發人員公開測試這些功能。
核心協議:
支持智能合約分片
GPU挖掘
Coinbase獎勵
燃料費獎勵
燃料費計價
PoW難度調整
升級協議
Gossip協議
多輸入、多輸出(MIMO)DS委員會
事件和日誌交易收據
合併的PoW:將兩輪PoW合併爲一輪
節點恢復機制
狀態增量轉發
遷移到Kubernetes
檔案節點
Scilla語言:
類型檢查器
靜態分析器和檢查器套件
用於添加新通道和分析的API
燃料費覈算
改進了映射訪問
支持活動
開發工具:
改進的集成開發環境Savant:https://savant-ide.zilliqa.com/
改進的JavaScript庫:https://github.com/Zilliqa/Zi...
RPC服務器Kaya:https://github.com/Zilliqa/kaya
更多技術細節
核心協議
PoW挖礦的GPU選擇:「貓山王」支持GPU挖礦。礦工能夠將一個或多個GPU單元用於一個節點。例如,若是一個礦工擁有6個可用的GPU,那麼他可使用這6個GPU的任意組合來配置一個Zilliqa節點,方式能夠是啓動多個Zilliqa節點也能夠是每一個節點分配給一個特定的GPU等。
Coinbase獎勵:在這個測試網中,只要礦工參與了共識協議,不管是DS節點仍是普通分片節點均可以得到測試幣Zil。具體而言,節點在交易週期中對區塊進行簽名來參與共識協議的次數越多,就會得到越多的測試幣。例如,一個節點若是既參與了微塊又參與了終塊的簽名,那麼它就能夠貢獻兩個簽名,所以能夠得到兩次獎勵。
燃料費獎勵:公鏈的一個重要特徵是經過燃料費向礦工分配獎勵。在本版本的測試網中,處理交易產生的燃料費將被累積到總的coinbase獎勵中,並在下一輪PoW提交開始前分發。
燃料費計價:此前,咱們的網絡在處理交易時已把燃料費的消耗和限制計算在內,但實際的燃料費訂價機制是在近期實現的。咱們新編寫的燃料費訂價機制工做流程以下:首先,礦工們在提交工做量證實PoW時也同步提交願接受的最低燃料費價格;以後,DS委員會就即將到來的DS週期內網絡可接受的總體最低燃料費價格達成共識;最後,網絡僅接受燃料費價格大於等於既定最低價的交易。
智能合約的分片:幾個月前,咱們發佈了一篇博文(https://blog.zilliqa.com/prov...,詳細介紹了Zilliqa如何實現智能合約的分片。在Zilliqa中,DS委員會處理一些特定類型的智能合約交易。所以,DS委員會如今將進行額外的共識輪來驗證這些交易。在DS委員會收到有關由分片驗證的交易數據後,就會發生這種狀況。
升級協議:咱們認爲,爲了確保系統的安全性,網絡必須具備升級更新和補丁升級的功能。咱們已經實現了升級協議的首個版本。舉個例子,若是有一方(好比https://latest-release.zilliq...、SHA-256值二進制文件的最新版本,那麼軟件版本將被存儲在名爲VERSION的獨立文件中,其中包含版本信息、預期DS週期和SHA-256值的信息。
節點恢復:節點恢復是咱們在過去幾周內完成的重要功能之一。若是節點因任何緣由,如完成升級等掉線而從新啓動,它將讀取存儲在機器數據庫中的持久數據(如DS委員會成員、分片結構、DS塊和終塊等數據)以恢復其最後的已知狀態並開始與網絡的其他部分從新同步。
智能合約語言Scilla
類型檢查器和靜態分析器套件:Scilla如今包括一套靜態分析器和檢查器。這些檢查器的目標是幫助開發人員編寫的智能合約可以經過一些基本到高級安全檢查。例如,Scilla附帶的一個類型檢查器就能夠用於檢查合約的類型安全,而類型安全程序能夠消除運行時可能出現的一些問題。另外一個檢查器(也是套件的一部分)能夠檢查編好的代碼是否模式匹配。例如對於一個合約,它能夠檢查模式匹配的全部使用是否涵蓋全部可能的分支,所以是窮舉式的。它還檢查沒法訪問的模式。當輸入致使未處理的分支時,非窮舉模式匹配可能在運行時致使錯誤。這些檢查器將由每一個礦工在部署時運行,所以能夠爲在Zilliqa上的合約提供基本的但強大的安全保障。
更高級的靜態分析器,如現金流分析器和燃料費分析器,也可供終端用戶或IDE等客戶使用。但分析器不是由礦工運行的。更多有關這些分析器的信息請參閱咱們以前發佈的雙週報。
實際上,您也可使用咱們的API將任何其餘靜態分析器添加到套件中。歡迎您加入咱們的Github(https://github.com/Zilliqa/sc...。一些理想的檢查器應當具備:一、未使用的變量;二、沒有整數溢出;三、至少有一個轉換接受付款。
燃料費計算:在以前版本的測試網中,處理智能合約每每須要恆定的燃料費成本,而無論計算性質如何。此版本的測試網帶有適當的燃料費計算機制,其中每一個表達、聲明、讀取、寫入、存儲等都具備明確的成本。此連接https://drive.google.com/file...。注意:這些燃氣費標價可能發生變化。
支持事件:Scilla合約可以發出客戶能夠收聽的事件。支持事件須要在語言中添加新構造,以及在區塊鏈端添加對交易接收的支持。可是事件還沒有編制索引,所以查詢知足某些條件的事件(例如包含特定參數的全部事件)是不可行的。咱們計劃在下一版本中支持高效查詢。
開發工具
爲了促進智能合約的開發,咱們還提供了一些以前已經公開過的開發項目,其中包括全新的Savant IDE:https://savant-ide.zilliqa.com/。咱們推薦你們更多使用這個新的IDE,再也不使用之前的JSON文件模擬區塊鏈層的IDE,由於Savant對開發人員更加友好,終端用戶再也不須要手動編寫JSON文件。IDE經過維護內存(在瀏覽器中)區塊鏈來工做。若是你尚未嘗試過,那就趕快來試一試吧!這個IDE還預裝了一些能夠直接玩的Scilla合約樣本。咱們還修改了JavaScript庫,以改善客戶端和網絡之間的交互。此外,還提供了一個基於RPC的內部智能合約測試框架,名爲Kaya:https://github.com/Zilliqa/kaya。咱們也真誠地邀請開發人員來試用這些工具,並及時向咱們反饋您的意見!
若是您支持和信任Zilliqa,歡迎轉發到朋友圈,讓更多的人認識Zilliqa。
若是您對項目有什麼疑問,歡迎到評論區留言,咱們會及時、認真回覆每個問題!