This is a Java based implementation of Hyprledger Fabric chaincode shim APIs, which enables development of smart contracts using the Java language.
This project creates fabric-chaincode-protos
and fabric-chaincode-shim
jar
files for developers' consumption and the hyperledger/fabric-javaenv
docker image
to run Java chaincode.
Application developers interested in developing Java smart contracts for Hyperledger Fabric should read the JavaDoc which inludes download information, and links to documentation and samples.
Contains the protobuf definition files used by Java shim to communicate with Fabric peers.
Contains the java shim classes that define Java chaincode API and way to communicate with Fabric peers.
Contains instructions to build the hyperledger/fabric-javaenv
docker image.
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.
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
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
This work is licensed under a Creative Commons Attribution 4.0 International License