The fabric-shim
provides the chaincode interface, a lower level API for implementing "Smart Contracts". It also currently provides the implementation to support communication with Hyperledger Fabric peers for Smart Contracts written using the fabric-contract-api
. To confirm that this is the same as the fabric-shim
in previous versions of Hyperledger Fabric.
Detailed explanation on the concept and programming model can be found here: http://hyperledger-fabric.readthedocs.io/en/latest/chaincode.html.
Chaincode Interface
Installation
npm install --save fabric-shim
Usage
The chaincode interface contains two methods to be implemented:
const shim = require('fabric-shim');
const Chaincode = class {
async Init(stub) {
await stub.putState(key, Buffer.from(aStringValue));
return shim.success(Buffer.from('Initialized Successfully!'));
}
async Invoke(stub) {
let oldValue = await stub.getState(key);
let newValue = oldValue + delta;
await stub.putState(key, Buffer.from(newValue));
return shim.success(Buffer.from(newValue.toString()));
}
};
Start the chaincode process and listen for incoming endorsement requests:
shim.start(new Chaincode());
API Reference
Visit fabric-shim.github.io and click on "Classes" link in the navigation bar on the top to view the list of class APIs.
Support
Tested with node.js 8.9.0 (LTS).
License
This package is distributed under the
Apache License, Version 2.0,
see LICENSE.txt for more information.