買比特幣 買比特幣
Ctrl+D 買比特幣
ads

TOK:去中心化計算平臺DFINITY宣布開源項目編程語言 Motoko_MOT

Author:

Time:1900/1/1 0:00:00

去中心化計算平臺DFINITY已經開源項目編程語言Motoko宣布項目編程語言Motoko的編譯器、解釋器、測試套件及文檔已全面開源,目前Motoko的完整源代碼現在可以在Apache2.0許可下使用。

Motoko是基于Wasm語言,為實現InternetComputer安全且易于使用的特點而開發的編程語言。Dfinity表示,此舉旨在促進與更廣泛社區的合作和貢獻,包括改進文檔、完善錯誤消息、開發全新的工具等方面。

DFINITY基金會的Motoko團隊很高興地宣布Motoko編譯器、解釋器、測試套件和文檔的開源。自公開推出以來,經過三年半的開發,Motoko的完整源代碼現在在Apache2.0許可下可用。

Motoko是一種編程語言,旨在無縫支持Internet計算機的編程模型,從而可以更輕松地高效構建應用程序并利用該平臺的一些更獨特的功能。Motoko是強類型的、基于參與者的,并且具有對正交持久性和異步消息傳遞的內置支持。生產力和安全特性包括自動內存管理、泛型、類型推斷、模式匹配以及任意精度和固定精度算術。消息傳遞透明地采用InternetComputer的Candid接口定義語言和有線格式,以實現類型化、高級和跨語言的互操作性。

我們希望此代碼版本能夠促進與更廣泛社區的合作和貢獻,無論它們涉及改進文檔、完善錯誤消息,還是開發全新的工具,例如額外的IDE集成、調試器支持和代碼格式化工具。

Weirdo Ghost Gang母公司ManesLAB推出Web3潮牌CutUp及去中心化身份協議MID:5月22日消息,小幽靈Weirdo Ghost Gang母公司ManesLAB推出Web3原生潮流品牌CutUp,并正式上線ManesLAB生態去中心化身份協議MID。CutUp將持續推出以Web3文化為主題的潮流單品,并將融入更多Web3玩法,打造Web3電商新范式。ManesLAB將基于MID協議與其「.mid」身份系統不斷擴大生態規模。

此前報道,ManesLAB此前曾獲得180萬美元種子輪融資,YZB Investment領投。[2023/5/22 15:18:57]

我們的目的是為內部和外部貢獻者提供相同的開發體驗。目前,我們的測試基礎設施仍然部分依賴于內部服務,但我們正在努力將它們替換為可公開訪問的服務。外部和內部開發人員將處于平等地位。毫無疑問,當我們進入開放空間時,我們會遇到一些成長的煩惱。請耐心等待。

對于那些還不熟悉Motoko的人,這里簡要介紹一下它是什么、我們為什么開發它以及它是如何工作的……

WebAssembly

要理解Motoko,我們首先必須簡要介紹一下WebAssembly——又名Wasm。您可能知道,Wasm是一種新的低級代碼格式,旨在實現可移植性、安全性和高效性。它最初的用例是網絡,但這個名字實際上是用詞不當:當我們在W3C工作組設計Wasm時,我們小心翼翼地將它作為一個開放標準和通用平臺。也就是說,它不針對任何特定的編程語言、范式、計算環境或平臺,我們確保它完全不與網絡綁定。因此,Wasm在許多其他環境中得到采用絕對不是偶然的,例如云計算、邊緣計算、移動、嵌入式系統、物聯網和區塊鏈。

去中心化視頻流網絡Livepeer已與Aptos集成:12月8日消息,去中心化視頻流網絡Livepeer已與Aptos集成以提供無縫視頻流功能。這種集成為創作者提供了易于使用、低費用的內容所有權。

Aptos網絡的低延遲功能可以讓Livepeer的創作者和開發者快速執行和順利構建項目,并高效地增長和擴展他們的內容。為了加速這一轉變,Aptos和Livepeer將很快向在Aptos網絡上使用Livepeer進行構建的開發人員提供流媒體積分。[2022/12/8 21:30:47]

Wasm有很多很多設計考慮因素,有些是顯而易見的,有些則相當微妙。太多了,無法進入這里。關于Wasm的技術目標、設計選擇、形式語義和實現技術的相當全面的討論可以在我們發表在ACM通訊上的一篇科學文章中找到。

