Facebook幣Libra學習-5.Move組織目錄

Move是一種新的編程語言,旨在爲Libra Blockchain提供安全可編程的基礎。git

組織

Move語言目錄由五部分組成:程序員

  • 虛擬機(VM),其中包含的字節碼格式,字節碼解釋器,和基礎設施執行事務的塊。該目錄還包含生成創世塊的基礎結構。github

  • 字節碼驗證,其中包含了拒絕無效移動字節碼靜態分析工具。虛擬機在執行它以前遇到的任何新Move代碼上運行字節碼驗證程序。編譯器在其輸出上運行字節碼驗證器,並將錯誤表示給程序員。編程

  • Move中間表示(IR)編譯器,它將人類可讀的程序文本編譯爲Move字節碼。警告:IR編譯器是一種測試工具。它能夠生成將被Move字節碼驗證器拒絕的無效字節碼。IR語法是一項正在進行的工做,將進行重大更改。安全

  • 標準庫,它包含核心系統模塊,如移動IR代碼LibraAccountLibraCoin微信

  • 測試虛擬機,字節碼驗證和編譯器。這些測試是在Move IR中編寫的,由測試框架運行,該測試框架從註釋中編碼的特殊指令解析運行測試的預期結果。框架

Move語言如何適應天秤座核心

Libra Core組件經過VM與語言組件交互。具體地,准入控制組件使用VM功能的有限的只讀子集在它們被容許進入mempool和共識以前丟棄無效事務。執行組件使用VM來執行交易的塊。編程語言

探索MoveIR

目錄組織

├── 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國內開發者微信交流羣:工具

不能入羣請加管理微信,拉你進羣=>測試

相關文章
相關標籤/搜索