create_network

ManagedBlockchain.Client.create_network(**kwargs)

Creates a new blockchain network using Amazon Managed Blockchain.

Applies only to Hyperledger Fabric.

See also: AWS API Documentation

Request Syntax

response = client.create_network(
    ClientRequestToken='string',
    Name='string',
    Description='string',
    Framework='HYPERLEDGER_FABRIC'|'ETHEREUM',
    FrameworkVersion='string',
    FrameworkConfiguration={
        'Fabric': {
            'Edition': 'STARTER'|'STANDARD'
        }
    },
    VotingPolicy={
        'ApprovalThresholdPolicy': {
            'ThresholdPercentage': 123,
            'ProposalDurationInHours': 123,
            'ThresholdComparator': 'GREATER_THAN'|'GREATER_THAN_OR_EQUAL_TO'
        }
    },
    MemberConfiguration={
        'Name': 'string',
        'Description': 'string',
        'FrameworkConfiguration': {
            'Fabric': {
                'AdminUsername': 'string',
                'AdminPassword': 'string'
            }
        },
        'LogPublishingConfiguration': {
            'Fabric': {
                'CaLogs': {
                    'Cloudwatch': {
                        'Enabled': True|False
                    }
                }
            }
        },
        'Tags': {
            'string': 'string'
        },
        'KmsKeyArn': 'string'
    },
    Tags={
        'string': 'string'
    }
)
Parameters
  • ClientRequestToken (string) --

    [REQUIRED]

    This is a unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than once. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the Amazon Web Services CLI.

    This field is autopopulated if not provided.

  • Name (string) --

    [REQUIRED]

    The name of the network.

  • Description (string) -- An optional description for the network.
  • Framework (string) --

    [REQUIRED]

    The blockchain framework that the network uses.

  • FrameworkVersion (string) --

    [REQUIRED]

    The version of the blockchain framework that the network uses.

  • FrameworkConfiguration (dict) --

    Configuration properties of the blockchain framework relevant to the network configuration.

    • Fabric (dict) --

      Hyperledger Fabric configuration properties for a Managed Blockchain network that uses Hyperledger Fabric.

  • VotingPolicy (dict) --

    [REQUIRED]

    The voting rules used by the network to determine if a proposal is approved.

    • ApprovalThresholdPolicy (dict) --

      Defines the rules for the network for voting on proposals, such as the percentage of YES votes required for the proposal to be approved and the duration of the proposal. The policy applies to all proposals and is specified when the network is created.

      • ThresholdPercentage (integer) --

        The percentage of votes among all members that must be YES for a proposal to be approved. For example, a ThresholdPercentage value of 50 indicates 50%. The ThresholdComparator determines the precise comparison. If a ThresholdPercentage value of 50 is specified on a network with 10 members, along with a ThresholdComparator value of GREATER_THAN , this indicates that 6 YES votes are required for the proposal to be approved.

      • ProposalDurationInHours (integer) --

        The duration from the time that a proposal is created until it expires. If members cast neither the required number of YES votes to approve the proposal nor the number of NO votes required to reject it before the duration expires, the proposal is EXPIRED and ProposalActions aren't carried out.

      • ThresholdComparator (string) --

        Determines whether the vote percentage must be greater than the ThresholdPercentage or must be greater than or equal to the ThreholdPercentage to be approved.

  • MemberConfiguration (dict) --

    [REQUIRED]

    Configuration properties for the first member within the network.

    • Name (string) -- [REQUIRED]

      The name of the member.

    • Description (string) --

      An optional description of the member.

    • FrameworkConfiguration (dict) -- [REQUIRED]

      Configuration properties of the blockchain framework relevant to the member.

      • Fabric (dict) --

        Attributes of Hyperledger Fabric for a member on a Managed Blockchain network that uses Hyperledger Fabric.

        • AdminUsername (string) -- [REQUIRED]

          The user name for the member's initial administrative user.

        • AdminPassword (string) -- [REQUIRED]

          The password for the member's initial administrative user. The AdminPassword must be at least eight characters long and no more than 32 characters. It must contain at least one uppercase letter, one lowercase letter, and one digit. It cannot have a single quotation mark (‘), a double quotation marks (“), a forward slash(/), a backward slash(), @, or a space.

    • LogPublishingConfiguration (dict) --

      Configuration properties for logging events associated with a member of a Managed Blockchain network.

      • Fabric (dict) --

        Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.

        • CaLogs (dict) --

          Configuration properties for logging events associated with a member's Certificate Authority (CA). CA logs help you determine when a member in your account joins the network, or when new peers register with a member CA.

          • Cloudwatch (dict) --

            Parameters for publishing logs to Amazon CloudWatch Logs.

            • Enabled (boolean) --

              Indicates whether logging is enabled.

    • Tags (dict) --

      Tags assigned to the member. Tags consist of a key and optional value.

      When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.

      For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide , or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide .

      • (string) --
        • (string) --
    • KmsKeyArn (string) --

      The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member creates. For more information, see Encryption at Rest in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide .

      Use one of the following options to specify this parameter:

      • Undefined or empty string - By default, use an KMS key that is owned and managed by Amazon Web Services on your behalf.
      • A valid symmetric customer managed KMS key - Use the specified KMS key in your account that you create, own, and manage. Amazon Managed Blockchain doesn't support asymmetric keys. For more information, see Using symmetric and asymmetric keys in the Key Management Service Developer Guide . The following is an example of a KMS key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
  • Tags (dict) --

    Tags to assign to the network.

    Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.

    For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide , or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide .

    • (string) --
      • (string) --
Return type

dict

Returns

Response Syntax

{
    'NetworkId': 'string',
    'MemberId': 'string'
}

Response Structure

  • (dict) --

    • NetworkId (string) --

      The unique identifier for the network.

    • MemberId (string) --

      The unique identifier for the first member within the network.

Exceptions

  • ManagedBlockchain.Client.exceptions.InvalidRequestException
  • ManagedBlockchain.Client.exceptions.AccessDeniedException
  • ManagedBlockchain.Client.exceptions.ResourceAlreadyExistsException
  • ManagedBlockchain.Client.exceptions.ThrottlingException
  • ManagedBlockchain.Client.exceptions.ResourceLimitExceededException
  • ManagedBlockchain.Client.exceptions.InternalServiceErrorException
  • ManagedBlockchain.Client.exceptions.TooManyTagsException