KashyapParaser09/FlowChain

GitHub: KashyapParaser09/FlowChain

FlowChain 利用区块链智能合约和自动化监控机制,为 SDN 网络中的节点提供透明、可追溯的信任评分与声誉管理方案。

Stars: 0 | Forks: 0

# 运行 FlowChain ## 系统架构 ``` Windows Host ├── Hardhat Blockchain ├── Smart Contract ├── Backend API └── Frontend Dashboard Linux VM ├── Mininet Topology ├── SDN Network └── Monitoring Agents ``` # 步骤 1:启动 Blockchain 打开终端 1: ``` cd blockchain npx hardhat node ``` 保持该终端运行。 预期输出: ``` Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/ ``` # 步骤 2:部署 Smart Contract 打开终端 2: ``` cd blockchain npx hardhat run scripts/deploy.js --network localhost ``` 复制合约地址。 示例: ``` Contract deployed to: 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 ``` # 步骤 3:配置 Backend 在 `backend/` 目录下创建 `.env` 文件: ``` RPC_URL=http://127.0.0.1:8545 PRIVATE_KEY= CONTRACT_ADDRESS= ``` # 步骤 4:启动 Backend 打开终端 3: ``` cd backend npm install npm start ``` 预期输出: ``` FlowChain backend running on port 5000 ``` 验证: ``` http://localhost:5000/ ``` 响应: ``` { "success": true, "message": "FlowChain Backend Running" } ``` # 步骤 5:配置 Linux Agent 在 Linux VM 中编辑: ``` nano agent.py ``` 设置: ``` BACKEND_URL = "http://:5000" ``` 示例: ``` BACKEND_URL = "http://192.168.1.24:5000" ``` # 步骤 6:启动 SDN 拓扑 打开 Linux 终端: ``` sudo python3 topology.py ``` 预期输出: ``` *** Creating network *** Adding hosts *** Adding switch *** Starting network ``` 此操作将启动: ``` h1 h2 h3 ... ``` 并将它们连接到 SDN 交换机。 # 步骤 7:启动监控 Agent 在 Mininet CLI 中: ``` mininet> h1 python3 agent.py & mininet> h2 python3 agent.py & mininet> h3 python3 agent.py & ``` 每个主机将: * 自动注册 * 发送心跳 * 报告 CPU 使用率 * 报告内存使用率 * 更新信誉评分 预期输出: ``` Node registered Heartbeat sent CPU: 10% Memory: 35% ``` # 自动启动 Agent(可选) 如果在 topology.py 中实现了: ``` host.cmd("python3 agent.py &") ``` 那么 agent 会在拓扑启动时自动运行。 无需手动输入命令。 # 步骤 8:打开 Dashboard 访问: ``` frontend/index.html ``` 或使用 Live Server 启动。 Dashboard 将显示: * 总节点数 * 受信任节点 * 不受信任节点 * 信誉评分 * 审计日志 # 添加新节点 编辑拓扑: ``` hosts = [ net.addHost('h1'), net.addHost('h2'), net.addHost('h3'), net.addHost('h4') ] ``` 重启拓扑: ``` sudo python3 topology.py ``` 启动 agent: ``` mininet> h4 python3 agent.py & ``` 该节点将: 1. 自动注册 2. 显示在 blockchain 上 3. 显示在 backend 中 4. 显示在 Dashboard 上 # 测试 CPU 监控 安装 stress: ``` sudo apt install stress -y ``` 在主机上运行: ``` mininet> h1 stress --cpu 2 --timeout 60 ``` 预期结果: * 超出 CPU 阈值 * 信誉下降 * 创建审计日志 # 测试内存监控 ``` mininet> h1 stress --vm 1 --vm-bytes 500M --timeout 60 ``` 预期结果: * 超出内存阈值 * 信誉下降 * 创建审计日志 # 测试心跳失败 停止 agent: ``` pkill -f agent.py ``` 或: ``` Ctrl+C ``` 预期结果: * Backend 检测到心跳丢失 * 信誉下降 * 创建审计日志 # 常用 API Endpoints 获取所有节点: ``` GET /nodes ``` 获取审计日志: ``` GET /logs ``` 注册节点: ``` POST /register-node ``` 提升信誉: ``` POST /reputation/increase ``` 降低信誉: ``` POST /reputation/decrease ``` # 完整启动流程 ``` 1. Hardhat Node 2. Deploy Contract 3. Backend 4. Mininet Topology 5. Monitoring Agents 6. Dashboard ``` FlowChain 现已完全运行。
标签:Hardhat, Mininet, MITM代理, 信誉管理, 区块链, 多模态安全, 数据可视化, 智能合约, 自定义脚本, 软件定义网络, 逆向工具