Skip to content

Latest commit

 

History

History
1479 lines (882 loc) · 59.4 KB

File metadata and controls

1479 lines (882 loc) · 59.4 KB

API Reference

Constructs

HyperledgerFabricClient

Creates a VPC and endpoint that allows Hyperledger Fabric client to interact with the Hyperledger Fabric endpoints that Amazon Managed Blockchain exposes for the member and network resources.

Initializers

import { HyperledgerFabricClient } from '@cdklabs/cdk-hyperledger-fabric-network'

new HyperledgerFabricClient(scope: HyperledgerFabricNetwork, id: string, props?: HyperledgerFabricClientProps)
Name Type Description
scope HyperledgerFabricNetwork No description.
id string No description.
props HyperledgerFabricClientProps No description.

scopeRequired

idRequired
  • Type: string

propsOptional

Methods

Name Description
toString Returns a string representation of this construct.

toString
public toString(): string

Returns a string representation of this construct.

Static Functions

Name Description
isConstruct Checks if x is a construct.

isConstruct
import { HyperledgerFabricClient } from '@cdklabs/cdk-hyperledger-fabric-network'

HyperledgerFabricClient.isConstruct(x: any)

Checks if x is a construct.

xRequired
  • Type: any

Any object.


Properties

Name Type Description
node constructs.Node The tree node.
vpc aws-cdk-lib.aws_ec2.IVpc The client VPC that has endpoint to access the Amazon Managed Blockchain.
vpcEndpoint aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint Managed Blockchain network VPC endpoint.

nodeRequired
public readonly node: Node;
  • Type: constructs.Node

The tree node.


vpcRequired
public readonly vpc: IVpc;
  • Type: aws-cdk-lib.aws_ec2.IVpc

The client VPC that has endpoint to access the Amazon Managed Blockchain.


vpcEndpointRequired
public readonly vpcEndpoint: InterfaceVpcEndpoint;
  • Type: aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint

Managed Blockchain network VPC endpoint.


HyperledgerFabricNetwork

Creates a Hyperledger Fabric network on Amazon Managed Blockchain.

Initializers

import { HyperledgerFabricNetwork } from '@cdklabs/cdk-hyperledger-fabric-network'

new HyperledgerFabricNetwork(scope: Construct, id: string, props: HyperledgerFabricNetworkProps)
Name Type Description
scope constructs.Construct No description.
id string No description.
props HyperledgerFabricNetworkProps No description.

scopeRequired
  • Type: constructs.Construct

idRequired
  • Type: string

propsRequired

Methods

Name Description
toString Returns a string representation of this construct.

toString
public toString(): string

Returns a string representation of this construct.

Static Functions

Name Description
isConstruct Checks if x is a construct.

isConstruct
import { HyperledgerFabricNetwork } from '@cdklabs/cdk-hyperledger-fabric-network'

HyperledgerFabricNetwork.isConstruct(x: any)

Checks if x is a construct.

xRequired
  • Type: any

Any object.


Properties

Name Type Description
node constructs.Node The tree node.
adminPasswordSecret aws-cdk-lib.aws_secretsmanager.Secret Secret ARN for the Hyperledger Fabric admin password.
adminPrivateKeySecret aws-cdk-lib.aws_secretsmanager.Secret Secret for Hyperledger Fabric admin private key.
adminSignedCertSecret aws-cdk-lib.aws_secretsmanager.Secret Secret for Hyperledger Fabric admin signed certificate.
caEndpoint string Managed Blockchain member CA endpoint.
client HyperledgerFabricClient The client network to interact with the Hyperledger Fabric network.
enableCaLogging boolean The configuration to enable or disable certificate authority logging.
enrollAdmin boolean Configuration to enable/disable admin user enrollment.
frameworkVersion FrameworkVersion Hyperledger Fabric framework version.
memberDescription string Managed Blockchain member description.
memberId string Managed Blockchain member identifier generated on construction.
memberName string Managed Blockchain member name.
networkDescription string Managed Blockchain network description.
networkEdition NetworkEdition Managed Blockchain network edition.
networkId string Managed Blockchain network identifier generated on construction.
networkName string Managed Blockchain network name.
nodes HyperledgerFabricNode[] List of nodes created in the network.
ordererEndpoint string Managed Blockchain network ordering service endpoint.
proposalDurationInHours number The duration from the time that a proposal is created until it expires.
thresholdComparator ThresholdComparator Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved.
thresholdPercentage number The percentage of votes among all members that must be yes for a proposal to be approved.
users HyperledgerFabricUser[] List of users registered with CA.
vpcEndpointServiceName string Managed Blockchain network VPC endpoint service name.

