从0开始学DX Mesh第二天--搭建DX Mesh环境和启动xPort服务
组织介绍
DigQuant Technology点宽科技开源项目:
Direct Exchange Mesh (DX Mesh) for Web 3.0 - 面向 Web3.0 的分布式应用架构
历史沿袭
DX Mesh是由DQtech团队提出的“RPC网络+区块链网络“的双层网络设计思路,在此设计概论基础上,DX Mesh项目进行了大胆的设计,一个新的”Dual Network Architecture(DNA)“网络结构被提出。
开源项目链接:https://gitee.com/DXmesh
DX Mesh环境搭建
前期准备
需要搭建好C++和Rust的环境,并把从https://gitee.com/DXmesh把所有组件pull到本地文件中,以下是我的拉取完的例子(所有组件都在DX Mesh文件里面)
第一步–Common环境配置
Common是什么(具体信息见:https://gitee.com/DXmesh/Common/blob/dev/README.md)
Common 提供 DXMesh 所有项目的共用代码。使用到的项目有 xPort,xComRustLib,xComBuilder。这些项目在编译时,必须要和 Common 放在同级目录,才能编译成功!!!。
第二步–xPort环境配置
xPort 是什么(具体信息见:https://gitee.com/DXmesh/xPort/blob/dev/README.md)
xPort 是 DXMesh 的运行时,负责加载和运行 DXC(DXMesh Component 应用组件)。xPort 为 DXC 提供以下功能:
- 消息的发送 / 接收
- 文件操作,节点间传输
- 日志收集
- HTTP 请求
- 数据库操作
xPort 内置基于 protobuf 开发的 RPC 协议:xRPC。xRPC 用于 xPort 间通讯,对于应用是透明的。
首先确保同级目录下有公共代码库Common和xPort:
然后进入xPort,运行以下命令:
cargo build
这是我电脑安装的具体例子:
以下是安装完成的界面:
第三步–xComBuilder环境配置
xCoBuilder是什么(具体信息见:https://gitee.com/DXmesh/xComBuilder/blob/dev/README.md)
xComBuillder是用于 DXMesh 应用组件开发的生成器。提供 dxc 工程创建、工程代码生成、组件编译、组件打包以及安装的命令。
首先,进入xComBuilder的文件路径,运行以下命令进行安装:
cargo install --path .
这是我电脑下的具体例子:
以下是安装完成的界面:
第四步–xComService环境配置
xComService是什么(具体信息见:https://gitee.com/DXmesh/xComService/blob/dev/README.md)
xComService是一个和 xPort 交互,以及将 xPort 部分二进制接口封装成 xRPC 接口的系统级别的DXC。
当前的功能有:
- 建立 xPort 间的连接
- 加载/卸载 应用组件
- 提供查询当前 xPort 所加载的应用组件信息
- 负责同步本地加载/卸载的应用组件到所有和自身连接的 xPort 节点。
首先,进入xComService的文件路径,运行以下命令进行安装:
xbuilder build
这是我电脑下的具体例子:
以下是编译完成的界面:
然后运行以下命令进行打包:
xbuilder pack
这是我电脑下的具体例子:
打包完成后运行以下命令安装到./xPort文件下:
xbuilder install -x ../xport
这是我电脑下的具体例子:
第五步–xComRustLib环境配置
xComRustLib是什么(具体信息见:https://gitee.com/DXmesh/xComRustLib/blob/dev/README.md)
xComRustLib 是 DXMesh 应用组件 DXC(DXMesh Componet),开发库。将 xPort 注入的接口,封装成 Rust 的 async 接口。提供 async 运行时,以及将 Common 接口导出给 DXC 使用。
首先,进入xComRustLib的文件路径,然后运行以下代码:
xbuilder build
这是我电脑下的具体例子:
以下是安装完成的界面:
启动xPort服务
到现在,恭喜你DX Mesh环境已经基本配置完成!!!
在启动xPort服务前,我这里使用postman工具用来做接口测试的工具
(具体安装使用教程见:https://blog.csdn.net/qq_41099091/article/details/107319193)
首先进入xPort的文件路径,修改dxmesh.toml的配置文件(文件具体信息见:https://gitee.com/DXmesh/xPort/blob/dev/dxmesh.toml),改成你所需要监听的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的xComPython组件搭建第一个项目工程-Helloworld
若对DX Mesh架构和实操过程中有任何问题,可评论、私信、邮箱或者加下列微信和我一起探讨(我的邮箱:2195745704@qq.com):