架构设计 | architecture design
一、Remix 架构 | Remix Architecture
1、分层架构 | layered architecture
Remix IDE的架构,大体分三层,第一层基础库,包括 engine-web、remix-libs和react;
第二层为插件层,实现各种功能;第三层为应用层,将插件整合在一起形成一个应用。
用户可以通过激活或者禁用插件来实现功能的按需加载。
基础层:
engine-web: 插件引擎,提供插件注册表和插件之间通信链路
remix-libs: 基础功能库,包括solidity代码静态分析工具,solidity语法树解析工具等
react: UI库
插件层:
editor-plugin: 编辑器插件
terminal-plugin: 控制台插件
file-manager-plugin: 文件管理插件
main-panel-plugin: 主面板区插件
layout-plugin: 布局插件
compile-and-deploy-plugin: 编译和部署插件
应用层:
remix-app: Remix IDE应用
2、engine-web 原理 | engine-web principle
Engine管理0-n个插件,插件分IFrame插件和WebWorker插件,不同类型的插件
隔离机制和通信方式不一样。
3、engine-web 插件通信原理 | engine-web plug-in communication principle
普通插件直接通过JS的函数通信,IFramePlugin使用window.postMessage通信,
WebWorkerPlugin也使用window.postMessage通信。
二、Move Online IDE 架构 | Move Online IDE Architecture
1、方案1 | plan 1
这个方案将不同Move链的编译和部署实现为不同插件,用户通过安装插件的方式来支持
Move的开发。
2、方案2 | plan 2
这个方案复用Remix的插件架构,实现自己的move-libs,内置move相关插件,
替换应用层实现move-ide,实现开箱即用。
3、方案对比 | Scheme comparison
方案名称 | 优点 | 缺点 |
---|---|---|
方案1-外置插件 |
|
|
方案2-内置插件 |
|
|