nodeRequired
public readonly node: Node;
  • Type: constructs.Node

The tree node.


adminPasswordSecretRequired
public readonly adminPasswordSecret: Secret;
  • Type: aws-cdk-lib.aws_secretsmanager.Secret

Secret ARN for the Hyperledger Fabric admin password.


adminPrivateKeySecretRequired
public readonly adminPrivateKeySecret: Secret;
  • Type: aws-cdk-lib.aws_secretsmanager.Secret

Secret for Hyperledger Fabric admin private key.


adminSignedCertSecretRequired
public readonly adminSignedCertSecret: Secret;
  • Type: aws-cdk-lib.aws_secretsmanager.Secret

Secret for Hyperledger Fabric admin signed certificate.


caEndpointRequired
public readonly caEndpoint: string;
  • Type: string

Managed Blockchain member CA endpoint.


clientRequired
public readonly client: HyperledgerFabricClient;

The client network to interact with the Hyperledger Fabric network.


enableCaLoggingRequired
public readonly enableCaLogging: boolean;
  • Type: boolean

The configuration to enable or disable certificate authority logging.


enrollAdminRequired
public readonly enrollAdmin: boolean;
  • Type: boolean

Configuration to enable/disable admin user enrollment.


frameworkVersionRequired
public readonly frameworkVersion: FrameworkVersion;

Hyperledger Fabric framework version.


memberDescriptionRequired
public readonly memberDescription: string;
  • Type: string

Managed Blockchain member description.


memberIdRequired
public readonly memberId: string;
  • Type: string

Managed Blockchain member identifier generated on construction.


memberNameRequired
public readonly memberName: string;
  • Type: string

Managed Blockchain member name.


networkDescriptionRequired
public readonly networkDescription: string;
  • Type: string

Managed Blockchain network description.


networkEditionRequired
public readonly networkEdition: NetworkEdition;

Managed Blockchain network edition.


networkIdRequired
public readonly networkId: string;
  • Type: string

Managed Blockchain network identifier generated on construction.


networkNameRequired
public readonly networkName: string;
  • Type: string

Managed Blockchain network name.


nodesRequired
public readonly nodes: HyperledgerFabricNode[];

List of nodes created in the network.


ordererEndpointRequired
public readonly ordererEndpoint: string;
  • Type: string

Managed Blockchain network ordering service endpoint.


proposalDurationInHoursRequired
public readonly proposalDurationInHours: number;
  • Type: number

The duration from the time that a proposal is created until it expires.


thresholdComparatorRequired
public readonly thresholdComparator: ThresholdComparator;

Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved.


thresholdPercentageRequired
public readonly thresholdPercentage: number;
  • Type: number

The percentage of votes among all members that must be yes for a proposal to be approved.


usersRequired
public readonly users: HyperledgerFabricUser[];

List of users registered with CA.


vpcEndpointServiceNameRequired
public readonly vpcEndpointServiceName: string;
  • Type: string

Managed Blockchain network VPC endpoint service name.


HyperledgerFabricNode

Creates a Hyperledger Fabric node on an Amazon Managed Blockchain network.

Initializers

import { HyperledgerFabricNode } from '@cdklabs/cdk-hyperledger-fabric-network'

new HyperledgerFabricNode(scope: HyperledgerFabricNetwork, id: string, props?: HyperledgerFabricNodeProps)
Name Type Description
scope HyperledgerFabricNetwork No description.
id string No description.
props HyperledgerFabricNodeProps No description.

scopeRequired

idRequired
  • Type: string

propsOptional

Methods

Name Description
toString Returns a string representation of this construct.
configureLogging Configure logging for the node via SDK call;
fetchData Populate the output properties that must be fetched via SDK call;

toString
public toString(): string

Returns a string representation of this construct.

