danielausman68-rgb/AssetNet

GitHub: danielausman68-rgb/AssetNet

基于 Stacks 区块链的政府公共资产全生命周期管理系统,提供不可篡改的资产登记、转移审批、维护跟踪和完整审计踪迹。

Stars: 0 | Forks: 0

## 📋 概述 AssetNet 使政府机构能够维护一个透明、不可篡改的公共资产账本,包括建筑物、车辆、设备、土地、基础设施和技术。该系统提供从购置到处置的全生命周期管理,并包含详细的维护和转移历史。 ## ✨ 功能特性 ### 核心资产管理 - **资产登记**:登记具有完整元数据的新政府资产 - **资产更新**:更新资产信息、位置和状况 - **状态跟踪**:监控资产生命周期(使用中、维护中、已退役等) - **状况监控**:跟踪资产状况评级(1-10 级) ### 转移管理 - **部门间转移**:在政府部门之间转移资产 - **转移历史**:所有资产流动的完整审计踪迹 - **审批系统**:内置的转移审批机制 - **转移原因**:记录资产移动的原因 ### 维护跟踪 - **维护记录**:记录所有维护活动 - **成本跟踪**:跟踪维护成本和费用 - **日程安排**:设定下次维护日期 - **部件管理**:记录更换的部件和组件 - **状况更新**:维护后更新状况评级 ### 权限系统 - **基于角色的访问**:三个权限级别(查看、编辑、管理) - **特定部门**:权限与特定部门绑定 - **操作控制**:对创建、转移和处置操作的精细控制 - **管理员管理**:完整的用户权限管理 ### 部门管理 - **部门注册**:注册政府部门 - **预算跟踪**:跟踪各部门的分配预算 - **资产统计**:监控各部门的总资产和活跃资产 - **联系信息**:维护部门联系详情 ### 分析与报告 - **系统统计**:总资产价值、数量、转移情况 - **资产计数器**:跟踪已登记的资产总数 - **转移分析**:监控转移活动 - **维护指标**:跟踪维护活动 ## 🏗️ Smart Contract 架构 ### 数据结构 #### 资产映射 (Assets Map) ``` { asset-id: uint, name: string, description: string, asset-type: uint (1-6: Building, Vehicle, Equipment, Land, Infrastructure, Technology), value: uint, acquisition-date: uint, current-status: uint (1-6: Active, Maintenance, Retired, Disposed, Lost, Damaged), condition-rating: uint (1-10), location: string, department: string, responsible-officer: string, last-inspection: uint, warranty-expiry: uint, maintenance-schedule: uint, serial-number: string, created-at: uint, updated-at: uint, created-by: principal } ``` #### 转移历史 ``` { transfer-id: uint, asset-id: uint, from-department: string, to-department: string, from-officer: string, to-officer: string, transfer-reason: string, transfer-date: uint, approved-by: principal, transfer-value: uint } ``` #### 维护记录 ``` { maintenance-id: uint, asset-id: uint, maintenance-type: string, description: string, cost: uint, performed-by: string, maintenance-date: uint, next-maintenance: uint, parts-replaced: string, condition-before: uint, condition-after: uint } ``` ## 🚀 快速开始 ### 前置条件 - 已安装 [Clarinet](https://docs.hiro.so/clarinet) - Node.js 和 npm(用于测试) ### 安装 ``` git clone cd AssetNet npm install ``` ### 部署合约 ``` clarinet check clarinet console ``` ### 初始化系统 ``` ;; Initialize the contract (only contract owner) (contract-call? .asset-ledger initialize) ``` ## 📚 使用指南 ### 1. 授予用户权限 ``` ;; Grant admin permissions to a user (contract-call? .asset-ledger grant-permissions 'SP1234...ABCD ;; user principal u3 ;; permission level (Admin) "IT Department" ;; department true ;; can create true ;; can transfer true ;; can dispose ) ``` ### 2. 注册部门 ``` (contract-call? .asset-ledger register-department "Public Works" ;; department name "John Smith" ;; head of department u1000000 ;; budget allocated "555-0123" ;; contact info ) ``` ### 3. 登记资产 ``` (contract-call? .asset-ledger register-asset "City Hall Computer" ;; name "Dell OptiPlex 7090" ;; description u6 ;; asset type (Technology) u150000 ;; value (in micro-STX) "City Hall, Room 101" ;; location "IT Department" ;; department "Jane Doe" ;; responsible officer "DT789456" ;; serial number u1000 ;; warranty expiry (block height) u500 ;; maintenance schedule ) ``` ### 4. 转移资产 ``` (contract-call? .asset-ledger transfer-asset u1 ;; asset ID "Public Works" ;; to department "Bob Johnson" ;; to officer "Relocating for infrastructure project" ;; reason ) ``` ### 5. 记录维护 ``` (contract-call? .asset-ledger record-maintenance u1 ;; asset ID "Routine Maintenance" ;; maintenance type "Cleaned components and updated software" ;; description u5000 ;; cost "Tech Support Team" ;; performed by u2000 ;; next maintenance "Keyboard, mouse" ;; parts replaced u9 ;; condition after ) ``` ## 🔍 查询函数 ### 获取资产详情 ``` (contract-call? .asset-ledger get-asset u1) ``` ### 获取系统统计 ``` (contract-call? .asset-ledger get-system-stats) ``` ### 获取用户权限 ``` (contract-call? .asset-ledger get-user-permissions 'SP1234...ABCD) ``` ### 检查用户操作 ``` (contract-call? .asset-ledger can-user-perform-action 'SP1234...ABCD "create") ``` ## 🛡️ 安全特性 - **基于权限的访问控制**:只有授权用户才能执行操作 - **输入验证**:所有输入在处理前都经过验证 - **不可篡改记录**:所有交易都被永久记录 - **管理员控制**:全面的管理监督 - **错误处理**:详细的错误代码用于故障排除 ## 📊 资产类型与状态代码 ### 资产类型 1. **建筑物** - 政府建筑物和设施 2. **车辆** - 汽车、卡车、紧急车辆 3. **设备** - 机械、工具、专用设备 4. **土地** - 政府拥有的房地产 5. **基础设施** - 道路、桥梁、公用设施 6. **技术** - 计算机、服务器、IT 设备 ### 资产状态代码 1. **使用中** - 当前正在使用 2. **维护中** - 正在维护 3. **已退役** - 不再处于活跃服务状态 4. **已处置** - 已出售或报废 5. **丢失** - 缺失或被盗 6. **损坏** - 损坏且无法修复 ### 权限级别 1. **查看** - 只读访问权限 2. **编辑** - 可以修改资产信息 3. **管理** - 完全系统控制权 ## 🧪 测试 ``` npm test ``` ## 📈 未来增强 - 集成 IoT 传感器以进行实时资产监控 - 用于现场资产管理的移动应用 - 自动折旧计算 - 与采购系统集成 - 增强的报告和仪表板功能 - 多重签名审批工作流 ## 🤝 贡献 1. Fork 本仓库 2. 创建一个特性分支 3. 进行更改 4. 运行测试和 clarinet check 5. 提交 pull request ## 📄 许可证 本项目根据 MIT 许可证授权 - 详见 LICENSE 文件。 ## 🆘 支持 如需支持和提问: - 在仓库中创建 issue - 联系开发团队 - 查阅文档 wiki ## 🏆 致谢 使用 [Clarinet](https://docs.hiro.so/clarinet) 和 Stacks 区块链构建,旨在实现透明、可问责的政府资产管理。 **AssetNet**:通过区块链技术为公共资产管理带来透明度和问责制。
标签:Clarity语言, MITM代理, Stacks, 不可篡改, 代码示例, 企业资产管理, 全生命周期管理, 公共资产, 公共部门, 区块链, 去中心化应用, 基于角色的访问控制, 审计追踪, 房地产, 政府资产管理, 数字治理, 数据分析, 智能合约, 权限管理, 模型越狱, 比特币锚定, 状态监控, 维护追踪, 资产处置, 资产登记, 转移管理, 透明度, 部门管理, 预算跟踪