MoonBit月兔编程语言 现代编程思想 第十四课 案例:堆栈虚拟机现代编程思想 案例:栈式虚拟机 Hongbo Zhang 1 编译与解释 编译 源程序 x 编译器 -> ⽬标程序 ⽬标程序 x 输⼊数据 -> 输出数据 解释 源程序 x 输⼊数据 x 解释器 -> 输出数据 CPU可以被视为⼴义上的解释器 拓展阅读:⼆村映射/部分计算 部分计算:程序优化,根据已知信息,运算进⾏特化 已知源程序与解释器,进⾏部分运算,获得⽬标程序 ⽬标程序 ⽬标程序 x 输⼊数据 -> 输出数据 2 虚拟机 ⼀处编写,处处运⾏ 定义⼀个不基于任何平台的指令集 在不同平台上实现解释器 两种常⻅的虚拟机 堆栈虚拟机:运算数存储在栈上,数据遵循先进后出原则 寄存器虚拟机:运算数存储在寄存器中 3 寄存器虚拟机 例:Lua VM (The Implementation of Lua 5.0) 取最⼤值 MOVE 2 0 0 ; R(2) JUMP -> 5 (4 + 1) MOVE 2 1 0 ; R(2) = R(1) RETURN 2 2 0 ; return R(2) RETURN 0 1 0 ; return 4 堆栈虚拟机 例:WebAssembly Virtual Machine 取最⼤值 fn max(a : Int, b : Int) -> Int 1. local.get $a local.set $m0 码力 | 31 页 | 594.38 KB | 1 年前3
 美团点评2018技术年货降低故障定位成本。 辅助应用程序优化。 技术优势 技术优势 实时处理:信息的价值会随时间锐减,尤其是在事故处理过程中。 全量数据:全量采集指标数据,便于深度分析故障案例。 高可用:故障的还原与问题定位,需要高可用监控来支撑。 故障容忍:故障不影响业务正常运转、对业务透明。 高吞吐:海量监控数据的收集,需要高吞吐能力做保证。 CAT 3.0 开源发布,支持多语言客户端及多项性能提升 客户端与服务端通信协议由自定义文本协议升级为自定义二进制协议,在大规模数据实时处理场 景下性能提升显著。目前服务端同时支持两种版本的通信协议,向下兼容旧版客户端。 测试环境:CentOS 6.5,4C8G 虚拟机 测试结果:新版相比旧版,序列化耗时降低约 3 倍 消息文件存储 新版消息文件存储进行了重新设计,解决旧版本的文件存储索引、数据文件节点过多以及随机 IO 恶化的 问题。 新版消息文件存储 path Nginx在解析Location配置时,通过不同的字段区分不同类型的Location,没有记录配置中的Location path。如果要运行时获取,一般有两种方式:一种是根据相关字段逆向还原path,另一种是为框架新增 变量。由于Nginx在处理正则Location时,对于是否忽略大小写的情况,并没有做标记,即解析的过程是 不可逆的,所以我们选择了第二种方式。在核心模块的变量数组n0 码力 | 229 页 | 61.61 MB | 1 年前3
 Nacos架构&原理
