# 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` 目录,主要包括: - 节点连接配置 - 证书文件 - 群组配置 - 加密类型配置 将SDK证书拷贝到Java SDK的示例如下(这里假设SDK证书位于~/fisco/nodes/127.0.0.1/sdk目录)