viralP2302/blockchain-lms-micro-moodle

GitHub: viralP2302/blockchain-lms-micro-moodle

这是一个基于以太坊智能合约的去中心化学习管理系统原型,旨在通过区块链技术确保作业提交、评分及审计过程的不可篡改性与透明度。

Stars: 0 | Forks: 0

# MicroMoodle:去中心化学习管理系统 一个基于区块链的 LMS 原型,演示了使用 Ethereum 智能合约进行不可篡改的作业提交、评分和争议工作流。 ## 前置条件 - Node.js v18+ - npm ## 快速开始 ### 1. 安装依赖 ``` # 安装 contract 依赖 cd contracts npm install # 安装 backend 依赖 cd ../backend npm install # 安装 frontend 依赖 cd ../frontend npm install ``` ### 2. 启动本地区块链 ``` cd contracts npx hardhat node ``` 保持此终端运行。你将看到 20 个带有 ETH 的测试账户。 ### 3. 部署智能合约 打开一个新终端: ``` cd contracts npx hardhat run scripts/deploy.js --network localhost ``` **预期输出:** ``` MicroMoodle deployed to: 0x5FbDB2315678afecb367f032d93F642f64180aa3 Course Name: CS101 Web3 Security, Duration: 7 days Students successfully enrolled in the Smart Contract. ``` ### 4. 运行安全测试 ``` cd contracts npx hardhat test ``` **预期输出:** 所有测试通过,包括显示未授权操作被拒绝的安全检查。 ### 5. 启动后端服务器 ``` cd backend node server.js ``` ### 6. 启动前端 ``` cd frontend npm run dev ``` 打开 http://localhost:5173 ## 演示工作流 1. **学生视图**:选择 Student 1,上传文件 → 交易提交到区块链 2. **教师视图**:查看提交内容,分配分数并给出反馈 3. **验证标签页**:上传相同文件 → 哈希值与区块链记录匹配 4. **争议**:评分后,学生可以发起链上争议 ## 测试账户(Hardhat 默认值) | 角色 | 地址 | |------|---------| | Teacher | 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 | | Student 1 | 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 | | Student 2 | 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC | ## 项目结构 ``` ├── contracts/ # Hardhat + Solidity smart contract │ ├── contracts/MicroMoodle.sol │ ├── scripts/deploy.js │ └── test/MicroMoodle.test.js ├── backend/ # Express.js API server │ └── server.js └── frontend/ # React + Vite UI └── src/App.jsx ``` ## 演示的安全功能 - **访问控制**:只有教师可以分配分数(`onlyTeacher` 修饰符) - **完整性**:文件哈希值存储在链上,可检测篡改 - **不可篡改性**:分数一旦分配便无法更改 - **重放攻击防护**:强制执行每个学生只能提交一次 - **审计追踪**:所有操作都会发出事件,以提供可验证的历史记录
标签:DApp开发, GNU通用公共许可证, Hardhat, IPFS, LMS, MITM代理, Node.js, Solidity, Web3, 争议解决, 以太坊, 作业提交, 区块链, 区块链教学, 去中心化应用, 去中心化教育, 存证, 学习管理系统, 成绩管理, 教育科技, 数字身份, 文件哈希, 智能合约, 自定义脚本, 防篡改