hyperledger-fabricamazon-managed-blockchain

Unable to enroll Fabric client as admin - Amazon Managed Blockchain


I'm following the AWS supply chain workshop. I created an EC2 instance and set up a VPC just like the workshop said. Now I'm connected to the EC2 instance using SSH and I've already downloaded the required packages, setup Docker, downloaded fabric-ca-client. My problem is configuring the fabric-ca client.

When I run the command fabric-ca-client enroll with the required params/flags, it retuns the following error: Error: Failed to create default configuration file: Failed to parse URL 'https://$USER:=9_phK63?@$CA_ENDPOINT': parse https://user:password@ca_endpoint: invalid port ":=9_phK63?" after host

Here's the complete command I'm trying to run: fabric-ca-client enroll -u https://$USER\:$PASSWORD@$CA_ENDPOINT --tls.certfiles ~/managedblockchain-tls-chain.pem -M admin-msp -H $HOME

I'm wondering if the ? in the password is causing the problem. If so, where can I change it?

Workshop link for reference: https://catalog.us-east-1.prod.workshops.aws/workshops/ce1e960e-a811-475f-a221-2afcf57e386a/en-US/02-set-up-a-fabric-client/05-configure-client/06-create-fabric-admin


Solution

  • my name is Forrest and I am a Blockchain Specialist Solutions Architect at AWS. I'd be happy to help you with this.

    When using passwords with special characters, these need to be URL-encoded. For example, $ equates to %24. As OP mentioned in comments below, there is a Javascript method encodeURIComponent() that can serve this function. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent

    Please make sure your environment variables are all still correctly set as well:

    echo $USER
    echo $PASSWORD
    echo $CA_ENDPOINT
    

    Your CA endpoint should resolve to something like: ca.m-XXXXXXXXXXXXX.n-XXXXXXXXXXXXXX.managedblockchain.<AWS_REGION>.amazonaws.com:30002