一、项目概览
本项目是一个**区块链电子签章/文件存证**系统,采用 JavaWeb 后端 + Vue 前端,底层使用 FISCO BCOS 2.9.2 联盟链作为区块链基础设施,并通过 WeBASE-Front 中间件与链上合约交互。核心功能包括:用户注册登录、文件签署上链、签署验证。
技术栈一览
| 组件 | 版本 |
|------|------|
| JDK | 14 |
| FISCO BCOS | 2.9.2 |
| WeBASE-Front | 1.5.5 |
| Spring Boot | 2.x |
| Maven | 3.6.1 |
| Vue | 2.6 |
| Node.js | 16.14.2 |
二、环境搭建全流程
2.1 搭建 4 节点联盟链
首先需要部署一条 FISCO BCOS 联盟链。官方文档非常详细,直接参考:
- [FISCO BCOS 2.0 官方文档](https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/)
使用 build_chain.sh 脚本一键生成 4 节点单机链,然后启动所有节点。记得检查节点进程是否正常,确保 RPC 端口(默认 8545)和 Channel 端口(默认 20200)畅通。
### 2.2 搭建 WeBASE-Front 中间件
WeBASE-Front 是 FISCO BCOS 的轻量级 Web 管理平台,提供合约管理、部署、调用、用户管理等可视化功能。参考:
- [WeBASE 文档 v1.5.5](https://webasedoc.readthedocs.io/zh-cn/latest/)
下载对应版本,修改 application.yml 中的节点 IP 和端口,启动后访问 http://localhost:5002/WeBASE-Front,看到控制台界面即成功。
### 2.3 部署合约
本项目核心合约是 SealAccount(签章账户管理)及其他存证相关合约。
1. 创建测试用户
在 WeBASE-Front 的“合约管理” -> “测试用户”中,创建两个用户:
-
Seal(签章用户) -
admin(管理员)
2. 上传合约代码
进入“合约管理” -> “合约 IDE”,新建目录 SealAccount,将项目 contracts-me 目录下的所有 .sol 合约文件上传至该目录。
3. 部署合约
选中 SealAccount 合约,点击部署。部署时需要传入构造参数——将刚才创建的 2 个用户地址(Seal 和 admin)按顺序传入。
部署成功后会生成合约地址,如下图所示:

(图中显示合约地址和部署交易哈希)
⚠️ 注意:如果后续需要**重置系统数据**,请先删除本地数据文件(见后文),然后重新执行本步骤的部署操作。
三、后端启动(Spring Boot)
项目后端代码位于 bace-me 目录,使用 IDEA 打开。
### 3.1 修改配置文件
找到 src/main/resources/application.yml,需要根据你的环境替换以下关键信息:
- 区块链节点 IP/端口(Channel 连接)
- WeBASE-Front 的 API 地址
- 数据库连接(MySQL 或 H2,根据项目配置)
- 合约地址(刚刚部署的 SealAccount 合约地址)
修改完成后,配置如下图所示(示例):

### 3.2 启动后端服务
在 IDEA 中直接运行 BackApplication 主类,看到 Spring Boot 启动日志,没有报错即表示后端服务已启动(默认端口 8080)。

四、前端启动(Vue)
前端项目位于 front-me 目录,使用 VS Code 打开。
### 4.1 安装依赖
```bash
npm install
# 或简写 npm i
```
### 4.2 启动开发服务
```bash
npm run serve
```
启动后,终端会显示访问地址,默认是 http://localhost:8051/。
### 4.3 验证
在浏览器打开 http://localhost:8051/,如果看到登录/注册页面,说明前后端联调成功:

---
## 五、系统初始化 & 数据重置
项目启动后,**首次使用需要初始化系统数据**。如果中途想清空所有数据重新开始,可以:
1. 删除项目中的本地数据文件(通常为 H2 数据库文件或 JSON 存储文件),位置如下:

(具体文件名视项目而定,可能为 .db 或 .data 等)
2. 重新执行 第 2.3 节 的合约部署操作(重新部署 SealAccount 合约,并传入用户地址)。
3. 重启后端和前端服务,系统即恢复初始状态。
六、业务流程 & 使用说明
系统的基本业务流程非常清晰:
1. 注册 — 用户通过前端页面注册,前端有正则校验(手机号/邮箱/密码强度)。
2. 登录 — 登录后获取 token,后续请求携带身份。
3. 文件签署 — 上传文件,调用合约进行签署上链,生成签署记录。
4. 验证签署 — 输入文件哈希或签署编号,从链上查询签署信息,验证真伪。
> 前端页面已包含完整的注册登录校验逻辑,如需调整正则规则(如手机号格式、密码长度),可直接修改 front-me 中的相关表单验证代码。
七、踩坑记录 & 小贴士
- JDK 版本:务必使用 JDK 14,过高或过低可能导致 FISCO BCOS 依赖的 javassist 等库不兼容。
- Node.js 版本:16.14.2 是我实测稳定的版本,16.x 以上均可,但不要用 18+ 以免 node-sass 报错。
- WeBASE-Front 端口:如果启动失败,检查是否被占用,或修改 application.yml 中的 server.port。
- 合约部署参数:传入用户地址时,注意地址格式必须是 0x... 且不带换行,部署前先在“测试用户”中确认地址已生成。
- 跨域问题:后端 Spring Boot 已配置 CORS,若前端请求失败,检查 application.yml 中的 cors.allowed-origins 是否包含前端地址。
八、总结
整个搭建过程虽涉及多个组件,但官方文档成熟,社区活跃,跟着步骤走基本能顺利跑通。联盟链 + 存证应用的组合非常适合电子合同、版权保护等场景。