Nacos 生态 < 148 Nacos 服务网格⽣态 背景 在传统的基于虚拟机的部署方式中,运维人员需要手动上传应用程序压缩包到虚拟机上,经过解压、 安装和运行等⼀系列操作之后才能完成应用发布。除了需要手动部署之外,运维人员还要时刻关注 虚拟机资源分布和容量情况,不同的业务应用需要人工分配并部署在资源充足的虚拟机上。在如今 云原生时代,基础设施平台 Kubernetes 对底层资源 (计算、储存、网络)进行了统⼀抽象,为应 缓存,过期后才会刷新数据。 部分厂商不遵循 TTL 时间缓存,超过 24 小时的缓存时间。  服务器: 服务器开启 nscd 做 DNS 缓存。  业务进程: 应用的 DNS 缓存,比如 Java 虚拟机、框架层的 DNS 缓存。 以上四种情况会比较影响 DNS 的变更生效流程,下图是我们现有的 DNS 变更生效流程: Nacos 最佳实践 < 254 整体上相对简单,只要业务进程这边将自己内部的 个改动并不能解释回滚后不能自动注册的问题。 273 > Nacos 最佳实践 4.2 Nacos 升级过程复现 通过初步日志分析其实无法解决所有疑惑,因此需要进行复现,还原现场,进⼀步排查问题。由于 生产环境用的是虚拟机,快速还原现场的方法是:直接克隆生产环境 Nacos 所在的机器,用于环境 搭建。然后用带缓存的包,按照操作步骤重现。 复现时 Nacos Server 版本是 1.1.4,而0 码力 | 326 页 | 12.83 MB | 10 月前3
 FISCO BCOS 2.9.0 中文文档BCOS Documentation, 发布 v2.9.0 2.1.7 虚拟机 2.0版本引入了最新的以太坊虚拟机版本,支持Solidity 0.5版本。同时,引入了EVMC扩展框架,支持扩 展不同虚拟机引擎。 底层内部集成支持interpreter虚拟机,未来可扩展支持WASM/JIT等虚拟机。 更多关于虚拟机的介绍,请参考 虚拟机设计文档 2.1.8 密钥管理服务 2.0版本对落盘加密进行了 4. 引入evmc扩展框架:支持扩展不同虚拟机引擎。 5. 升级重塑P2P、共识、同步、交易执行、交易池、区块管理模块。 协议 1. 实现一套CRUD基本数据访问接口规范合约,基于CRUD接口编写业务合约,实现传统面向SQL方 式的业务开发流程。 2. 支持交易上链异步通知、区块上链异步通知以及自定义的AMOP消息通知等机制。 3. 升级以太坊虚拟机版本,支持Solidity 0.5.2版本。 能 合 约 代 码 的 编 写 , 编 译 , 单 元 测 试 。 合 约 开 发 语 言 可 包 括solidity,C++,java,go,javascript,rust等,语言的选择根据平台虚拟机选型而定。在合约通过测试后,采 用部署指令发布到链上,经过共识算法确认后,合约生效并被后续的交易调用。 当合约需要更新升级时,重复以上开发到部署的步骤,发布新版合约,新版合约会有一个新的地址和 独0 码力 | 1489 页 | 107.09 MB | 1 年前3
 FISCO BCOS 3.6.0 中文文档BCOS Documentation, 发布 v2.9.0 2.1.7 虚拟机 2.0版本引入了最新的以太坊虚拟机版本,支持Solidity 0.5版本。同时,引入了EVMC扩展框架,支持扩 展不同虚拟机引擎。 底层内部集成支持interpreter虚拟机,未来可扩展支持WASM/JIT等虚拟机。 更多关于虚拟机的介绍,请参考 虚拟机设计文档 2.1.8 密钥管理服务 2.0版本对落盘加密进行了 4. 引入evmc扩展框架:支持扩展不同虚拟机引擎。 5. 升级重塑P2P、共识、同步、交易执行、交易池、区块管理模块。 协议 1. 实现一套CRUD基本数据访问接口规范合约,基于CRUD接口编写业务合约,实现传统面向SQL方 式的业务开发流程。 2. 支持交易上链异步通知、区块上链异步通知以及自定义的AMOP消息通知等机制。 3. 升级以太坊虚拟机版本,支持Solidity 0.5.2版本。 能 合 约 代 码 的 编 写 , 编 译 , 单 元 测 试 。 合 约 开 发 语 言 可 包 括solidity,C++,java,go,javascript,rust等,语言的选择根据平台虚拟机选型而定。在合约通过测试后,采 用部署指令发布到链上,经过共识算法确认后,合约生效并被后续的交易调用。 当合约需要更新升级时,重复以上开发到部署的步骤,发布新版合约,新版合约会有一个新的地址和 独0 码力 | 1489 页 | 107.09 MB | 1 年前3
 FISCO BCOS 2.9.0 中文文档BCOS Documentation, 发布 v2.9.0 2.1.7 虚拟机 2.0版本引入了最新的以太坊虚拟机版本,支持Solidity 0.5版本。同时,引入了EVMC扩展框架,支持扩 展不同虚拟机引擎。 底层内部集成支持interpreter虚拟机,未来可扩展支持WASM/JIT等虚拟机。 更多关于虚拟机的介绍,请参考 虚拟机设计文档 2.1.8 密钥管理服务 2.0版本对落盘加密进行了 4. 引入evmc扩展框架:支持扩展不同虚拟机引擎。 5. 升级重塑P2P、共识、同步、交易执行、交易池、区块管理模块。 协议 1. 实现一套CRUD基本数据访问接口规范合约,基于CRUD接口编写业务合约,实现传统面向SQL方 式的业务开发流程。 2. 支持交易上链异步通知、区块上链异步通知以及自定义的AMOP消息通知等机制。 3. 升级以太坊虚拟机版本,支持Solidity 0.5.2版本。 能 合 约 代 码 的 编 写 , 编 译 , 单 元 测 试 。 合 约 开 发 语 言 可 包 括solidity,C++,java,go,javascript,rust等,语言的选择根据平台虚拟机选型而定。在合约通过测试后,采 用部署指令发布到链上,经过共识算法确认后,合约生效并被后续的交易调用。 当合约需要更新升级时,重复以上开发到部署的步骤,发布新版合约,新版合约会有一个新的地址和 独0 码力 | 1489 页 | 107.09 MB | 1 年前3
 FISCO BCOS 2.7.2 中文文档2 2.1.7 虚 虚 虚拟 拟 拟机 机 机 2.0版本引入了最新的以太坊虚拟机版本,支持Solidity 0.5版本。同时,引入了EVMC扩展框架,支持扩 展不同虚拟机引擎。 底层内部集成支持interpreter虚拟机,未来可扩展支持WASM/JIT等虚拟机。 更 更 更多关于虚拟机的介绍,请参考 虚拟机设计文档 2.1.8 密 密 密钥 钥 钥管 管 管理 理 理服 服 服务 务 务 引入evmc扩展框架:支持扩展不同虚拟机引擎。 5. 升级重塑P2P、共识、同步、交易执行、交易池、区块管理模块。 协 协 协议 议 议 1. 实现一套CRUD基本数据访问接口规范合约,基于CRUD接口编写业务合约,实现传统面向SQL方 式的业务开发流程。 2. 支持交易上链异步通知、区块上链异步通知以及自定义的AMOP消息通知等机制。 3. 升级以太坊虚拟机版本,支持Solidity 0.5 能 合 约 代 码 的 编 写 , 编 译 , 单 元 测 试 。 合 约 开 发 语 言 可 包 括solidity,C++,java,go,javascript,rust等,语言的选择根据平台虚拟机选型而定。在合约通过测试后,采 用部署指令发布到链上,经过共识算法确认后,合约生效并被后续的交易调用。 当合约需要更新升级时,重复以上开发到部署的步骤,发布新版合约,新版合约会有一个新的地址和 独0 码力 | 1422 页 | 91.91 MB | 1 年前3
 FISCO BCOS 2.8.0 中文文档2 2.1.7 虚 虚 虚拟 拟 拟机 机 机 2.0版本引入了最新的以太坊虚拟机版本,支持Solidity 0.5版本。同时,引入了EVMC扩展框架,支持扩 展不同虚拟机引擎。 底层内部集成支持interpreter虚拟机,未来可扩展支持WASM/JIT等虚拟机。 更 更 更多关于虚拟机的介绍,请参考 虚拟机设计文档 2.1.8 密 密 密钥 钥 钥管 管 管理 理 理服 服 服务 务 务 引入evmc扩展框架:支持扩展不同虚拟机引擎。 5. 升级重塑P2P、共识、同步、交易执行、交易池、区块管理模块。 协 协 协议 议 议 1. 实现一套CRUD基本数据访问接口规范合约,基于CRUD接口编写业务合约,实现传统面向SQL方 式的业务开发流程。 2. 支持交易上链异步通知、区块上链异步通知以及自定义的AMOP消息通知等机制。 3. 升级以太坊虚拟机版本,支持Solidity 0.5 能 合 约 代 码 的 编 写 , 编 译 , 单 元 测 试 。 合 约 开 发 语 言 可 包 括solidity,C++,java,go,javascript,rust等,语言的选择根据平台虚拟机选型而定。在合约通过测试后,采 用部署指令发布到链上,经过共识算法确认后,合约生效并被后续的交易调用。 当合约需要更新升级时,重复以上开发到部署的步骤,发布新版合约,新版合约会有一个新的地址和 独0 码力 | 1435 页 | 92.25 MB | 1 年前3
 FISCO BCOS 2.9.0 中文文档0 2.1.7 虚 虚 虚拟 拟 拟机 机 机 2.0版本引入了最新的以太坊虚拟机版本,支持Solidity 0.5版本。同时,引入了EVMC扩展框架,支持扩 展不同虚拟机引擎。 底层内部集成支持interpreter虚拟机,未来可扩展支持WASM/JIT等虚拟机。 更 更 更多关于虚拟机的介绍,请参考 虚拟机设计文档 2.1.8 密 密 密钥 钥 钥管 管 管理 理 理服 服 服务 务 务 引入evmc扩展框架:支持扩展不同虚拟机引擎。 5. 升级重塑P2P、共识、同步、交易执行、交易池、区块管理模块。 协 协 协议 议 议 1. 实现一套CRUD基本数据访问接口规范合约,基于CRUD接口编写业务合约,实现传统面向SQL方 式的业务开发流程。 2. 支持交易上链异步通知、区块上链异步通知以及自定义的AMOP消息通知等机制。 3. 升级以太坊虚拟机版本,支持Solidity 0.5 能 合 约 代 码 的 编 写 , 编 译 , 单 元 测 试 。 合 约 开 发 语 言 可 包 括solidity,C++,java,go,javascript,rust等,语言的选择根据平台虚拟机选型而定。在合约通过测试后,采 用部署指令发布到链上,经过共识算法确认后,合约生效并被后续的交易调用。 当合约需要更新升级时,重复以上开发到部署的步骤,发布新版合约,新版合约会有一个新的地址和 独0 码力 | 1467 页 | 97.74 MB | 1 年前3
 FISCO BCOS 2.7.0 中文文档2 2.1.7 虚 虚 虚拟 拟 拟机 机 机 2.0版本引入了最新的以太坊虚拟机版本,支持Solidity 0.5版本。同时,引入了EVMC扩展框架,支持扩 展不同虚拟机引擎。 底层内部集成支持interpreter虚拟机,未来可扩展支持WASM/JIT等虚拟机。 更 更 更多关于虚拟机的介绍,请参考 虚拟机设计文档 2.1.8 密 密 密钥 钥 钥管 管 管理 理 理服 服 服务 务 务 引入evmc扩展框架:支持扩展不同虚拟机引擎。 5. 升级重塑P2P、共识、同步、交易执行、交易池、区块管理模块。 协 协 协议 议 议 1. 实现一套CRUD基本数据访问接口规范合约,基于CRUD接口编写业务合约,实现传统面向SQL方 式的业务开发流程。 2. 支持交易上链异步通知、区块上链异步通知以及自定义的AMOP消息通知等机制。 3. 升级以太坊虚拟机版本,支持Solidity 0.5 能 合 约 代 码 的 编 写 , 编 译 , 单 元 测 试 。 合 约 开 发 语 言 可 包 括solidity,C++,java,go,javascript,rust等,语言的选择根据平台虚拟机选型而定。在合约通过测试后,采 用部署指令发布到链上,经过共识算法确认后,合约生效并被后续的交易调用。 当合约需要更新升级时,重复以上开发到部署的步骤,发布新版合约,新版合约会有一个新的地址和 独0 码力 | 1435 页 | 92.25 MB | 1 年前3
共 127 条
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 13
 