Wasm與其他虛擬機的主要區別在于,它沒有針對任何特定的編程語言進行優化,而只是抽象了底層硬件,字節碼直接對應于現代CPU的指令和內存模型。最重要的是,Wasm通過強大的模塊化和嚴格的數學規范支持沙箱,確保執行是安全的,沒有未定義的行為,并且完全確定。而且,這些屬性實際上有經過機器驗證的數學證明!

總之,這些特性旨在使Wasm成為對便攜性、安全性、通用性和性能有很高期望的各種環境和用例的有吸引力的選擇——例如互聯網計算機。

Wasm的特性使其成為表示在Internet計算機上運行的程序的明顯選擇。但在實踐中,將現有的編程語言移植到Wasm并非易事。顯然,它需要實現一個新的編譯器后端。這很有趣,但努力并不止于此:它還需要移植語言的運行時系統和庫原語。還有一些特性,尤其是與更高級語言相關的特性,目前無法在Wasm中輕松實現——例如:線程、協程、異常和尾調用。雖然各種用各自的功能豐富Wasm的提案即將出現,但它們尚未最終確定標準化。

去中心化質押協議Lido鎖倉量回升至65.9億美元,7日漲幅超46.7%:7月19日消息,據歐科云鏈鏈上大師數據顯示,去中心化質押協議Lido總鎖倉量回升至65.9億美元,近 7 日漲幅超46.7%。此次鎖倉量上漲,推測與以太坊開發者宣布Merge更新將于9月19日進行有關。此外,昨日Lido宣布將在Layer 2上支持stETH,并計劃未來直接支持在Layer 2上質押以太坊,無需跨鏈至以太坊主網。[2022/7/19 2:22:59]

盡管已經有許多針對Wasm的實驗性語言實現,但大多數還沒有準備好迎接黃金時段。主要包括低級系統語言,如C/C++和Rust。這些對于它們的用例來說當然是很好的,但它們不是為Internet計算機開發高級應用程序的理想工具,在Internet計算機中,可訪問性、生產力和高保證往往比手動干預內存管理更可取。

與此同時,互聯網計算機的語言需要提供對平臺主要概念的訪問:具有異步消息傳遞的分布式編程模型、資源概念,如循環,以及其他一些特性。當然,它們都可以作為庫提供,但是一種本身包含適當結構的語言可以提供更加無縫的編程體驗。

因此,如果我們無論如何都必須做一些工作才能開始工作,為什么不將其應用到創建可以提供最佳用戶體驗并傳達我們對如何對互聯網計算機進行編程的愿景的東西呢?

MOTOKO

這就是為什么——盡管創建另一種語言存在所有風險——我們決定創建Motoko。我們想要一種安全、易于使用、無縫公開平臺概念的語言,以及一種對大多數程序員來說看起來足夠友好和易于使用的語言。目前,后一個目標使它幾乎不可避免地處于分號和大括號語言陣營中。在這個營地中沒有合適的語言。

鏈游公會YGG與去中心化穩定幣市場HaloDAO達成合作:9月16日消息,鏈游公會Yield Guild Games(YGG)與去中心化穩定幣市場HaloDAO達成合作,允許游戲玩家使用其穩定幣套現并獲得收益。與HaloDAO的合作將允許YGG游戲玩家通過其基于以太坊和Polygon網絡的AMM在當地地區兌換現金。YGG與HaloDAO的合作協議涉及公司構建金融工具來追蹤表現,并為游戲玩家提供通過收益耕作和其他DeFi應用程序增加收入的方法。(CoinDesk)[2021/9/16 23:28:29]

但元子相當傳統的皮膚只是表面的:它的內部是一種現代語言。例如,每個構造都是一個表達式,它有閉包,它有變體類型和靜態檢查模式匹配,它有垃圾收集,當然它有一個實際上健全的靈活的類型系統,即它確實保證不存在某些錯誤,例如崩潰、未定義的行為、曲解數據或只是在switch中遺漏了一個case。沒有洞!

同時,我們有意嘗試不花哨或重新發明輪子,而是建立在豐富的實踐和理論歷史的基礎上,并承認在該領域幾十年來吸取的經驗教訓。除了將易于理解的功能組合在一起之外,Motoko的設計還包含許多小決策,以最大限度地減少腳步和安全方面的錯誤,例如,默認情況下數字不能溢出,默認情況下局部變量是不可變的,默認情況下并發執行是原子的,默認情況下不能出現null,默認情況下字段是私有的,等等。哦,沒有繼承,只有子類型。

