从0开始学DX Mesh第二天--搭建DX Mesh环境和启动xPort服务

102 阅读4分钟

组织介绍

DigQuant Technology点宽科技开源项目:

Direct Exchange Mesh (DX Mesh) for Web 3.0 - 面向 Web3.0 的分布式应用架构 在这里插入图片描述

历史沿袭

DX Mesh是由DQtech团队提出的“RPC网络+区块链网络“的双层网络设计思路,在此设计概论基础上,DX Mesh项目进行了大胆的设计,一个新的”Dual Network Architecture(DNA)“网络结构被提出。 开源项目链接:gitee.com/DXmesh

DX Mesh环境搭建

前期准备

需要搭建好c++和Rust的环境,并把从gitee.com/DXmesh把所有组件pull到本地文件中,以下是我的拉取完的例子(所有组件都在DX Mesh文件里面) 在这里插入图片描述

第一步--Common环境配置

Common是什么(具体信息见:gitee.com/DXmesh/Comm…

Common 提供 DXMesh 所有项目的共用代码。使用到的项目有 xPortxComRustLibxComBuilder。这些项目在编译时,必须要和 Common 放在同级目录,才能编译成功!!!

第二步--xPort环境配置

xPort 是什么(具体信息见:gitee.com/DXmesh/xPor…

xPort 是 DXMesh 的运行时,负责加载和运行 DXC(DXMesh Component 应用组件)。xPort 为 DXC 提供以下功能:

  • 消息的发送 / 接收
  • 文件操作,节点间传输
  • 日志收集
  • HTTP 请求
  • 数据库操作

xPort 内置基于 protobuf 开发的 RPC 协议:xRPC。xRPC 用于 xPort 间通讯,对于应用是透明的。 首先确保同级目录下有公共代码库Common和xPort: 请添加图片描述 然后进入xPort,运行以下命令:

cargo build

这是我电脑安装的具体例子: 在这里插入图片描述 以下是安装完成的界面: 在这里插入图片描述

第三步--xComBuilder环境配置

xCoBuilder是什么(具体信息见:gitee.com/DXmesh/xCom…

xComBuillder是用于 DXMesh 应用组件开发的生成器。提供 dxc 工程创建、工程代码生成、组件编译、组件打包以及安装的命令。

首先,进入xComBuilder的文件路径,运行以下命令进行安装:

cargo install --path . 

这是我电脑下的具体例子: 在这里插入图片描述 以下是安装完成的界面: 在这里插入图片描述

第四步--xComService环境配置

xComService是什么(具体信息见:gitee.com/DXmesh/xCom…

xComService是一个和 xPort 交互,以及将 xPort 部分二进制接口封装成 xRPC 接口的系统级别的DXC。

当前的功能有:

  • 建立 xPort 间的连接
  • 加载/卸载 应用组件
  • 提供查询当前 xPort 所加载的应用组件信息
  • 负责同步本地加载/卸载的应用组件到所有和自身连接的 xPort 节点。

首先,进入xComService的文件路径,运行以下命令进行安装:

dxc build

这是我电脑下的具体例子: 在这里插入图片描述 以下是编译完成的界面: 在这里插入图片描述 然后运行以下命令进行打包:

dxc pack

这是我电脑下的具体例子: 在这里插入图片描述 打包完成后运行以下命令安装到./xPort文件下:

dxc install -x  ../xport

这是我电脑下的具体例子: 在这里插入图片描述

第五步--xComRustLib环境配置

xComRustLib是什么(具体信息见:gitee.com/DXmesh/xCom…

xComRustLib 是 DXMesh 应用组件 DXC(DXMesh Componet),开发库。将 xPort 注入的接口,封装成 Rust 的 async 接口。提供 async 运行时,以及将 Common 接口导出给 DXC 使用。

首先,进入xComRustLib的文件路径,然后运行以下代码:

cargo build

这是我电脑下的具体例子: 在这里插入图片描述 以下是安装完成的界面: 在这里插入图片描述

启动xPort服务

到现在,恭喜你DX Mesh环境已经基本配置完成!!! 在启动xPort服务前,我这里使用postman工具用来做接口测试的工具 (具体安装使用教程见:blog.csdn.net/qq_41099091…)

首先进入xPort的文件路径,修改dxmesh.toml的配置文件(文件具体信息见:gitee.com/DXmesh/xPor…),改成你所需要监听的ip和mysql的信息,然后在终端运行以下命令:

cargo run

这是我电脑下的具体例子:

以下我修改的dxmesh.toml配置文件(./xPort/dxmesh.toml),我这里用了本地的127.0.0.1:8090作为监听ip,127.0.0.1:8091作为服务监听ip,数据库用了本地的127.0.0.1:3306的mysql作为服务监听数据库。启动的default-dxc服务为我之前配置好的XComService_0_0_1工程。 在这里插入图片描述 修改好配置文件后,在终端运行命令: 在这里插入图片描述

以下运行命令后监听成功的界面(可以看见成功连接到我本地的数据库和启动了监听服务): 在这里插入图片描述 接下来,我用postman测试下接口: 以下是我用GetServiceList的接口来获取服务列表:

 {
    "dxc_name":"XComService",
      "dxc_version":"0.0.1",
      "service_name":"XComService",
      "api":"GetServiceList",
      "params":{
       
      }
  }

以下postman工具界面上所返回的服务列表信息: 在这里插入图片描述

以下是终端窗口反馈的服务信息: 在这里插入图片描述 欧克,到这里已经成功启动了xPort的监听服务项目。

第三天预告

使用DX Mesh的xCom Library For Python组件编写第一个项目--helloword。