Move是一种新的编程语言,旨在为Libra Blockchain提供安全可编程的基础。

组织

Move语言目录由五部分组成:

  • 虚拟机(VM),其中包含的字节码格式,字节码解释器,和基础设施执行事务的块。该目录还包含生成创世块的基础结构。

  • 字节码验证,其中包含了拒绝无效移动字节码静态分析工具。虚拟机在执行它之前遇到的任何新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国内开发者微信交流群:

不能入群请加管理微信,拉你进群=>

 

Facebook币Libra学习-5.Move组织目录的更多相关文章

  1. Facebook币Libra学习-6.发行属于自己的代币Token案例(含源码)

    在这个简短的概述中,我们描述了我们在eToro标记化资产背后实施技术的初步经验,即MoveIR语言中的(eToken),用于在Libra网络上进行部署. Libra协议是一个确定性状态机,它将数据存储 ...

  2. Facebook币Libra学习-1.核心概念

    Libra区块链是一个基于Libra协议的加密认证的分布式数据库.本文将简略介绍Libra协议的核心概念.其详细说明请参阅Libra技术白皮书. Libra区块链由分布式的Validator节点网络维 ...

  3. Facebook币Libra学习-4.新的智能合约语言Move入门

    Move是一种新的编程语言,旨在为Libra Blockchain提供安全可编程的基础.Libra Blockchain中的帐户是任意数量的Move资源和Move模块的容器.提交给Libra Bloc ...

  4. Facebook币Libra学习-3.小试牛刀第一笔交易

    我们提供了一个命令行界面(CLI)客户端来与区块链进行交互. 假设 本文档中的所有命令均假定: 您运行的是Linux(基于Red Hat或Debian)或macOS系统. 您可以稳定地连接到互联网. ...

  5. Facebook币Libra学习-2.交易生命周期

    交易生命周期 为了更加深入的理解Libra的交易生命周期,我们将跟随一个交易的全过程,从其被提交到Libra validator始,直至其被添加到区块链上止.我们将“放大”来看每个validator逻 ...

  6. splunk的bucket组织目录——时间序列,按照时间来组织目录

    splunk的bucket组织目录:db_1481515116_1480695302_0db_1481537316_1481532688_1db_1481547598_1481539988_2db_1 ...

  7. 学习PHP中的目录操作

    对于编程语言来说,文件和目录的操作是其最最基础的功能.就像我们日常中最常见的图片上传.文件上传之类的功能,都需要文件和目录操作的支持.今天我们先来简单地学习一下 PHP 中关于目录操作的一些类和函数. ...

  8. Facebook的Libra “区块链”到底是如何运作的?

    本文深入研究了"关于Facebook Libra coin (以及更多)平台协议"的26页技术文档,并对其内容进行了分解说明.同时,我们对这53位作者表示衷心的钦佩! 以下为具体分 ...

  9. Libra教程之:move语言的特点和例子

    文章目录 move语言的特点 资源优先 灵活性 安全性 可验证性 Move语句初探 点对点支付交易脚本 Currency Module move语言的特点 Libra的目标是打造一个全球话的金融和货币 ...

随机推荐

  1. webpack解决单页面路由问题

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  2. 算法设计与分析 - 李春葆 - 第二版 - pdf->word v3

    1.1 第1章─概论 练习题 . 下列关于算法的说法中正确的有( ). Ⅰ.求解某一类问题的算法是唯一的 Ⅱ.算法必须在有限步操作之后停止 Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模糊 Ⅳ. ...

  3. 《图解HTTP》笔记2

    1.SSL(Secure Socket Layer,安全套接层) 1)SSL的作用 通信加密 确定通信方 SSL 提供认证和加密处理及摘要功能 HTTP 协议中没有加密机制,但可以通过和 SSL(Se ...

  4. i p _ d o o p t i o n s函数

    我们知道 i p i n t r在检测分组的目的地址之前调用 i p _ d o o p t i o n s.i p _ d o o p t i o n s被传给一个指针m,该指针指向某个分组, i ...

  5. DevExpress WPF v19.2图表图形控件功能增强?速速种草

    通过DevExpress WPF Controls,你能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案. 无论是Office办公软件的衍 ...

  6. easyUI-filebox图片上传和预览

    转载自:https://blog.csdn.net/nvxiaq/article/details/77740516 备注: 1.如需上传多个图片可定义多个change_photo函数 在onChang ...

  7. 使用selenium实现站长素材图片采集

    from selenium import webdriver import requests,os from lxml import etree from selenium.webdriver.chr ...

  8. Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) D. Power Products

    链接: https://codeforces.com/contest/1247/problem/D 题意: You are given n positive integers a1,-,an, and ...

  9. QPS 和 TPS

  10. electron 打包成桌面运用

    最近在学习nodejs,得知Electron是通过将Chromium和Node.js合并到同一个运行时环境中,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一门技术.对于之前一直从 ...