Skip to content

v2.2.4

Compare
Choose a tag to compare
@harrisob harrisob released this 09 Dec 14:41
4750be6

This v2.2.4 release is the long-term support (LTS) release of the fabric-node-sdk packages that support Fabric 2.x, and supersedes previous v2.2.x releases. Please see the Fabric LTS release strategy document for more information on LTS releases:

https://github.com/hyperledger/fabric-rfcs/blob/master/text/0005-lts-release-strategy.md

If migrating a client application from an earlier version of the API, consult the migration tutorial for details of potentially breaking changes and recommended actions:

https://hyperledger.github.io/fabric-sdk-node/master/tutorial-migration.html

new features of 2.2.4

  • The fabric-network HSM wallet provider will now save HSM private key
    handles to provide access to HSM identities across sessions. The PKCS11 key
    implementation has been updated to return the string representation of the
    HSM private key handle when requesting the private key.
    To save an HSM identity:
        // enroll as usual
        const enrollmentResults = await hsmCAClient.enroll(options);
        // from the enrollment results get the info to save
        const identity: HsmX509Identity = {
           credentials: {
             certificate: enrollmentResults.certificate,
             privateKey: enrollmentResults.key.toBytes()
           },
           mspId: 'org1',
           type: 'HSM-X.509'
        };
        await wallet.put('bob', identity);
  • The fabric-network query handlers will now include the chaincode result (payload)
    in the error object when a chaincode query fails (transaction.evaluate()) and
    the non "200" success status of the chaincode response includes a payload.
    To see the payload and status:
        try {
          const results = transaction.evaluate(arg1);
        } catch(error) {
          console.log('Chaincode results:' + error.payload.toString());
          console.log('Chaincode error status:' + error.status);
        }
  • Fabric legacy system chaincodes may now be used when the gateway is connected using
    the discovery service. The performance enhancement to seed endorsements and
    queries only to peers that the discovery service has indicated are running the
    requested chaincode will not apply to system chaincodes 'cscc', 'lscc', and 'qscc'.
    The discovery service does not show these legacy system chaincodes because they
    do not have endorsement policies.

Major changes from v1.4:

  • The fabric-client package has been removed. Client applications should use the Fabric Programming Model APIs from the fabric-network package.
  • The underlying APIs that interface with the gRPC layer have been reimplemented in the fabric-common package and should not be used directly by client applications.
  • Simplified wallet management, which is portable across SDK languages and with pluggable persistent storage. More information can be found here: https://hyperledger.github.io/fabric-sdk-node/master/tutorial-wallet.html
  • New eventing implementation in fabric-network. Client application code can listen for block events using Network.addBlockListener(), and listen for contract events using Contract.addContractListener(). The Network object also provides capability to listen for transaction commit events, specifically to support the implementation of custom event handlers. More information can be found here: https://hyperledger.github.io/fabric-sdk-node/master/tutorial-transaction-commit-events.html