vania-janet/multiturn-rag-retrieval-data huggingface dataset:
For more information about the Hyperledger Fabric Membership Services Provider component, see [Membership](https://hyperledger-fabric.readthedocs.io/en/release-1.4/membership/membership.html) in the [Hyperledger Fabric documentation](https://hyperledger-fabric.readthedocs.io/en/release-1.4/).





 Ordering service 

In other distributed blockchains, such as Ethereum and Bitcoin, there is no central authority that orders transactions and sends them out to peers. Hyperledger Fabric, the blockchain that the IBM Blockchain Platform is based on, work differently. It features a node called an orderer.

Orderers are key components in a network because they perform a few essential functions:



* It literally orders the blocks of transactions that are sent to the peers to be written to their ledgers, and this process is called "ordering". If these transactions were instead bundled and ordered at the peers themselves, it would increase the possibility of one peer writing a transaction to its ledger where another peer did not, creating a state fork.
* It maintains the orderer system channel, the place where the consortium, the list of peer organizations permitted to create channels, resides.
* It performs important identity validation checks. For example, if an organization tries to create a channel when it is not a member of the orderer's consortium, the request will be denied. Orderers also validate against behaviors in transaction channels, such as the permissions for changing a channel configuration.



Hyperledger Fabric currently uses an implementation of the Raft protocol for its ordering service. For more information about the ordering service, see [The Ordering Service](https://hyperledger-fabric.readthedocs.io/en/release-1.4/orderer/ordering_service.html).





 The Fabric SDKs 

The Hyperledger Fabric SDKs enable application developers to build applications that interact with a blockchain network. These SDKs help facilitate applications to manage the lifecycle of channels and chaincode.

Hyperledger Fabric delivers both a Node.js SDK and Java SDK, and provides the following functions to interact with the blockchain network:



* Register and enroll users
[More options](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) icon on the Number provided node, and then select Add child node.
27. Type yes into the If assistant recognizes field of this node.
28. Add the following message in the response text field:

OK. The order $ordernumber is canceled. We hope we get the opportunity to bake a cake for you sometime soon.

![Shows the node that responds when the user confirms that they want to cancel the order.](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/gs-ass-yes-child-node.png)
29. Click ![Close](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/close.png) to close the edit view.
30. Click the More![More options](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/kebab.png) icon on the yes node, and then select Add node below.
31. Type true into the If assistant recognizes field of this node.

Do not add a response. Instead, you will redirect users to the branch that asks for the order number details that you created earlier.
32. In the And finally section, choose Jump to.

![Shows a true node that has no response, but has the jump to menu option selected.]
[Add another node](https://cloud.ibm.com/docs-content/v1/content/c5288bed34c3820e3a5251d820ee91adcd2591a3/blockchain/images/addremove_addnode.png)

Figure 5. Add another node

You will need to:



* Give the node a display name. A best practice will be to give the node a display name that matches the pattern used for the other nodes in the ordering service. By default, nodes are given the name <name of ordering service>_1, <name of ordering service>_2, and so on.
* Select a CA. This should be the CA used to create your MSP.
* Enter an enroll ID and secret. Again, if you created an enroll ID and secret for your existing ordering nodes, you may use the same enroll ID and secret here.
* Select an MSP. If you are adding to an ordering service you created in your console, reuse the MSP you used when creating that ordering service. If the new node is being added to an ordering service created elsewhere, use the MSP you exported to that console.
* Choose a Fabric version for the new node. Note that this must be the same Fabric version used by the other nodes in the ordering service. If you choose a different Fabric version, the new node will be unable to join the consenter set.
* Associate identity. You will only have to associate an identity if you are using a different MSP from the MSP that was originally used when creating the ordering service.



The TLS Certificate Signing Request (CSR) hostname is an option available to advanced users who to want specify a custom domain name that can be used to address the ordering service endpoint. Custom domain names are not a part of this tutorial, so leave the TLS CSR hostname blank for now.

Task: Create an ordering service



Table 2. Create an ordering service

 Display name MSP ID Enroll ID Secret Version 

 Add another node Ordering Service_2 
 CA Ordering Service2 CA 
 Ordering Service Identity OS2 OS2pw
As we did with the peer, we need to give this CA a display name. And as before, you can use whatever values you want, but we’ll call it the Ordering Service CA. We’ll give an admin identity of admin and a secret of adminpw for our CA admin. Although this identity has the same id and secret as the Org1 CA admin, it is not the same identity because it is not the same CA. Note the resource allocation box. If you leave this box unselected, your CA will be deployed with default resources. If you want to know what those resources are, for example to check against the resources available in your cluster, click the box and then next. If you’re comfortable with the default allocation, click next. You’ll be taken to the summary screen which will show the values for the CA you are creating. Once again, accept these defaults for now and click next. You’ll be taken to the summary screen that will show you the values you just entered. If these seem right to you, click Add Certificate Authority.

We talked in our previous video about the gray box. When it’s green, the CA can be used. But before we can use the CA to register identities for our ordering service organization, we need to enroll an admin for this CA. Which we can do by clicking on the CA and clicking on associate identity. From there, enter the enroll ID and secret you used when creating the CA: admin and adminpw. Then give this identity the name Ordering Service CA Admin. Then click associate identity. If you click over to your wallet, you can see that the CA Admin is there, indicating it has been enrolled successfully. The CA is now ready to be used to register and enroll identities.

As with the peer, we need to register two identities, one for the ordering service admin and one for the ordering service nodes.

First up will be the ordering service admin. We'll give it an enroll id of OSadmin and a secret of OSadminpw. This is an admin so we use the admin type, not the peer, orderer, or client type.
Why am I denied permission to create a destination or send notifications? 

You are denied permission to add an Event Notifications destination or send a notification.

  What’s happening 

You get a 'Permission denied' error, while you are creating a destination or sending a notification.

  Why it’s happening 

All actions in Event Notifications service are governed by access. Permission to create a destination or send a notification depends on the specific role that is assigned to the user.

  How to fix it 

You can manage access for users and resources by using IAM roles that are defined by the service. For more information, see [Managing service access](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-service-access-management).
Operation cannot be fulfilled on deployments.apps "orderer1node1": the object has been modified please apply your changes to the latest version and try again"

This indicates there was a problem updating a deployment, but the migration process continues even though the console has displayed this message.

To check if the migration has proceeded to create a new Fabric Operations Console and copy console data, check if a new console pod has been created.



* List pods in the namespace where blockchain components are located: kubectl get pods -n BLOCKCHAIN_NAMESPACE
* Check for a running pod that has a name starting with ibm-hlfsupport-console.



If a new console pod is running, then select the retry option for the migration and you should be taken to step five for migrating the wallet.







 Post-migration considerations 

The following scenarios apply once you have completed migration of your IBM Blockchain Platform SaaS network to IBM Support for Hyperledger Fabric.



 Deleting the TLSCopy CronJob (Only For IBM Kubernetes Service) 

If you are using OpenShift Container Platform, this step can be skipped.

When using IBM Kubernetes Service, a tlscopy image was used by a cron job in the Blockchain Platform namespace. After migrating to IBM Support for Hyperledger Fabric, this cron job is no longer needed.

The cron job is located in the Blockchain-specific Kubernetes namespace which will be named in a form similar to n123abc. To delete the cron job, follow these steps:

1.List all cron jobs in the Blockchain-specific namespace so the cron job name can be obtained (a hexadecimal string which is the historical IBM Cloud service instance ID): kubectl get cronjob -n BLOCKCHAIN_NAMESPACE

2.Delete the cron job: kubectl delete cronjob <SIID> -n <NAMESPACE>





 Checking the Ingresses 

The migration to IBM Support for Hyperledger Fabric will update the ingress class from public-iks-k8s-nginx to nginx.
[More options](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob.png) icon on the @order_number node, and then select Add node below.
19. Type true into the If assistant recognizes field of this node.
20. Add the following message in the response text field:

I need the order number to cancel the order for you. If you don't know the order number, please call us at 958-234-3456 to cancel over the phone.

![Shows the node that responds when the user does not provide a valid order number.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-ass-cant-help-you.png)
21. Click ![Close](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/close.png) to close the edit view.
22. Add a node after the initial order cancellation request node that responds in the case where the user provides the order number in the initial request, so you don't have to ask for it again. Click the More![More options](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/kabob.png) icon on the cancel_order node, and then select Add child node.
23. Add a label to the node to distinguish it from other child nodes. In the name field, add Number provided.
* verifyOrder - Verifies whether the order can be placed.
* placeOrder - Creates the CDN account with a given vendor. Up to 10 CDN mappings can be created after a successful placeOrder call.
* createDomainMapping - Creates the CDN Mappings
* verifyDomainMapping - Changes CDN status to RUNNING



You can use the other APIs after you've followed the previous sequence.

[Example Code is available for each step in this call sequence.](https://cloud.ibm.com/docs/CDN?topic=CDN-code-examples-using-the-cdn-api)

You must use the API username and API Key of a user with CDN_ACCOUNT_MANAGE permission for most of the API calls shown in this document. Check with your account's Master user if you require this permission to be enabled for you. (Each IBM Cloud customer account is provided with one Master user.)

--------------------



 API for Vendor 



 listVendors 

This API allows the user to list the supported CDN Vendors. The vendorName is needed to create a CDN account and get started with ordering your CDN.



* Parameters- None
* Return- (Required) A collection of type SoftLayer_Container_Network_CdnMarketplace_Vendor.

The Vendor container and a usage example can be viewed here: [Vendor container](https://cloud.ibm.com/docs/CDN?topic=CDN-vendor-container)



--------------------







 API for Account 



 verifyCdnAccountExists 

Checks whether a CDN account exists for the user calling the API, for the given vendorName.



* Parameters- vendorName- (Required) Provide the name of a valid CDN provider.
* Return- true if an account exists, else false.



--------------------







 API for Domain Mapping 



 createDomainMapping
Are you getting a "cos_write_test_failed" error when trying to create a COS target? 

When creating or validating an IBM Cloud Object Storage target, the message Your request to test a target has failed because the target details are not valid. The service could not write to the Cloud Object Storage bucket that is configured. with a code of cos_write_test_failed is returned.

  What’s happening 

Your request fails with an error message that indicates a problem with the IBM Cloud Object Storage bucket.

  Why it’s happening 

You will receive this error if you try to create an IBM Cloud Object Storage target that has no quota. You will also receive this error if the authorization is not set or is misconfigured when using service-to-service authorization (--service-to-service-enabled TRUE). This message is also received if run the ibmcloud atracker target validate --target <target name or ID> command and there is no quota left to upload the data to the target bucket.

  How to fix it 

Resolve the quota or authorization issues with your IBM Cloud Object Storage bucket and retry the request.
[2015-09-30 16:50:32.087] [INFO] The ACL file process accepts acl deny local







 Why do I get 401 Unauthorized when accessing Secure Gateway gateway panel? 



 What is happening 

When you access the Secure Gateway instance via the url https://cloud.ibm.com/services/securegateway/<sg_instance_id>?env_id=<region>, and you receive the error message 401 Unauthorized.





 How to fix it 



* Allow sites [.]bluemix.net and [.]cloud.ibm.com to use third party cookies in your browser configuration.
* Access Secure Gateway instance via the portal https://cloud.ibm.com/resources.
* Secure Gateway cannot be accessed with space role Auditor, please confirm whether you have Developer access of the space.









 Getting additional help and support 

If you have technical questions about developing or deploying an application with Secure Gateway, post your question on [Stack Overflow](https://stackoverflow.com/search?q=SecureGateway+ibm-cloud). Tag your question with "ibm-cloud" and "secure-gateway" so that it can be found more readily by IBM Cloud development teams.

If you have question about the service or instructions on how to get started, use the [IBM developerWorks dW Answers](https://developer.ibm.com/answers/topics/securegateway) forum along with the "ibm-cloud" and "securegateway" tags.

For more details on on using these forums, check the [Getting help page here](https://cloud.ibm.com/docs/get-support?topic=get-support-getting-customer-supportusing-avatar).

For information about opening an IBM support ticket, or about support levels and ticket severities, see [Contacting support](https://cloud.ibm.com/docs/get-support?topic=get-support-support-case-severitysupport-case-severity).

Please provide as much of the following information as possible when submitting a ticket:



* What OS is the client running on?
Instead of creating an ordering service, if you prefer to contribute a single ordering node to an existing Raft ordering service, open the ordering service and click the Ordering nodes tab. Click Add ordering node, give it a name then and following the preceding steps.

It takes several minutes for peer and ordering node deployment to complete. When it is successful, you can see a green box on the node tile in the console. You might need to refresh your browser for the box to turn from gray to green.







 Next steps 

Your blockchain nodes are ready to be used on the network. In order for the peer to participate on the network, the peer organization needs to be part of a consortium on an ordering service so that the peer can join a channel.



1. Navigate to the Nodes tab.
2. Scroll down to the ordering service and click the tile to open it.
3. Under Consortium Members, click Add organization.
4. From the drop-down list, select the MSP that you imported into the console.
5. Click Add organization.



You can now install smart contracts on your peer and join it to an existing channel.
* Delete the peer or ordering service and recreate it, being careful to specify the correct enroll ID and secret of a user that has the peer or orderer role and associate an identity that has a role of admin with the node.
* Note that before you create the peer or ordering service, you need to register an organization admin user, with a type admin. Be sure to specify that same id as the enroll ID when you create the organization MSP definition. See these instructions for [registering peer identities](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-build-networkibp-console-build-network-use-CA-org1) and these instructions for [registering orderer identities](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-build-networkibp-console-build-network-use-CA-orderer).







 Why does my blockchain node fail to restart? 

 What’s happening 

When you change the resources allocated to a CA, peer, or ordering node, or if you update the admin certificates for a node, the pod has to restart in order for the changes to take effect. Or when a worker node is updated for maintenance and needs to restart, the associated blockchain pods also need to be restarted. Sometimes, due to conditions on your Kubernetes cluster, the pod restart can fail.

 Why it’s happening 

A component can fail to restart for a variety of reasons:



* If another application in a cluster with constrained resources is in a pending state, and is prioritized higher than the blockchain component, the blockchain pod cannot restart because the resources are consumed by the pending application.
* If the blockchain component needs to restart, but is on a worker node that has been "cordoned", meaning no new components can be brought to that node, it cannot restart. A blockchain pod becomes unschedulable when the Kubernetes scheduler is unable to find a node that can accommodate the resource requirements of the pod.
(https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-ass-test-cancel-order-number-provided.png)

Now, try it when you don't know the order number.
4. Click Clear in the Try it out pane to start over. Enter, I want to cancel my order.

Your assistant recognizes the cancel_order intent, and responds with, If the pickup time is more than 48 hours from now, you can cancel your order. What is the order number?
5. Enter, I don't know.

Your assistant responds with, I need the order number to cancel the order for you. If you don't know the order number, please call us at 958-234-3456 to cancel over the phone.

![Shows the Try it out pane test of the cancel order number node when the user doesn't know the order number.](https://cloud.ibm.com/docs-content/v1/content/a2b18c153837bce00a5b4de496e4b4ca64bbf56e/assistant-data/images/gs-ass-test-cancel-order-number-unknown.png)







 Add nodes to clarify order number format 

If you do more testing, you might find that the dialog isn't very helpful in scenarios where the user does not remember the order number format. The user might include only the numbers or the letters too, but forget that they are meant to be uppercase. So, it would be a nice touch to give them a hint in such cases. If you want to be kind, add another node to the dialog tree that checks for numbers in the user input.



1. Find the @order_number node that is a child of the Ask order number node.
2. Click the More!
Notice that the connection status for your direct link connection states Create Approval Pending.
10. Open the Actions ![Actions menu](https://cloud.ibm.com/docs-content/v1/content/d7287ec7418d843dbd7caf286d842c439df6979e/direct-link//images/overflow.png) menu and click Accept.

Zoom

![Equinix request approval pending](https://cloud.ibm.com/docs-content/v1/content/d7287ec7418d843dbd7caf286d842c439df6979e/direct-link//images/equinix-request-pending.png)

Equinix request approval pending

The virtual connection shows as Provisioned in the Equinix Fabric portal.
11. Review your order summary, agree to the [Direct Link Exchange prerequisites](https://cloud.ibm.com/docs/direct-link?topic=direct-link-ibm-cloud-dl-exchange-prereqs), and then click Create.

Zoom

![Equinix order summary pane](https://cloud.ibm.com/docs-content/v1/content/d7287ec7418d843dbd7caf286d842c439df6979e/direct-link//images/equinix-order-summary.png)

Equinix order summary pane



The timeline for approval is within 24 hours. If the 24-hour Service Level Agreement (SLA) is not acceptable, you can [create an IBM Support case](https://cloud.ibm.com/unifiedsupport/cases/form) and request that it be routed to the SNS team.





 Ordering Direct Link Exchange on Classic when there is no VRF present 

For the accounts with no Virtual Routing and Forwarding (VRF) present, the Select VRF field is not displayed in the order form. In this situation, an IBM Support case is generated after you place your order.
PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
Host: https://broker.compose.cloud.ibm.com
Authorization: basic dXNlcjpwYXNzd29yZA==
X-Broker-Api-Version: 2.12
X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
{
"service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
"plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
"context": {
"platform": "ibmcloud",
"account_id": "003e9bc3993aec710d30a5a719e57a80",
"crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",