Uploaded image for project: 'Fabric'
  1. Fabric
  2. FAB-11460

.NET Chaincode Shim

    Details

    • Type: Epic
    • Status: Backlog (View Workflow)
    • Priority: Medium
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Epic Name:
      net-shim
    • SDK Impact:
      Yes
    • Design Status:
      Not Required
    • Function Test Status:
      Required
    • Documentation Status:
      Required
    • Sample/Tutorial:
      Required
    • Current Status:
      Working Prototype and Samples are available, Code needs some more work & refactoring, Docs and a tutorialt
    • Design:
      (Please add high level design or a link to the design)
    • Usage:
      (Please add usage information)

      Description

      I want to propose a new Chaincode Shim written as a .NET Standard Library which allows writing Hyperledger Fabric Chaincode in C# or F#. I've already started the implementation, the repo is here https://github.com/thinktecture/fabric-chaincode-netcore, and a NuGet is available there https://www.nuget.org/packages/Thinktecture.HyperledgerFabric.Chaincode The implementation is based on HLF 1.2, so it's currently working with that version. The implementation has the same API surface as the other shims. The codebase itself is unit tested (not yet integration tested), coverage around 90 % using the same test values as the Node.js version. I've also included two samples, a very simple AssetHolding and the FabCar sample.
      Additionally, within the repo, there's a modified fabric-ccenv which includes the .NET Core Runtime to run the Chaincode Shim. So far, the chaincode has to be called with language "node" to get it installed and running.

      I'd love to contribute to HLF and enhance to further, so HLF will officially support C# Chaincode. The motivation behind the new shim is that our customers are mostly .NET developers. The .NET shim enables them to use their existing C#/F# knowledge, develop chaincode for HLF and can enhance their products/applications with Blockchain technology - if needed.

      The library itself is a .NET Standard Library. It can be used with .NET Core (which allows running on Linux, macOS and Windows - therefore it's compatible with fabric-ccenv docker) as well as the full .NET Framework 4.6.1+.

      If .NET is relevant for HLF, I would also be available for contributing a .NET SDK as well. Haven't started on this yet, since I want to get some feedback on .NET@HLF in general before starting a bigger port of the SDK.

        Attachments

          Issue Links

            Activity

              Toggl

              Enter your Toggl API token
              Mark as billable
              Apply JIRA issue labels


              {{ currentTimer.description|limitTo:35 }}...
              {{hours}} hour{{hoursS}}, {{minutes}} minute{{minutesS}}, {{seconds}} second{{secondsS}}

                People

                • Assignee:
                  tkuhrt Tracy Kuhrt
                  Reporter:
                  ManuelRauber Manuel Rauber
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  8 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Git Source Code