configureLogging
public configureLogging(sdkCallPolicy: AwsCustomResourcePolicy): void

Configure logging for the node via SDK call;

this function should be merged back into the constructor once the race condition is solved

sdkCallPolicyRequired
  • Type: aws-cdk-lib.custom_resources.AwsCustomResourcePolicy

fetchData
public fetchData(dataSdkCallPolicy: AwsCustomResourcePolicy): void

Populate the output properties that must be fetched via SDK call;

this function should be merged back into the constructor once the race condition is solved

dataSdkCallPolicyRequired
  • Type: aws-cdk-lib.custom_resources.AwsCustomResourcePolicy

Static Functions

Name Description
isConstruct Checks if x is a construct.
constructNodes Build out a list of HyperledgerFabricNode constructs given a list of input property objects;

isConstruct
import { HyperledgerFabricNode } from '@cdklabs/cdk-hyperledger-fabric-network'

HyperledgerFabricNode.isConstruct(x: any)

Checks if x is a construct.

xRequired
  • Type: any

Any object.


constructNodes
import { HyperledgerFabricNode } from '@cdklabs/cdk-hyperledger-fabric-network'

HyperledgerFabricNode.constructNodes(scope: HyperledgerFabricNetwork, nodeProps?: HyperledgerFabricNodeProps[])

Build out a list of HyperledgerFabricNode constructs given a list of input property objects;

additionally checks to ensure node count is supported given the network type

scopeRequired

nodePropsOptional

Properties

Name Type Description
node constructs.Node The tree node.
availabilityZone string The Availability Zone in which the node exists.
enableChaincodeLogging boolean The configuration to enable or disable chaincode logging.
enableNodeLogging boolean The configuration to enable or disable node logging.
instanceType InstanceType The Amazon Managed Blockchain instance type for the node.
memberId string Managed Blockchain member identifier.
networkId string Managed Blockchain network identifier.
nodeId string Managed Blockchain node identifier generated on construction.
endpoint string No description.
eventEndpoint string No description.

nodeRequired
public readonly node: Node;
  • Type: constructs.Node

The tree node.


availabilityZoneRequired
public readonly availabilityZone: string;
  • Type: string

The Availability Zone in which the node exists.


enableChaincodeLoggingRequired
public readonly enableChaincodeLogging: boolean;
  • Type: boolean

The configuration to enable or disable chaincode logging.


enableNodeLoggingRequired
public readonly enableNodeLogging: boolean;
  • Type: boolean

The configuration to enable or disable node logging.


instanceTypeRequired
public readonly instanceType: InstanceType;

The Amazon Managed Blockchain instance type for the node.


memberIdRequired
public readonly memberId: string;
  • Type: string

Managed Blockchain member identifier.


networkIdRequired
public readonly networkId: string;
  • Type: string

Managed Blockchain network identifier.


nodeIdRequired
public readonly nodeId: string;
  • Type: string

Managed Blockchain node identifier generated on construction.


endpointRequired
public readonly endpoint: string;
  • Type: string

eventEndpointRequired
public readonly eventEndpoint: string;
  • Type: string

HyperledgerFabricUser

Creates custom resources to register and enroll users identities with the CA using the fabric-ca-client SDK.

Initializers

import { HyperledgerFabricUser } from '@cdklabs/cdk-hyperledger-fabric-network'

new HyperledgerFabricUser(scope: HyperledgerFabricNetwork, id: string, props: HyperledgerFabricUserProps)
Name Type Description
scope HyperledgerFabricNetwork No description.
id string No description.
props HyperledgerFabricUserProps No description.

scopeRequired

idRequired
  • Type: string

propsRequired

Methods

Name Description
toString Returns a string representation of this construct.

toString
public toString(): string

Returns a string representation of this construct.

Static Functions

Name Description
isConstruct Checks if x is a construct.

isConstruct
import { HyperledgerFabricUser } from '@cdklabs/cdk-hyperledger-fabric-network'

HyperledgerFabricUser.isConstruct(x: any)

Checks if x is a construct.

xRequired
  • Type: any

Any object.


Properties

Name Type Description
node constructs.Node The tree node.
affiliation string User's affiliation to the member.
userId string User ID registered with CA.
userPrivateKeySecret aws-cdk-lib.aws_secretsmanager.Secret Secret for user private key.
userSignedCertSecret aws-cdk-lib.aws_secretsmanager.Secret Secret for user signed certificate.

