Facebook币Libra学习-5.Move组织目录
Move是一种新的编程语言,旨在为Libra Blockchain提供安全可编程的基础。
组织
Move语言目录由五部分组成:
的虚拟机(VM),其中包含的字节码格式,字节码解释器,和基础设施执行事务的块。该目录还包含生成创世块的基础结构。
该字节码验证,其中包含了拒绝无效移动字节码静态分析工具。虚拟机在执行它之前遇到的任何新Move代码上运行字节码验证程序。编译器在其输出上运行字节码验证器,并将错误表示给程序员。
Move中间表示(IR)编译器,它将人类可读的程序文本编译为Move字节码。警告:IR编译器是一种测试工具。它可以生成将被Move字节码验证器拒绝的无效字节码。IR语法是一项正在进行的工作,将进行重大更改。
的标准库,它包含核心系统模块,如移动IR代码
LibraAccount和LibraCoin。该测试虚拟机,字节码验证和编译器。这些测试是在Move IR中编写的,由测试框架运行,该测试框架从注释中编码的特殊指令解析运行测试的预期结果。
Move语言如何适应天秤座核心
Libra Core组件通过VM与语言组件交互。具体地,准入控制组件使用VM功能的有限的只读子集在它们被允许进入mempool和共识之前丢弃无效事务。在执行组件使用VM来执行交易的块。
探索MoveIR
- 您可以在测试中找到许多小型Move IR示例。尝试使用Move IR的最简单方法是在此目录中创建一个新测试,并按照运行测试的说明进行操作。
- 在标准库中可以找到一些更实际的例子。两个最值得注意的是LibraAccount.mvir,它实现Libra 区块链上的账户,LibraCoin.mvir,它实现了Libra硬币。
- Libra testnet支持的四个事务脚本也在标准库directiory中。它们是点对点转移,帐户创建,铸造新Libra(仅适用于具有适当权限的帐户)和密钥轮换。
- Move IR语法的最完整文档是语法。您还可以查看Move IR的解析器。
- 有关编写Move IR代码的更多详细信息,请查看IR编译器README。
目录组织
├── 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组织目录的更多相关文章
- Facebook币Libra学习-6.发行属于自己的代币Token案例(含源码)
在这个简短的概述中,我们描述了我们在eToro标记化资产背后实施技术的初步经验,即MoveIR语言中的(eToken),用于在Libra网络上进行部署. Libra协议是一个确定性状态机,它将数据存储 ...
- Facebook币Libra学习-1.核心概念
Libra区块链是一个基于Libra协议的加密认证的分布式数据库.本文将简略介绍Libra协议的核心概念.其详细说明请参阅Libra技术白皮书. Libra区块链由分布式的Validator节点网络维 ...
- Facebook币Libra学习-4.新的智能合约语言Move入门
Move是一种新的编程语言,旨在为Libra Blockchain提供安全可编程的基础.Libra Blockchain中的帐户是任意数量的Move资源和Move模块的容器.提交给Libra Bloc ...
- Facebook币Libra学习-3.小试牛刀第一笔交易
我们提供了一个命令行界面(CLI)客户端来与区块链进行交互. 假设 本文档中的所有命令均假定: 您运行的是Linux(基于Red Hat或Debian)或macOS系统. 您可以稳定地连接到互联网. ...
- Facebook币Libra学习-2.交易生命周期
交易生命周期 为了更加深入的理解Libra的交易生命周期,我们将跟随一个交易的全过程,从其被提交到Libra validator始,直至其被添加到区块链上止.我们将“放大”来看每个validator逻 ...
- splunk的bucket组织目录——时间序列,按照时间来组织目录
splunk的bucket组织目录:db_1481515116_1480695302_0db_1481537316_1481532688_1db_1481547598_1481539988_2db_1 ...
- 学习PHP中的目录操作
对于编程语言来说,文件和目录的操作是其最最基础的功能.就像我们日常中最常见的图片上传.文件上传之类的功能,都需要文件和目录操作的支持.今天我们先来简单地学习一下 PHP 中关于目录操作的一些类和函数. ...
- Facebook的Libra “区块链”到底是如何运作的?
本文深入研究了"关于Facebook Libra coin (以及更多)平台协议"的26页技术文档,并对其内容进行了分解说明.同时,我们对这53位作者表示衷心的钦佩! 以下为具体分 ...
- Libra教程之:move语言的特点和例子
文章目录 move语言的特点 资源优先 灵活性 安全性 可验证性 Move语句初探 点对点支付交易脚本 Currency Module move语言的特点 Libra的目标是打造一个全球话的金融和货币 ...
随机推荐
- HighChart 不同颜色(柱状图)
var chart = new Highcharts.Chart({ chart: { plotBackgroundColor: null, plotBorderWidth: null, backgr ...
- Centos 升级至 OpenSSH 8 rpm包制作
背景 安全部门扫描系统漏洞,OpenSSH 7.9出现漏洞,需升级到8. 使用 rpmbuild 将源码包编译为 rpm包. yum install rpm-build zlib-devel open ...
- Java 中的多态,一次讲个够之接口实现关系中的多态
上文还没有写完,这一篇继续 Java 中的多态,一次讲个够之继承关系中的多态 https://www.cnblogs.com/qianjinyan/p/10824576.html 接口实现关系,和继承 ...
- js之head请求,闪电般实现交互
平时我们用到的请求一般为post和get,今天介绍一种新的请求方式,head请求,顾名思义,head请求就是请求头部信息的,也只能请求头部信息,所以相应速度非常快,可以快速的实现前后端的交互 $.aj ...
- PAT乙级1044
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805279328157696 题解 需要注意的几个点: 题目有指 ...
- linux服务器日志剖析
常规tomcat,apache,nginx,错误日志,还有项目log4j日志 tomcat (以tomcat7.082为例) tomcat日志配置 运行日志和访问日志结合在一起,先说下日志哪边配置,在 ...
- JavaScript005,语法
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- MySQL快速生成100W条测试数据
https://blog.csdn.net/qq_16946803/article/details/81870174 1.生成思路利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生 ...
- linux实操_权限管理
rwx权限详解 作用到文件: [r]代表可读(read):可以读取,查看 [w]代表可写(write):可以修改,但是不代表可以删除文件,删除一个文件的前提条件时对该文件所在的目录有写权限,才能删除该 ...
- httprunnermanager环境搭建 -----转
转发自 https://www.cnblogs.com/tiechui2015/p/10017801.html 感谢大神 1,开源代码下载 这里的git下载地址是:https://github.c ...