Move是一種新的編程語言,旨在爲Libra Blockchain提供安全可編程的基礎。git
Move語言目錄由五部分組成:程序員
的虛擬機(VM),其中包含的字節碼格式,字節碼解釋器,和基礎設施執行事務的塊。該目錄還包含生成創世塊的基礎結構。github
該字節碼驗證,其中包含了拒絕無效移動字節碼靜態分析工具。虛擬機在執行它以前遇到的任何新Move代碼上運行字節碼驗證程序。編譯器在其輸出上運行字節碼驗證器,並將錯誤表示給程序員。編程
Move中間表示(IR)編譯器,它將人類可讀的程序文本編譯爲Move字節碼。警告:IR編譯器是一種測試工具。它能夠生成將被Move字節碼驗證器拒絕的無效字節碼。IR語法是一項正在進行的工做,將進行重大更改。安全
的標準庫,它包含核心系統模塊,如移動IR代碼LibraAccount
和LibraCoin
。微信
該測試虛擬機,字節碼驗證和編譯器。這些測試是在Move IR中編寫的,由測試框架運行,該測試框架從註釋中編碼的特殊指令解析運行測試的預期結果。框架
Libra Core組件經過VM與語言組件交互。具體地,准入控制組件使用VM功能的有限的只讀子集在它們被容許進入mempool和共識以前丟棄無效事務。在執行組件使用VM來執行交易的塊。編程語言
├── README.md # This README ├── bytecode_verifier # The bytecode verifier ├── e2e_tests # infrastructure and tests for the end-to-end flow ├── functional_tests # Testing framework for the Move language ├── compiler # The IR to Move bytecode compiler ├── stdlib # Core Move modules and transaction scripts ├── test.sh # Script for running all the language tests └── vm ├── cost_synthesis # Cost synthesis for bytecode instructions ├── src # Bytecode language definitions, serializer, and deserializer ├── tests # VM tests ├── vm_genesis # The genesis state creation, and blockchain genesis writeset └── vm_runtime # The bytecode interpreter
Libra國內開發者微信交流羣:工具
不能入羣請加管理微信,拉你進羣=>
測試