Skip to content

hyperledger/fabric-chaincode-java

Folders and files

NameName
Last commit message
Last commit date
May 23, 2024
Jan 13, 2023
Mar 19, 2021
Sep 23, 2024
Sep 23, 2024
Sep 23, 2024
Sep 23, 2024
Sep 23, 2024
Dec 9, 2022
Jan 24, 2020
Jul 1, 2024
Dec 7, 2023
Jan 6, 2020
Apr 5, 2018
Dec 7, 2023
Dec 7, 2023
Apr 5, 2018
Jun 28, 2024
Jul 1, 2024
May 23, 2024
Dec 7, 2023
Mar 12, 2021
Sep 23, 2024
Feb 27, 2024
Feb 27, 2024
Jul 15, 2022

Repository files navigation

Hyperledger Fabric Chaincode Java

Build Status Maven Central Discord

This is a Java based implementation of Hyperledger Fabric chaincode shim APIs, which enables development of smart contracts using the Java language.

This project creates fabric-chaincode-shim jar files for developers' consumption and the hyperledger/fabric-javaenv docker image to run Java chaincode.

Getting Started

Application developers interested in developing Java smart contracts for Hyperledger Fabric should read the JavaDoc which includes download information, and links to documentation and samples.

Project structure

fabric-chaincode-shim

Contains the java shim classes that define Java chaincode API and way to communicate with Fabric peers.

fabric-chaincode-docker

Contains instructions to build the hyperledger/fabric-javaenv docker image.

fabric-chaincode-integration-test

Contains higher level tests for Java chaincode.

Note: in the future these should be replaced with a separate suite of Cucumber tests which run against all chaincode implementations.

examples

The following technical examples are in this repository. Please see the tutorials in the documentation

  • fabric-contract-example-gradle - Contains an example Java contract built using gradle
  • fabric-contract-example-maven - Contains an example Java contract built using maven
  • fabric-contract-example-gradle-kotlin - Contains an example Kotlin contract build using gradle (Kotlin gradle files)
  • fabric-chaincode-example-sacc - Contains an example java chaincode gradle project that includes sample chaincode and basic gradle build instructions.
  • fabric-chaincode-example-sbe - Contains an example java chaincode gradle project that includes state based endorsement

'dev' main branch builds

These 'dev' drivers are built from the main branch only, and have a version format including the date for example 2.3.1.dev.20210303. They are published to Artifactory. These can be accessed via the repository at

    maven {
        url "https://hyperledger.jfrog.io/hyperledger/fabric-maven"
    }

They can be accessed in a build file like this

dependencies {
    compile group: 'org.hyperledger.fabric-chaincode-java', name: 'fabric-chaincode-shim', version: '2.3.1.dev.+'
 }

Building and testing

Make sure you have the following prereqs installed:

Note: Java can be installed using sdkman.

Clone the repository if you haven't already.

git clone https://github.com/hyperledger/fabric-chaincode-java.git

Build java shim jars (proto and shim jars) and install them to local maven repository.

cd fabric-chaincode-java
./gradlew clean build install

Note: ./gradlew clean build classes can be used instead to reduce the binaries that are built. This should be sufficient for using the local repository.

Build javaenv docker image, to have it locally.

./gradlew buildImage

Compatibility

For details on what Java runtime and versions of Hyperledger Fabric can be used please see the compatibility document.


Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License