2026-02-09 17:57:17 +08:00
2026-02-09 17:45:06 +08:00
2026-02-09 17:45:06 +08:00
2026-02-09 17:45:06 +08:00
2026-02-09 17:45:06 +08:00
2026-02-09 17:56:39 +08:00
2026-02-09 17:57:17 +08:00
2026-02-09 17:45:06 +08:00
2026-02-09 17:45:06 +08:00
2026-02-09 17:45:06 +08:00
2026-02-09 17:45:06 +08:00
2026-02-09 17:56:39 +08:00
2026-02-09 17:45:06 +08:00

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. 构建项目:
    ./gradlew build
    

运行账户生成工具

./gradlew run

该命令会运行 AccountGenerator 主类,自动生成示例账户并保存到 account 目录。

生成的账户包括:

  • user_pem.pem
  • alice.pem
  • bob.pem
  • charlie.pem

使用说明

生成账户

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);

加载账户

// 从 PEM 文件加载账户
CryptoKeyPair keyPair = AccountGenerator.loadPEMAccount("account/alice.pem", CryptoType.SM_TYPE);

配置说明

项目配置文件位于 conf 目录,主要包括:

  • 节点连接配置
  • 证书文件
  • 群组配置
  • 加密类型配置 将SDK证书拷贝到Java SDK的示例如下(这里假设SDK证书位于~/fisco/nodes/127.0.0.1/sdk目录)
Description
No description provided
Readme 149 KiB
Languages
Java 91%
PowerShell 5.3%
Shell 3.7%