nodeRequired
public readonly node: Node;
  • Type: constructs.Node

The tree node.


affiliationRequired
public readonly affiliation: string;
  • Type: string

User's affiliation to the member.


userIdRequired
public readonly userId: string;
  • Type: string

User ID registered with CA.


userPrivateKeySecretRequired
public readonly userPrivateKeySecret: Secret;
  • Type: aws-cdk-lib.aws_secretsmanager.Secret

Secret for user private key.


userSignedCertSecretRequired
public readonly userSignedCertSecret: Secret;
  • Type: aws-cdk-lib.aws_secretsmanager.Secret

Secret for user signed certificate.


Structs

HyperledgerFabricClientProps

Construct properties for HyperledgerFabricVpc.

Initializer

import { HyperledgerFabricClientProps } from '@cdklabs/cdk-hyperledger-fabric-network'

const hyperledgerFabricClientProps: HyperledgerFabricClientProps = { ... }

Properties

Name Type Description
vpc aws-cdk-lib.aws_ec2.IVpc Client VPC to create the endpoints.

vpcOptional
public readonly vpc: IVpc;
  • Type: aws-cdk-lib.aws_ec2.IVpc

Client VPC to create the endpoints.

If not provided, VPC will be created with the default properties (CIDR-10.0.0.0/16 and subnets of type PRIVATE_ISOLATED)


HyperledgerFabricNetworkProps

Construct properties for HyperledgerFabricNetwork.

Initializer

import { HyperledgerFabricNetworkProps } from '@cdklabs/cdk-hyperledger-fabric-network'

const hyperledgerFabricNetworkProps: HyperledgerFabricNetworkProps = { ... }

Properties

Name Type Description
memberName string Managed Blockchain member name.
networkName string Managed Blockchain network name.
client HyperledgerFabricClientProps The Client network to interact with the Hyperledger Fabric network.
enableCaLogging boolean The configuration to enable or disable certificate authority logging.
enrollAdmin boolean Configuration to enable/disable enrollment of admin user.
frameworkVersion FrameworkVersion Hyperledger Fabric framework version.
memberDescription string Managed Blockchain member description.
networkDescription string Managed Blockchain network description.
networkEdition NetworkEdition Managed Blockchain network edition.
nodes HyperledgerFabricNodeProps[] List of nodes to create on the network.
proposalDurationInHours number The duration from the time that a proposal is created until it expires.
thresholdComparator ThresholdComparator Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved.
thresholdPercentage number The percentage of votes among all members that must be yes for a proposal to be approved.
users HyperledgerFabricUserProps[] List of users to register with Fabric CA Note: enrollAdmin property has to be enabled for registering users.

memberNameRequired
public readonly memberName: string;
  • Type: string

Managed Blockchain member name.


networkNameRequired
public readonly networkName: string;
  • Type: string

Managed Blockchain network name.


clientOptional
public readonly client: HyperledgerFabricClientProps;
  • Type: HyperledgerFabricClientProps
  • Default: Client network with Default properties (CIDR-10.0.0.0/16 and subnets of type PRIVATE_ISOLATED)

The Client network to interact with the Hyperledger Fabric network.


enableCaLoggingOptional
public readonly enableCaLogging: boolean;
  • Type: boolean
  • Default: true

The configuration to enable or disable certificate authority logging.


enrollAdminOptional
public readonly enrollAdmin: boolean;
  • Type: boolean
  • Default: true

Configuration to enable/disable enrollment of admin user.


frameworkVersionOptional
public readonly frameworkVersion: FrameworkVersion;

Hyperledger Fabric framework version.


memberDescriptionOptional
public readonly memberDescription: string;
  • Type: string
  • Default: Set to match member name

Managed Blockchain member description.


networkDescriptionOptional
public readonly networkDescription: string;
  • Type: string
  • Default: Set to match network name

Managed Blockchain network description.


networkEditionOptional
public readonly networkEdition: NetworkEdition;

Managed Blockchain network edition.


nodesOptional
public readonly nodes: HyperledgerFabricNodeProps[];

List of nodes to create on the network.