實現Motoko的這些部分并將它們編譯為Wasm是傳統的編譯器工藝。用OCaml編寫的Motoko編譯器使用類型化的中間表示,經過一些轉換,并輸出Wasm字節碼。生成的Wasm模塊包括一個用C和Rust編寫的小型運行時系統,主要實現一個簡單的垃圾收集器,使用Wasm內存作為其堆。這并不難,但這里肯定有很大的改進潛力,我們正在努力。

報告:多數去中心化交易所是不安全的:金色財經報道,根據第三方安全機構CER的一份報告,在25個去中心化交易所(DEX)中,有14個在網絡安全方面得分很低。CER的標準包括幾個因素,如DEX是否經過安全審計,漏洞賞金的可用性,以及適當的SSL/TLS證書。CER認為任何低于6的分數都屬于“低分”,是“不安全”的。其中只有Uniswap和Syntetyx獲得了“高分”,而有6個交易所(占24%)未通過安全審計或未公開宣布已接受審計。報告稱,應當指出,未經審計的交易所不能被認為是安全的。[2020/10/29]

Actors

然而,Motoko的核心特征是它在語法和類型系統中直接支持角色。演員模型是一個眾所周知的概念,已有40多年的歷史,但遺憾的是,它幾乎沒有進入主流語言。Actor就像一個對象,因為它封裝了私有狀態以及一組方法來處理可以發送給它的消息。但是所有消息發送都是異步的。因此,與面向對象中的傳統方法不同,actor方法沒有結果。此外,所有消息都由參與者順序接收——也就是說,它有一個隱式消息隊列和方法以原子方式執行,即使消息是并發發送的。

Actors是并發編程的一個很好的模型,因為它們會自動防止競爭條件和死鎖,因此排除了許多并發錯誤。所有這一切都不需要程序員定義鎖。Actors也是分布式編程的一個很好的模型,因為異步自然會處理將消息發送到潛在的遠程接收器所涉及的延遲。最后,actor非常適合Dfinity的互聯網計算機,其中應用程序以所謂的罐的形式部署——本質上,actor表示為可以跨子網通信的Wasm模塊。因此,Motokoactor編譯為Wasm模塊,其中方法成為具有平臺定義的特殊約定的導出Wasm函數。

簡而言之,Motoko中的應用程序是一個actor,它又是一個編譯成Wasm模塊的大型異步對象。使用Wasm的內存概念,這樣的參與者可以立即管理多達4GiB的內部狀態,盡管可以通過鏈接多個Wasm模塊來進一步擴大,每個模塊都有自己的內存。

Futures

為了使異步編程更方便并允許以順序“直接風格”表達它,Motoko采用了另一個來自編程語言研究年鑒的40多年的想法,盡管幸運的是最近變得有點流行:期貨。在Motoko中,它們以“異步值”的形式具體化,即由async關鍵字前綴的表達式生成的async類型的值。特別是,函數體可以是一個異步表達式,從而自然地替換和概括存在于其他一些語言中的“異步函數”的更單一的概念。

有了這個,actor方法畢竟是允許有結果的——只要這些是期貨。可以等待Future來獲取它們的值,但只能在另一個異步表達式中,類似于其他現代語言中已知的async/awaitmonad。

Motoko編譯器通過傳統的CPS轉換來實現這一點,將每個等待點轉換為一個單獨的Wasm函數,代表等待的延續。事實上,它是雙管CPS,因為每條消息也可以有一個失敗回復和各自的失敗延續。按照慣例,具有異步結果的方法是發送帶有結果值作為參數的回復消息的方法。這個消息被創建的延續函數接收,然后它可以恢復它捕獲的執行。等待回復不會阻止參與者——它可以在此期間自由接收其他消息。

Persistence

Motoko的另一個重要考慮因素是允許開發人員利用區塊鏈技術,而無需學習全新的計算類型。因此,我們刪除了您可能需要的有關當前區塊鏈編程語言種類的大部分特殊知識。例如,沒有可觀察到的塊或塊高度的概念,沒有用于更新區塊鏈狀態的顯式構造,也沒有用于將數據寫入持久存儲的其他API.取而代之的是,互聯網計算機實現了正交持久性——這是另一個古老的想法,其中程序有一種“永遠”運行的錯覺,它的內存只是保持活躍。在Motoko中,這意味著開發人員不必擔心在消息之間顯式保存他們的數據,也不必擔心文件或外部數據庫:存儲在程序變量中的任何值或數據結構在下一條消息到達時仍然存在,即使那是幾個月后。

