Re: [Hyperledger Project TSC] Go Client SDK Announcement

Brian Behlendorf

I would support that.  Is the proposal on the proposals page ready for a formal vote, or did you just want some open discussion on it there?

In general I would like to see us move to a mode where the different SDK projects are each full projects within HL, at the same level as the others, with their own maintainers and roadmap, etc.  That would allow us to build diverse communities for each, rather than embedded as an informal "subproject" within e.g. Fabric, which could lend towards a smaller number of people being involved and responsible.  It also opens the door, if this is the right thing to do, for the SDK to connect to other frameworks - not a requirement, but a possibility once separated.  So that would mean Go, Python, Node, Java SDK projects for Fabric.  We could even consider the same thing for Iroha's clients.  Perhaps that's worth talking about this week.

Thanks for the contribution and discussion, Aleksandar.


On 03/13/2017 11:08 AM, Aleksandar Likic via hyperledger-tsc wrote:



Can this be on the agenda of the next TSC meeting?



Aleksandar Likic

SecureKey Technologies Inc.


From: <hyperledger-tsc-bounces@...> on behalf of Aleksandar Likic via hyperledger-tsc <hyperledger-tsc@...>
Reply-To: Aleksandar Likic <aleksandar.likic@...>
Date: Friday, March 10, 2017 at 11:43 AM
To: "hyperledger-tsc@..." <hyperledger-tsc@...>
Subject: [Hyperledger Project TSC] Go Client SDK Announcement


This is an announcement of the Go Client SDK proposal to the Hyperledger community. The proposal is already posted to


We propose implementation of Hyperledger Fabric SDK Design Specification v1.0 with extensions in the Go language. At the moment, there is no publicly available implementation of the Fabric SDK written in Go. We propose to enable both Fabric Clients and Peers to use this SDK.


The primary motivation is to allow programs written in Go to interact with the Hyperledger Fabric as clients, as per the Hyperledger Fabric SDK Design Specification v1.0 at


In addition, some of the new Fabric features require extensions to the Client SDK Specification. We are planning to implement client support for these features and extensions in the Fabric Go SDK, and also contribute to the Fabric client specification.


Some of the new Fabric features that require changes to the Client SDK Specification are:

-          ChainCode creating transactions - - Ability to create and synchronously execute a new Fabric transaction from user ChainCode.

-          Client Request Broadcast to Specified Subledgers - - Ability to broadcast a TP Request to multiple subledgers at once.

-          Self-Signed TCerts - - Ability for the Client SDK to generate self-signed TCerts.

-          Handling of Sensitive Data - - Ability to mark transactions parameters as “sensitive”.

-          Append Only Endorsement - - Ability to have endorsements from peers that are not part of the target channel.

-          Light Chaincode Event - - Ability to send a chaincode event to client without committing a transaction.


We propose to host the Go Client SDK code at The repository would have the following branches:

-          master – implementation that is fully compliant with the Client SDK Specification, without non-standard extensions

-          extensions – branch with non-standard extensions.


SecureKey is currently mirroring its internal gerrit fabric-sdk-go repository at Implementation currently covers all functions present at the moment in Node.JS Client SDK ( except chaincode deployment and chain initialization. We are using this implementation in our development activities. We are planning to eventually implement the full Client SDK Specification, and also plan to keep it up to date with future SDK changes. As it already implements most SDK features, we expect that it will be used for new development by others whose language of choice is Go.


Aleksandar Likic

SecureKey Technologies Inc.


hyperledger-tsc mailing list

Brian Behlendorf
Executive Director, Hyperledger
Twitter: @brianbehlendorf

Join to automatically receive all group messages.