Skip to main content

CDK construct to deploy a Hyperledger Fabric network running on Amazon Managed Blockchain

Project description

Hyperledger Fabric on Amazon Managed Blockchain

license release npm:version PyPi:version Maven:version NuGet:version

This repository contains a CDK construct to deploy a Hyperledger Fabric network running on Amazon Managed Blockchain. It builds out a member and its nodes, a VPC and associated endpoint to access them, and a set of users enrolled on the network.

The following functionality is planned for future releases:

  • Create channels on nodes
  • Instantiate chaincode on nodes

Installation

Note that this construct requires AWS CDK v2.

JavaScript

npm install --save @cdklabs/cdk-hyperledger-fabric-network

Python

pip3 install cdklabs.cdk-hyperledger-fabric-network

Java

Add the following to pom.xml:

<dependency>
  <groupId>io.github.cdklabs</groupId>
  <artifactId>cdk-hyperledger-fabric-network</artifactId>
</dependency>

.NET

dotnet add package Cdklabs.CdkHyperledgerFabricNetwork

Usage

A minimally complete deployment is shown below. By default, a standard network will be created running Hyperledger Fabric 1.4 with a single bc.t3.small node.

import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { HyperledgerFabricNetwork } from '@cdklabs/cdk-hyperledger-fabric-network';

class MyStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);
    new HyperledgerFabricNetwork(this, 'Example', {
      networkName: 'MyNetwork',
      memberName: 'MyMember',
    });
  }
}

The equivalent Python code is as follows:

from aws_cdk import Stack
from cdklabs.cdk_hyperledger_fabric_network import HyperledgerFabricNetwork

class MyStack(Stack):
    def __init__(self, scope, id, **kwargs):
        super().__init__(scope, id, **kwargs)
        HyperledgerFabricNetwork(
            self, 'Example',
            network_name='MyNetwork',
            member_name='MyMember',
        )

The following is a more complex instantiation illustrating some of the options available.

new HyperledgerFabricNetwork(this, 'Example', {
  networkName: 'MyNetwork',
  networkDescription: 'This is my Hyperledger Fabric network',
  memberName: 'MyMember',
  networkDescription: 'This is my Hyperledger Fabric member',
  frameworkVersion: hyperledger.FrameworkVersion.VERSION_1_2,
  proposalDurationInHours: 48,
  thresholdPercentage: 75,
  nodes: [
    {
      availabilityZone: 'us-east-1a',
      instanceType: hyperledger.InstanceType.STANDARD5_LARGE,
    },
    {
      availabilityZone: 'us-east-1b',
      instanceType: hyperledger.InstanceType.STANDARD5_LARGE,
    },
  ],
  users: [
    { userId: 'AppUser1', affilitation: 'MyMember' },
    { userId: 'AppUser2', affilitation: 'MyMember.department1' },
  ],
});

See the API Documentation for details on all available input and output parameters.

References

Contributing

Pull requests are welcomed. Please review the Contributing Guidelines and the Code of Conduct.

Security

See CONTRIBUTING for more information.

Authors

License

This project is licensed under the MIT-0 License. See the LICENSE file for details.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

File details

Details for the file cdklabs_cdk_hyperledger_fabric_network-0.8.724.tar.gz.

File metadata

File hashes

Hashes for cdklabs_cdk_hyperledger_fabric_network-0.8.724.tar.gz
Algorithm Hash digest
SHA256 822f3253bc6c14d11e95df8939172aa12976930414e65691f9f35ff161c74eef
MD5 af36a448892977057cad65f6d42523d6
BLAKE2b-256 5c9dd8fad2f93ee707226ca570ec7ae37325f7123e7145471f33ac4c2e691f20

See more details on using hashes here.

File details

Details for the file cdklabs.cdk_hyperledger_fabric_network-0.8.724-py3-none-any.whl.

File metadata

File hashes

Hashes for cdklabs.cdk_hyperledger_fabric_network-0.8.724-py3-none-any.whl
Algorithm Hash digest
SHA256 8b5b75e9be1b544a00d0a0e3d15a249e039e64cb1d532bf58ca77f677017f466
MD5 5b6faaa85d7d100fdc3a5206f5f1cad8
BLAKE2b-256 be64bf9bdf131c2b6d77fd4c66de8e018c470a1a4ccccceb989b625c2bd8f477

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page