該平臺負責在方法調用之間透明地保存和恢復容器的私有狀態。這相對容易改裝到Wasm引擎上,因為Wasm模塊的狀態在模塊的內存、全局變量和表中明顯隔離。在大多數情況下,使用操作系統公開的虛擬內存技術觀看Wasm內存就足夠了。通過這種方式,平臺知道此類內存中的頁面何時被修改,并且可以采取任何必要的措施來持久化臟頁面,以及為分布式共識協議對它們進行哈希處理。

超越Motoko:Candid的接口定義

因為互聯網計算機運行Wasm,所以Motoko只是創建應用程序的一種選擇——而且是有意如此。我們還提供Rust,我們期待提供其他語言選擇。即便如此,因為每種語言都會統一編譯為以Wasm表示的容器,所以這些容器可以通過消息發送自由地相互通信,而不管它們的源語言如何。

為了明確定義這種互操作性,我們引入了一種名為Candid的通用接口定義語言(IDL)。它是Internet計算機上通信的通用語言,完全獨立于Motoko。它描述了容器理解的一組消息以及隨同發送的數據類型。在Candid中,數據通過獨立于Motoko類型系統或任何其他編程語言的規范數據類型的組合進行描述。

呼,又是一個類型系統?好吧,程序員可能會很高興Motoko編譯器可以自動使用和生成這樣的接口描述,用于actor導出和導入,并將它們映射到相應的Motoko類型和映射到相應的Motoko類型。它還自動生成正確的Wasm代碼來序列化和反序列化每條消息的參數數據,透明地將Motoko的內部表示與Candid指定的二進制格式相互轉換。

通過這種方式,Motoko程序可以以有類型的方式與外部容器進行通信,并將遠程調用表示為程序中的本地對象。這與遠程容器是用Motoko還是Rust編寫的無關;容器的接口描述足以作為類型信息。除了方便之外,接口還提供了一種強大的模塊化形式,其中程序可以針對其他參與者/容器進行類型檢查,而無需訪問它們的實現。

結論

我們的目標是讓所有語言在Internet計算機上擁有平等的權利,所有語言都在Wasm中編譯為容器,并且所有語言都通過Candid進行無縫通信。這對于打開Internet計算機很重要。Motoko只是眾多選擇中的一種,但它旨在成為在Internet計算機上開發的各種應用程序的特別好選擇。?

Tags:TOKOMOTMOTOTOKTOKO幣KISHIMOTO價格RevvmotorsportREEFER TOKEN

幣安app官方下載最新版
區塊鏈:觀點:《指導意見》出臺,區塊鏈發展的“政策紅利”都有哪些?_比特幣

來源:區塊鏈日報 文?|徐賜豪 6月7日,《工業和信息化部中央網絡安全和信息化委員會辦公室關于加快推動區塊鏈技術應用和產業發展的指導意見》正式對外發布.

1900/1/1 0:00:00
比特幣:數據周報:以太坊投資產品創下1270 萬美元最大資金流出;比特幣流出量大幅放緩_BABYCRAZYTIGER幣

作者:MaryLiu 截至6月14號的一周,機構投資經理繼續出售比特幣和以太坊等加密貨幣,但加密投資產品流出規模較前幾周相比大幅下降,這或許表明市場最嚴重的拋售已經消退.

1900/1/1 0:00:00
coinbase:英國藝術家Philip Colbert將在Decentraland上推出NFT 藝術展和音樂表演_coinbase和binance

據Coindesk6月28日報道,英國藝術家PhilipColbert計劃在虛擬世界Decentraland上舉辦NFT藝術展.

1900/1/1 0:00:00
DOT:報告:2021上半年共銷毀94.3萬個DOT和1.8萬個KSM_什么是比特幣的底層技術

據PolkaWorld7月7日消息,2021上半年DOT/KSM國庫報告已發布。據悉,波卡/Kusama國庫是鏈上的DOT/KSM金庫.

1900/1/1 0:00:00
WAS:波卡回顧上個月客戶端事故,系內存不足導致_ASM

Polkadot官方發文回顧,5月24日要求波卡驗證節點將客戶端降級至0.8.30版本事故,系內存不足導致。Polkadot表示,在試圖構建區塊5202216時因內存不足錯誤而失敗.

1900/1/1 0:00:00
NFT:思考 | NFT 對數據要素市場發展有何啟示?_比特幣

作者:HashkeyReserach撰文:曹一新,就職于HashKeyCapitalResearch審核:鄒傳偉.

1900/1/1 0:00:00
ads