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代理, 信誉管理, 区块链, 多模态安全, 数据可视化, 智能合约, 自定义脚本, 软件定义网络, 逆向工具