proposalDurationInHoursOptional
public readonly proposalDurationInHours: number;
  • Type: number
  • Default: 24 hours

The duration from the time that a proposal is created until it expires.


thresholdComparatorOptional
public readonly thresholdComparator: ThresholdComparator;

Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved.


thresholdPercentageOptional
public readonly thresholdPercentage: number;
  • Type: number
  • Default: 50 percent

The percentage of votes among all members that must be yes for a proposal to be approved.


usersOptional
public readonly users: HyperledgerFabricUserProps[];

List of users to register with Fabric CA Note: enrollAdmin property has to be enabled for registering users.


HyperledgerFabricNodeProps

Construct properties for HyperledgerFabricNode.

Initializer

import { HyperledgerFabricNodeProps } from '@cdklabs/cdk-hyperledger-fabric-network'

const hyperledgerFabricNodeProps: HyperledgerFabricNodeProps = { ... }

Properties

Name Type Description
availabilityZone string The Availability Zone in which the node will be created.
enableChaincodeLogging boolean The configuration to enable or disable chaincode logging.
enableNodeLogging boolean The configuration to enable or disable node logging.
instanceType InstanceType The Amazon Managed Blockchain instance type for the node.

availabilityZoneOptional
public readonly availabilityZone: string;
  • Type: string
  • Default: The first AZ in the region

The Availability Zone in which the node will be created.


enableChaincodeLoggingOptional
public readonly enableChaincodeLogging: boolean;
  • Type: boolean
  • Default: true

The configuration to enable or disable chaincode logging.


enableNodeLoggingOptional
public readonly enableNodeLogging: boolean;
  • Type: boolean
  • Default: true

The configuration to enable or disable node logging.


instanceTypeOptional
public readonly instanceType: InstanceType;

The Amazon Managed Blockchain instance type for the node.


HyperledgerFabricUserProps

Construct properties for HyperledgerFabricUser.

Initializer

import { HyperledgerFabricUserProps } from '@cdklabs/cdk-hyperledger-fabric-network'

const hyperledgerFabricUserProps: HyperledgerFabricUserProps = { ... }

Properties

Name Type Description
affilitation string User's affiliation to the member.
userId string User ID to register with CA.

affilitationRequired
public readonly affilitation: string;
  • Type: string

User's affiliation to the member.

Should be hierarchical with member name as root(MemberName.Dept1).


userIdRequired
public readonly userId: string;
  • Type: string

User ID to register with CA.


Enums

FrameworkVersion

Define which Hyperledger Fabric framework to use.

Members

Name Description
VERSION_1_2 No description.
VERSION_1_4 No description.
VERSION_2_2 No description.

VERSION_1_2

VERSION_1_4

VERSION_2_2

InstanceType

Supported instance types for Managed Blockchain nodes.

Members

Name Description
BURSTABLE3_SMALL No description.
BURSTABLE3_MEDIUM No description.
BURSTABLE3_LARGE No description.
BURSTABLE3_XLARGE No description.
STANDARD5_LARGE No description.
STANDARD5_XLARGE No description.
STANDARD5_XLARGE2 No description.
STANDARD5_XLARGE4 No description.
COMPUTE5_LARGE No description.
COMPUTE5_XLARGE No description.
COMPUTE5_XLARGE2 No description.
COMPUTE5_XLARGE4 No description.

BURSTABLE3_SMALL

BURSTABLE3_MEDIUM

BURSTABLE3_LARGE

BURSTABLE3_XLARGE

STANDARD5_LARGE

STANDARD5_XLARGE

STANDARD5_XLARGE2

STANDARD5_XLARGE4

COMPUTE5_LARGE

COMPUTE5_XLARGE

COMPUTE5_XLARGE2

COMPUTE5_XLARGE4

NetworkEdition

Starter networks are cheaper, but are limited to 2 nodes that can only be from a subset of types (see node.ts for the list).

Members

Name Description
STARTER No description.
STANDARD No description.

STARTER

STANDARD

ThresholdComparator

Constants to define ties in voting for new members.

Members

Name Description
GREATER_THAN No description.
GREATER_THAN_OR_EQUAL_TO No description.

GREATER_THAN

GREATER_THAN_OR_EQUAL_TO