132 lines
3.4 KiB
Markdown
132 lines
3.4 KiB
Markdown
|
|
# FISCO BCOS 合约开发项目
|
|||
|
|
|
|||
|
|
## 项目简介
|
|||
|
|
|
|||
|
|
这是一个基于 FISCO BCOS 区块链平台的 Java 开发项目,提供了与 FISCO BCOS 区块链交互的完整示例代码。项目包含账户管理、智能合约部署和调用等核心功能,适合作为 FISCO BCOS 应用开发的学习和实践基础。
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- **编程语言**: Java
|
|||
|
|
- **构建工具**: Gradle
|
|||
|
|
- **区块链平台**: FISCO BCOS
|
|||
|
|
- **核心依赖**:
|
|||
|
|
- FISCO BCOS Java SDK 2.9.1
|
|||
|
|
- SLF4J 日志框架
|
|||
|
|
|
|||
|
|
## 主要功能
|
|||
|
|
|
|||
|
|
### 1. 账户管理
|
|||
|
|
- **账户生成**: 支持生成 ECDSA 和国密 SM 两种加密类型的区块链账户
|
|||
|
|
- **PEM 格式**: 账户以 PEM 格式存储,包含私钥、公钥和地址信息
|
|||
|
|
- **账户加载**: 支持从 PEM 文件加载已有账户
|
|||
|
|
- **多账户管理**: 可批量生成和管理多个用户账户
|
|||
|
|
|
|||
|
|
### 2. 智能合约交互
|
|||
|
|
- HelloWorld 智能合约示例
|
|||
|
|
- 合约部署和调用演示
|
|||
|
|
- 支持使用指定账户与合约交互
|
|||
|
|
|
|||
|
|
### 3. 区块链节点连接
|
|||
|
|
- 配置化的节点连接管理
|
|||
|
|
- 支持多种加密类型(ECDSA / 国密 SM)
|
|||
|
|
- 证书和密钥管理
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
contract/
|
|||
|
|
├── account/ # 生成的账户文件目录 (PEM 格式)
|
|||
|
|
├── conf/ # 配置文件目录
|
|||
|
|
├── fisco/ # FISCO BCOS 相关文件
|
|||
|
|
├── src/
|
|||
|
|
│ └── main/
|
|||
|
|
│ └── java/
|
|||
|
|
│ └── com/org/fisco/
|
|||
|
|
│ ├── AccountGenerator.java # 账户生成工具
|
|||
|
|
│ ├── HelloWorld.java # HelloWorld 合约示例
|
|||
|
|
│ ├── HelloWorldWithAccount.java # 带账户的合约调用示例
|
|||
|
|
│ └── BcosSDKTest.java # SDK 测试类
|
|||
|
|
├── build.gradle # Gradle 构建配置
|
|||
|
|
└── README.md # 项目说明文档
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 前置要求
|
|||
|
|
|
|||
|
|
- JDK 8 或更高版本
|
|||
|
|
- Gradle 6.0 或更高版本
|
|||
|
|
- FISCO BCOS 区块链节点(运行中)
|
|||
|
|
|
|||
|
|
### 安装与构建
|
|||
|
|
|
|||
|
|
1. 克隆项目到本地
|
|||
|
|
2. 配置区块链节点连接信息(在 `conf` 目录下)
|
|||
|
|
3. 构建项目:
|
|||
|
|
```bash
|
|||
|
|
./gradlew build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 运行账户生成工具
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
./gradlew run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
该命令会运行 `AccountGenerator` 主类,自动生成示例账户并保存到 `account` 目录。
|
|||
|
|
|
|||
|
|
生成的账户包括:
|
|||
|
|
- user_pem.pem
|
|||
|
|
- alice.pem
|
|||
|
|
- bob.pem
|
|||
|
|
- charlie.pem
|
|||
|
|
|
|||
|
|
## 使用说明
|
|||
|
|
|
|||
|
|
### 生成账户
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
import com.org.fisco.AccountGenerator;
|
|||
|
|
import org.fisco.bcos.sdk.model.CryptoType;
|
|||
|
|
|
|||
|
|
// 生成 ECDSA 类型账户
|
|||
|
|
AccountGenerator.generatePEMAccount("myAccount", CryptoType.ECDSA_TYPE);
|
|||
|
|
|
|||
|
|
// 生成国密 SM 类型账户
|
|||
|
|
AccountGenerator.generatePEMAccount("myAccount", CryptoType.SM_TYPE);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 加载账户
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
// 从 PEM 文件加载账户
|
|||
|
|
CryptoKeyPair keyPair = AccountGenerator.loadPEMAccount("account/alice.pem", CryptoType.SM_TYPE);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
项目配置文件位于 `conf` 目录,主要包括:
|
|||
|
|
- 节点连接配置
|
|||
|
|
- 证书文件
|
|||
|
|
- 群组配置
|
|||
|
|
- 加密类型配置
|
|||
|
|
|
|||
|
|
## 开发环境
|
|||
|
|
|
|||
|
|
- IDE: IntelliJ IDEA(推荐)
|
|||
|
|
- 操作系统: macOS / Linux / Windows
|
|||
|
|
- Java 版本: JDK 8+
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
本项目采用开源许可证发布。
|
|||
|
|
|
|||
|
|
## 相关资源
|
|||
|
|
|
|||
|
|
- [FISCO BCOS 官方文档](https://fisco-bcos-documentation.readthedocs.io/)
|
|||
|
|
- [FISCO BCOS Java SDK 文档](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/sdk/java_sdk/index.html)
|
|||
|
|
|
|||
|
|
## 贡献
|
|||
|
|
|
|||
|
|
欢迎提交 Issue 和 Pull Request 来改进这个项目。
|