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, 不可篡改, 代码示例, 企业资产管理, 全生命周期管理, 公共资产, 公共部门, 区块链, 去中心化应用, 基于角色的访问控制, 审计追踪, 房地产, 政府资产管理, 数字治理, 数据分析, 智能合约, 权限管理, 模型越狱, 比特币锚定, 状态监控, 维护追踪, 资产处置, 资产登记, 转移管理, 透明度, 部门管理, 预算跟踪