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. Hibernate入门第一讲——Hibernate框架的快速入门

    Hibernate框架的概述 什么是框架? 框架指的是软件的半成品,已经完成了部分功能. JavaEE开发的三层架构 了解框架的基本概念之后,我们就来看看Hibernate框架处于JavaEE开发的经 ...

  2. el-table——可合并单元格的表格

    <el-table v-loading="loading" :data="tableData" border :span-method="col ...

  3. flume 1.7在windows下的安装部署与测试运行

    一.安装 安装java,配置环境变量. 安装flume,下载地址,下载后直接解压即可. 二.运行 创建配置文件:在解压后的文件 apache-flume-1.7.0-bin\conf下创建一个exam ...

  4. 《OAuth2.0协议安全形式化分析-》----论文摘抄整理

    ---恢复内容开始--- 本篇论文发表在计算机工程与设计,感觉写的还是很有水准的.实验部分交代的比较清楚 本篇论文的创新点: 使用Scyther工具 主要是在 DY模型下面 形式化分析了 OAuth2 ...

  5. 7.MapReduce操作Hbase

    7 HBase的MapReduce   HBase中Table和Region的关系,有些类似HDFS中File和Block的关系.由于HBase提供了配套的与MapReduce进行交互的API如 Ta ...

  6. css超链接

    超链接的代码<a href="http://www.divcss5.com/" target="_blank" title="关于div css ...

  7. Java8-LongAccumulator

    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ...

  8. 重置一发LCT模板

    加边.删边.单点修改.链上异或和 #include <bits/stdc++.h> using namespace std; inline void read(int &num) ...

  9. 28、[源码]-AOP原理-@EnableAspectJAutoProxy

    28.[源码]-AOP原理-@EnableAspectJAutoProxy

  10. 对象(Object)相关

    详情参考 1.对象的表示方法 js原生提供Object构造函数.js中所有的对象都是Object的实例. 定义一个对象最简单的就是var obj = {}; ES6属性和方法允许简写.对象的super ...