Amazon Managed Blockchain

2020/12/21 - Amazon Managed Blockchain - 6 updated api methods

Changes  Added support for provisioning and managing public Ethereum nodes on main and test networks supporting secure access using Sigv4 and standard open-source Ethereum APIs.

CreateNetwork (updated) Link ¶
Changes (request)
{'Framework': {'ETHEREUM'}}

Creates a new blockchain network using Amazon Managed Blockchain.

Applies only to Hyperledger Fabric.

See also: AWS API Documentation

Request Syntax

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
                    }
                }
            }
        }
    }
)
type ClientRequestToken

string

param ClientRequestToken

[REQUIRED]

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

This field is autopopulated if not provided.

type Name

string

param Name

[REQUIRED]

The name of the network.

type Description

string

param Description

An optional description for the network.

type Framework

string

param Framework

[REQUIRED]

The blockchain framework that the network uses.

type FrameworkVersion

string

param FrameworkVersion

[REQUIRED]

The version of the blockchain framework that the network uses.

type FrameworkConfiguration

dict

param FrameworkConfiguration

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.

type VotingPolicy

dict

param VotingPolicy

[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 are not 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.

type MemberConfiguration

dict

param MemberConfiguration

[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.

rtype

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.

GetNetwork (updated) Link ¶
Changes (response)
{'Network': {'Framework': {'ETHEREUM'},
             'FrameworkAttributes': {'Ethereum': {'ChainId': 'string'}}}}

Returns detailed information about a network.

Applies to Hyperledger Fabric and Ethereum.

See also: AWS API Documentation

Request Syntax

client.get_network(
    NetworkId='string'
)
type NetworkId

string

param NetworkId

[REQUIRED]

The unique identifier of the network to get information about.

rtype

dict

returns

Response Syntax

{
    'Network': {
        'Id': 'string',
        'Name': 'string',
        'Description': 'string',
        'Framework': 'HYPERLEDGER_FABRIC'|'ETHEREUM',
        'FrameworkVersion': 'string',
        'FrameworkAttributes': {
            'Fabric': {
                'OrderingServiceEndpoint': 'string',
                'Edition': 'STARTER'|'STANDARD'
            },
            'Ethereum': {
                'ChainId': 'string'
            }
        },
        'VpcEndpointServiceName': 'string',
        'VotingPolicy': {
            'ApprovalThresholdPolicy': {
                'ThresholdPercentage': 123,
                'ProposalDurationInHours': 123,
                'ThresholdComparator': 'GREATER_THAN'|'GREATER_THAN_OR_EQUAL_TO'
            }
        },
        'Status': 'CREATING'|'AVAILABLE'|'CREATE_FAILED'|'DELETING'|'DELETED',
        'CreationDate': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • Network (dict) --

      An object containing network configuration parameters.

      • Id (string) --

        The unique identifier of the network.

      • Name (string) --

        The name of the network.

      • Description (string) --

        Attributes of the blockchain framework for the network.

      • Framework (string) --

        The blockchain framework that the network uses.

      • FrameworkVersion (string) --

        The version of the blockchain framework that the network uses.

      • FrameworkAttributes (dict) --

        Attributes of the blockchain framework that the network uses.

        • Fabric (dict) --

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

          • OrderingServiceEndpoint (string) --

            The endpoint of the ordering service for the network.

          • Edition (string) --

            The edition of Amazon Managed Blockchain that Hyperledger Fabric uses. For more information, see Amazon Managed Blockchain Pricing.

        • Ethereum (dict) --

          Attributes of an Ethereum network for Managed Blockchain resources participating in an Ethereum network.

          • ChainId (string) --

            The Ethereum CHAIN_ID associated with the Ethereum network. Chain IDs are as follows:

            • mainnet = 1

            • rinkeby = 4

            • ropsten = 3

      • VpcEndpointServiceName (string) --

        The VPC endpoint service name of the VPC endpoint service of the network. Members use the VPC endpoint service name to create a VPC endpoint to access network resources.

      • VotingPolicy (dict) --

        The voting rules for the network to decide if a proposal is accepted.

        • 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 are not 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.

      • Status (string) --

        The current status of the network.

      • CreationDate (datetime) --

        The date and time that the network was created.

GetNode (updated) Link ¶
Changes (response)
{'Node': {'FrameworkAttributes': {'Ethereum': {'HttpEndpoint': 'string',
                                               'WebSocketEndpoint': 'string'}},
          'Status': {'UNHEALTHY'}}}

Returns detailed information about a node.

Applies to Hyperledger Fabric and Ethereum.

See also: AWS API Documentation

Request Syntax

client.get_node(
    NetworkId='string',
    MemberId='string',
    NodeId='string'
)
type NetworkId

string

param NetworkId

[REQUIRED]

The unique identifier of the network that the node is on.

type MemberId

string

param MemberId

The unique identifier of the member that owns the node.

Applies only to Hyperledger Fabric and is required for Hyperledger Fabric.

type NodeId

string

param NodeId

[REQUIRED]

The unique identifier of the node.

rtype

dict

returns

Response Syntax

{
    'Node': {
        'NetworkId': 'string',
        'MemberId': 'string',
        'Id': 'string',
        'InstanceType': 'string',
        'AvailabilityZone': 'string',
        'FrameworkAttributes': {
            'Fabric': {
                'PeerEndpoint': 'string',
                'PeerEventEndpoint': 'string'
            },
            'Ethereum': {
                'HttpEndpoint': 'string',
                'WebSocketEndpoint': 'string'
            }
        },
        'LogPublishingConfiguration': {
            'Fabric': {
                'ChaincodeLogs': {
                    'Cloudwatch': {
                        'Enabled': True|False
                    }
                },
                'PeerLogs': {
                    'Cloudwatch': {
                        'Enabled': True|False
                    }
                }
            }
        },
        'StateDB': 'LevelDB'|'CouchDB',
        'Status': 'CREATING'|'AVAILABLE'|'UNHEALTHY'|'CREATE_FAILED'|'UPDATING'|'DELETING'|'DELETED'|'FAILED',
        'CreationDate': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • Node (dict) --

      Properties of the node configuration.

      • NetworkId (string) --

        The unique identifier of the network that the node is on.

      • MemberId (string) --

        The unique identifier of the member to which the node belongs.

        Applies only to Hyperledger Fabric.

      • Id (string) --

        The unique identifier of the node.

      • InstanceType (string) --

        The instance type of the node.

      • AvailabilityZone (string) --

        The Availability Zone in which the node exists.

      • FrameworkAttributes (dict) --

        Attributes of the blockchain framework being used.

        • Fabric (dict) --

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

          • PeerEndpoint (string) --

            The endpoint that identifies the peer node for all services except peer channel-based event services.

          • PeerEventEndpoint (string) --

            The endpoint that identifies the peer node for peer channel-based event services.

        • Ethereum (dict) --

          Attributes of Ethereum for a node on a Managed Blockchain network that uses Ethereum.

          • HttpEndpoint (string) --

            The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC methods over HTTP connections from a client. Use this endpoint in client code for smart contracts when using an HTTP connection. Connections to this endpoint are authenticated using Signature Version 4.

          • WebSocketEndpoint (string) --

            The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC methods over WebSockets connections from a client. Use this endpoint in client code for smart contracts when using a WebSockets connection. Connections to this endpoint are authenticated using Signature Version 4.

      • LogPublishingConfiguration (dict) --

        Configuration properties for logging events associated with a peer node on a Hyperledger Fabric network on Managed Blockchain.

        • Fabric (dict) --

          Configuration properties for logging events associated with a node that is owned by a member of a Managed Blockchain network using the Hyperledger Fabric framework.

          • ChaincodeLogs (dict) --

            Configuration properties for logging events associated with chaincode execution on a peer node. Chaincode logs contain the results of instantiating, invoking, and querying the chaincode. A peer can run multiple instances of chaincode. When enabled, a log stream is created for all chaincodes, with an individual log stream for each chaincode.

            • Cloudwatch (dict) --

              Parameters for publishing logs to Amazon CloudWatch Logs.

              • Enabled (boolean) --

                Indicates whether logging is enabled.

          • PeerLogs (dict) --

            Configuration properties for a peer node log. Peer node logs contain messages generated when your client submits transaction proposals to peer nodes, requests to join channels, enrolls an admin peer, and lists the chaincode instances on a peer node.

            • Cloudwatch (dict) --

              Parameters for publishing logs to Amazon CloudWatch Logs.

              • Enabled (boolean) --

                Indicates whether logging is enabled.

      • StateDB (string) --

        The state database that the node uses. Values are LevelDB or CouchDB .

        Applies only to Hyperledger Fabric.

      • Status (string) --

        The status of the node.

      • CreationDate (datetime) --

        The date and time that the node was created.

ListInvitations (updated) Link ¶
Changes (response)
{'Invitations': {'NetworkSummary': {'Framework': {'ETHEREUM'}}}}

Returns a list of all invitations for the current AWS account.

Applies only to Hyperledger Fabric.

See also: AWS API Documentation

Request Syntax

client.list_invitations(
    MaxResults=123,
    NextToken='string'
)
type MaxResults

integer

param MaxResults

The maximum number of invitations to return.

type NextToken

string

param NextToken

The pagination token that indicates the next set of results to retrieve.

rtype

dict

returns

Response Syntax

{
    'Invitations': [
        {
            'InvitationId': 'string',
            'CreationDate': datetime(2015, 1, 1),
            'ExpirationDate': datetime(2015, 1, 1),
            'Status': 'PENDING'|'ACCEPTED'|'ACCEPTING'|'REJECTED'|'EXPIRED',
            'NetworkSummary': {
                'Id': 'string',
                'Name': 'string',
                'Description': 'string',
                'Framework': 'HYPERLEDGER_FABRIC'|'ETHEREUM',
                'FrameworkVersion': 'string',
                'Status': 'CREATING'|'AVAILABLE'|'CREATE_FAILED'|'DELETING'|'DELETED',
                'CreationDate': datetime(2015, 1, 1)
            }
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • Invitations (list) --

      The invitations for the network.

      • (dict) --

        An invitation to an AWS account to create a member and join the network.

        Applies only to Hyperledger Fabric.

        • InvitationId (string) --

          The unique identifier for the invitation.

        • CreationDate (datetime) --

          The date and time that the invitation was created.

        • ExpirationDate (datetime) --

          The date and time that the invitation expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy . After this date and time, the invitee can no longer create a member and join the network using this InvitationId .

        • Status (string) --

          The status of the invitation:

          • PENDING - The invitee has not created a member to join the network, and the invitation has not yet expired.

          • ACCEPTING - The invitee has begun creating a member, and creation has not yet completed.

          • ACCEPTED - The invitee created a member and joined the network using the InvitationID .

          • REJECTED - The invitee rejected the invitation.

          • EXPIRED - The invitee neither created a member nor rejected the invitation before the ExpirationDate .

        • NetworkSummary (dict) --

          A summary of network configuration properties.

          • Id (string) --

            The unique identifier of the network.

          • Name (string) --

            The name of the network.

          • Description (string) --

            An optional description of the network.

          • Framework (string) --

            The blockchain framework that the network uses.

          • FrameworkVersion (string) --

            The version of the blockchain framework that the network uses.

          • Status (string) --

            The current status of the network.

          • CreationDate (datetime) --

            The date and time that the network was created.

    • NextToken (string) --

      The pagination token that indicates the next set of results to retrieve.

ListNetworks (updated) Link ¶
Changes (request, response)
Request
{'Framework': {'ETHEREUM'}}
Response
{'Networks': {'Framework': {'ETHEREUM'}}}

Returns information about the networks in which the current AWS account participates.

Applies to Hyperledger Fabric and Ethereum.

See also: AWS API Documentation

Request Syntax

client.list_networks(
    Name='string',
    Framework='HYPERLEDGER_FABRIC'|'ETHEREUM',
    Status='CREATING'|'AVAILABLE'|'CREATE_FAILED'|'DELETING'|'DELETED',
    MaxResults=123,
    NextToken='string'
)
type Name

string

param Name

The name of the network.

type Framework

string

param Framework

An optional framework specifier. If provided, only networks of this framework type are listed.

type Status

string

param Status

An optional status specifier. If provided, only networks currently in this status are listed.

Applies only to Hyperledger Fabric.

type MaxResults

integer

param MaxResults

The maximum number of networks to list.

type NextToken

string

param NextToken

The pagination token that indicates the next set of results to retrieve.

rtype

dict

returns

Response Syntax

{
    'Networks': [
        {
            'Id': 'string',
            'Name': 'string',
            'Description': 'string',
            'Framework': 'HYPERLEDGER_FABRIC'|'ETHEREUM',
            'FrameworkVersion': 'string',
            'Status': 'CREATING'|'AVAILABLE'|'CREATE_FAILED'|'DELETING'|'DELETED',
            'CreationDate': datetime(2015, 1, 1)
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • Networks (list) --

      An array of NetworkSummary objects that contain configuration properties for each network.

      • (dict) --

        A summary of network configuration properties.

        • Id (string) --

          The unique identifier of the network.

        • Name (string) --

          The name of the network.

        • Description (string) --

          An optional description of the network.

        • Framework (string) --

          The blockchain framework that the network uses.

        • FrameworkVersion (string) --

          The version of the blockchain framework that the network uses.

        • Status (string) --

          The current status of the network.

        • CreationDate (datetime) --

          The date and time that the network was created.

    • NextToken (string) --

      The pagination token that indicates the next set of results to retrieve.

ListNodes (updated) Link ¶
Changes (request, response)
Request
{'Status': {'UNHEALTHY'}}
Response
{'Nodes': {'Status': {'UNHEALTHY'}}}

Returns information about the nodes within a network.

Applies to Hyperledger Fabric and Ethereum.

See also: AWS API Documentation

Request Syntax

client.list_nodes(
    NetworkId='string',
    MemberId='string',
    Status='CREATING'|'AVAILABLE'|'UNHEALTHY'|'CREATE_FAILED'|'UPDATING'|'DELETING'|'DELETED'|'FAILED',
    MaxResults=123,
    NextToken='string'
)
type NetworkId

string

param NetworkId

[REQUIRED]

The unique identifier of the network for which to list nodes.

type MemberId

string

param MemberId

The unique identifier of the member who owns the nodes to list.

Applies only to Hyperledger Fabric and is required for Hyperledger Fabric.

type Status

string

param Status

An optional status specifier. If provided, only nodes currently in this status are listed.

type MaxResults

integer

param MaxResults

The maximum number of nodes to list.

type NextToken

string

param NextToken

The pagination token that indicates the next set of results to retrieve.

rtype

dict

returns

Response Syntax

{
    'Nodes': [
        {
            'Id': 'string',
            'Status': 'CREATING'|'AVAILABLE'|'UNHEALTHY'|'CREATE_FAILED'|'UPDATING'|'DELETING'|'DELETED'|'FAILED',
            'CreationDate': datetime(2015, 1, 1),
            'AvailabilityZone': 'string',
            'InstanceType': 'string'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • Nodes (list) --

      An array of NodeSummary objects that contain configuration properties for each node.

      • (dict) --

        A summary of configuration properties for a node.

        • Id (string) --

          The unique identifier of the node.

        • Status (string) --

          The status of the node.

        • CreationDate (datetime) --

          The date and time that the node was created.

        • AvailabilityZone (string) --

          The Availability Zone in which the node exists.

        • InstanceType (string) --

          The EC2 instance type for the node.

    • NextToken (string) --

      The pagination token that indicates the next set of results to retrieve.