Skip to content

yahoo/state-space-fabric-sdk-cxx

Repository files navigation

Hyperledger Fabric C++ API for State Space

This repository contains a C++ API for use with Hyperledger Fabric. The implementation herein is optimized to perform with Hyperledger Fabric v1.4. That is the core dependency of the State Space reference implementation of the IAB PrivacyChain Technology Specification.

The main body of documentation for the State Space reference implementation of the IAB PrivacyChain Technology Specification can be found with the packaging. The overview and administrative declarations herein are necessarily summary in nature. The declarations and definitions in the packaging area are complete and should be interpreted as superceding these when the two are in conflict.

This repo supports the State Space reference implementation of the IAB PrivacyChain Technology Specification.

A summary overview is as follows:

  • IAB PrivacyChain, contains
    • Specification Documents
    • Runbooks, Operation Documents
    • Project Governance Documents
    • Reference Design
  • State Space reference implementation of the IAB PrivacyChain Technology Specification
  • Hyperledger Fabric, the upstream.

Table of Contents

Background

The Hyperledger Fabric project provides a wide range of components to support its feature-rich operations. This repo contributes a C++ (C++20) client for use with Hyperledger Fabric v1.4..

The client library provided here contains general access capabilites for the Hyperledger Fabric database. It is expected that this client will be used with the State Space reference implementation of the IAB PrivacyChain Technology Specification. Further details about that system can be found with the overview of the State Space project.

Dependencies

The configuration step will check for many but not all required packages and operating system features. There is a list of known package-dependencies which you will need to install beyond your base operating system.

Generally, the dependencies are among:

  • The Hyperledger Fabric database and its Public Key Infrastructure (PKI) services.
  • Various components of the Tunitas system; e.g. the Basic Components.
  • A modern (C++2a) development environment.
  • A recent Fedora, but any recent Linux distro should suffice.

The State Space project was developed on Fedora 27 through Fedora 30 using GCC 7 and GCC 8 with -fconcepts and at least -std=c++1z. More details on the development environment and the build system can be found in temerarious-flagship.

Installation

You may install this repo and its dependents by running the following command:

git clone https://github.com/yahoo/hyperledger-fabric-sdk-c++.git

This will create a directory called hyperledger-fabric-sdk-c++ and download the contents of this repo to it.

You may find that your organization or your operating system does not allow punctuation in repository names. The available resource may therefore be named hyperledger-fabric-sdk-cxx. Use your good judgement.

The expected application for the hyperledger-fabric-sdk-c++ repo is as a submodule of a larger build of the State Space reference implementation of IAB PrivacyChain Technology Specification. The configuration, build, and installation intructions herein pertain only to maintenance operations on this repository. The configuration steps for the full project are with the State Space packaging.

The customary installation location for Hyperledger Fabric is /opt/hyperledger/fabric but you may configure the build to use some other location.

Configuration

The build system is based upon GNU Autotools.

The configuration of the repo consists of two steps which must be done once.

  1. ./buildconf
  2. ./configure

The first step performs some crude assessments of the build environment and creates the site-specific configure'. Of course configure --helpwill explain the build options. The general options toconfigure` are widely documented.

The buildconf component is boilerplate and can be updated from temerarious-flagship as needed. The Tunitas Build System should be available in /opt/tunitas and the template at /opt/tunitas/share/temerarious-flagship/bc/template.autotools-buildconf

Build

The simplest configure-compile-install recipe is:

./buildconf &&
./configure &&
make all &&
make check &&
make install &&
echo OK DONE

Usage

This package produces libraries (a.k.a. a software development kit). It must be used with other components to make a complete system.

The packaging contains more detail on how to build the whole system as well as instructions for packaging and deployment of such a system not bare metal or in containers.

Security

This project does not have any specific security concerns. As always, the integrity of the build process is a requirement for the integrity in the deployment and operations phases.

The documentation on the Security Model of Hyperledger Fabric should be consulted prior to deployment. Additional background information on the Certificate Authority system of Hyperledger Fabric (v1.4) can be found in the general documentation.

As always, before you deploy code into a production-facing environment you should review access and capability grants which have been established for your installation.

Please refer to the overall Security Notice in the lead repo of the State Space Project.

Contribute

Please refer to contribution instructions for information about how to get involved. We welcome issues, questions, and pull requests. Pull Requests are welcome.

Current work with modern-generation tooling, e.g. circa Fedora 36+ and GCC 12+, is occurring around the v0.2-themed feature branches.

Maintainers

You may contact us at least at state-space@yahooinc.com

License

This project is licensed under the terms of the Apache 2.0 open source license. Please refer to LICENSE for the full terms.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published