从0开始学DX Mesh--第五天

组织介绍

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

xComPython组件构建DatabaseService工程

整体思路

一、使用Protobuf3编写所需要的接口函数–AddUser、DeleteUser、UpdateUser、GetUserList

二、使用xbuilder命令对Protobuff3接口进行转换并初始化工程

三、编写DAO.py文件实现数据库操作的功能,编写service.py调用DAO.py文件进行功能实现和结果反馈

四、使用xPort启动127.0.0.1:8090监听端监听127.0.0.1:8091服务端

五、服务端向xPort发起操作数据库请求,xPort把请求发送给监听端

六、监听端启动DatabaseService工程并实现操作数据库,并结果反馈给xPort,xPort再把结果反馈给服务端

前期准备

需要简单的Protobuf3的接口编程基础,Protobuf3是什么(具体信息见:https://protobuf.dev/programming-guides/proto3/)

需要简单的数据库编程基础。数据库安装教程见:数据库安装保姆级连接

第一步–Protobuf3接口编写

首先,创建一个项目文件夹DatabaseService,然后运行以下代码初始初始化工程:

xbuilder new -n DatabaseService

可以看到这里生成一个source_api_0_0_1.proto文件,这里默认提供了一个SayHello的接口。
在这里插入图片描述

接下来,把source_api_0_0_1.proto文件内容修改编写成需要的数据库操作接口:
增加数据接口–AddUser
删除数据接口–DeleteUser
更新数据接口–UpdateUser
查询数据接口–GetUserList
在这里插入图片描述

第二步–初始DatabaseService工程

接下来,在终端运行以下代码初始化DatabaseService工程,这里选择使用python语言来调用接口:

xbuilder init -l py  

可以看到D:\dxmesh1\xComPythonLib\DatabaseService下生成了src的初始化文件:
在这里插入图片描述

打开src文件夹下的service.py,可以看到编写的接口已经通过xbuider初始化好了:
在这里插入图片描述

第三步–python接口编写

一、这里创建了一个DAO.py文件编实现数据库操作功能
(1)编写了init_dable()函数对数据库表初始化功能,数据库表名为databaseservice_0_0_1_user:
在这里插入图片描述

(2)编写了add_user()、delete_user()、update_user()、get_user_list()四个函数分别实现增、删、改、查功能:
在这里插入图片描述

二、对service.py文件进行编写,调用了DAO.py数据库操作函数并传入相对于的参数
(1)调用了DAO文件里面的init_table()函数对数据库表进行初始化:
在这里插入图片描述

(2)调用了DAO文件的add_user()、delete_user()、update_user()、get_user_list()进行增、删、改、查并接收返回的参数:
在这里插入图片描述

第四步–启动xPort操作数据库

一、打包安装DatabaseService工程
运行以下代码对编写的DatabaseService工程进行打包:

xbuilder pack

可以看到生成了DatabaseService_0_0_1.dxc和import_api_DatabaseService_0_0_1.proto文件。
在这里插入图片描述

接下来,运行以下代码把DatabaseService_0_0_1.dxc安装到xPort文件夹上:

xbuilder install -x xxx

可以看到已经成功安装到了xPort文件夹上:
在这里插入图片描述

二、启动xPort调用DatabaseService工程
在终端运行以下代码启动xPort(127.0.0.1:8090监听端监听127.0.0.1:8091服务端):

cargo run

在这里插入图片描述

使用postman调用XComService监听下的DatabaseService工程:
可以看到,DatabaseService已经连接上了xPort(由服务端向监听端发起启动工程请求):
在这里插入图片描述

可以看到,数据库也生成了一个databaseservice_0_0_1_user的数据库表:
在这里插入图片描述

三、增加数据功能实现
调用AddUser的接口增加一列{“name”:“王五”},{“age”:19}到databaseservice_0_0_1_user数据库表(由服务端向监听端发起增加请求):
可以看到,xPort把增加数据功能的日志打印出来了,并且把“增加成功”结果反馈给服务端。
在这里插入图片描述

可以看到,{“name”:“王五”},{“age”:“19”}成功增加到了databaseservice_0_0_1_user数据库表中:
在这里插入图片描述
四、删除数据功能实现
这是未删除数据前的databaseservice_0_0_1_user表:
在这里插入图片描述

调用DeleteUser接口把id=3这一列删除(由服务端向监听端发起删除请求):
可以看到,xPort把删除数据功能的日志打印出来了,并且把“删除成功”结果反馈给服务端。
在这里插入图片描述

这是删除数据后的databaseservice_0_0_1_user表,可以看见id=3这一列已经被成功删除:
在这里插入图片描述
五、更新数据功能实现
这是未更新数据前的databaseservice_0_0_1_user表:
在这里插入图片描述

调用UpdateUser接口把id=4这一列更新成{“name”:王五},{“age”:21}(由服务端向监听端发起更新请求):
可以看到,xPort把更新数据功能的日志打印出来了,并且把“更新成功”结果反馈给服务端。
在这里插入图片描述

这是进行更新数据后的databaseservice_0_0_1_user表:
在这里插入图片描述

六、查询数据功能实现
调用GetUserList接口查询databaseservice_0_0_1_user表里的所有数据(由服务端向监听端发起查询请求):
可以看到,xPort把查询数据功能的日志打印出来了,并且把查询的结果反馈给服务端。
在这里插入图片描述

第六天预告

DX Mesh的protobuf接口讲解和简单的protobuf编程。

若对DX Mesh架构和实操过程中有任何问题,可评论、私信、邮箱或者加下列微信和我一起探讨学习(我的邮箱:2195745704@qq.com):
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值