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

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file cdklabs.cdk-hyperledger-fabric-network-0.8.50.tar.gz.

File metadata

File hashes

Hashes for cdklabs.cdk-hyperledger-fabric-network-0.8.50.tar.gz
Algorithm Hash digest
SHA256 353ebd0f0306b6e965d944f6573860349c10a39f1ed9a7e9cabf6dd75ed67849
MD5 16181dcb5c4fe3ac552344cb5049b730
BLAKE2b-256 f628e237cfe511c4df3a20792837e1af20a05dce74ef2a20c2d68f6eea55d807

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cdklabs.cdk_hyperledger_fabric_network-0.8.50-py3-none-any.whl
Algorithm Hash digest
SHA256 c2d4a731a603c9a74c75a6d661cd52077e9ddb4086c4056d0d9870b0d3d80f33
MD5 f87d0d69c693b3493bf623af5b04dcce
BLAKE2b-256 809e47f23dae5b15c1353333c6b4c544846d89e92ba05253ea496f70c5c99aca

See more details on using hashes here.

Supported by

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