项目简介
本项目是一个基于C++的分布式算法仿真器,能构建模拟的分布式网络环境,方便用户进行分布式算法的测试。它模拟了网络环境、主机网卡、CPU、分布式定时器等组件,支持自定义网络时延,还具备丰富的加密和网络功能。
项目的主要特性和功能
- 分布式网络模拟:模拟网络环境、主机网卡、CPU等组件,支持自定义网络时延,模拟分布式定时器。
- 加密功能:支持SECP256K1、BLS、SM2等多种加密算法,提供RSA密钥生成、保存和读取功能,支持SHA - 3、SHA - 2、MD5等多种哈希算法。
- RPC和网络通信:支持远程过程调用(RPC)及请求和响应处理,模拟网络事件队列和传输事件,提供网络卡和主机模拟,支持带宽管理和任务调度。
- 线程池管理:提供线程池功能,支持任务提交和执行,支持核心线程和动态线程的管理。
- 序列化和反序列化:提供二进制序列化和反序列化功能,支持多种数据类型的序列化和反序列化。
安装使用步骤
前提条件
确保本地环境已安装以下工具: - CMake - Git
安装步骤
- 复制项目代码:
bash cd muse-simulator
- 安装依赖:
bash cd dependency unzip bls.zip
- 构建项目:
bash cmake -S . -B build cmake --build build
- 安装项目:
bash cd build make install
运行项目
- 初始化模拟器:
cpp MUSE_CPU_PROCESSING_MATRIX::get_ptr()->initial();
- 设置RPC处理时间:
cpp MUSE_CPU_PROCESSING_MATRIX::get_ptr()->set_RPC_processing_time_Server("@context/RPC:Vote", 100, 200);
- 创建主机对象并注册到网络调度器:
cpp auto A1 = std::make_unique<muse::simulator::host>("192.168.1.1"); auto A2 = std::make_unique<muse::simulator::host>("192.168.1.2"); MUSE_NETWORK_DISPATCHER::get_ptr()->register_host(A1.get()); MUSE_NETWORK_DISPATCHER::get_ptr()->register_host(A2.get());
- 运行模拟器:
cpp auto simulator = std::make_unique<muse::simulator::simulator_object>(); simulator->run();
通过以上步骤,可成功安装并运行该分布式算法仿真器,进行分布式算法的测试和模拟。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】