vania-janet/multiturn-rag-retrieval-data huggingface dataset:
For this reason, the console will attempt to ascertain the nodes that will be affected by a capability update and either warn you (or stop you) from updating a capability if it will cause a node to crash. More on this later.

Because of this, all of the nodes in a channel must be at least at the level of the capabilities relevant to the node. Therefore, if the organizations in your channel want to "move to v2.0", this is in practice a three step process:



1. Upgrade all of the nodes in the channel. For more information, check out [Upgrading to a new version of Fabric](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-govern-componentsibp-console-govern-components-upgrade).
2. Update the relevant capabilities of the channel. Do not attempt to edit the capabilities until you are sure your nodes are at the appropriate Fabric versions.
3. To use the 2.x smart contract lifecycle, an organization must have an endorsement policy defined. If any organization in the consortium (the list of organizations maintained by the ordering service that are allowed to create channels) do not have an endorsement policy defined, a warning message will appear on the Details page of the ordering service with a list of organization MSPs that must be updated. The best practice to add this endorsement policy to the MSP is to delete the MSP from the system channel and then re-add the MSP. The console detects the fact that the MSP does not contain the endorsement policy and automatically adds it. Note that this action can only be completed by an ordering service administrator. You do not need to delete and re-add the MSPs in the configuration of any application channels that have already been created. For these MSPs, the endorsement policy is added as part of the process of [deploying the smart contract using the v2.x lifecycle](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-smart-contracts-v2).



The application and channel capabilities are relevant to peers, while the orderer and channel capabilities are relevant to the ordering service.
This could cause transactions not being committed to the ledger because there are not enough endorsements to satisfy the endorsement criteria. <br> <br>Because this is an update to an existing smart contract definition, you need to use the same smart contract definition name but it is recommended to increment the version by a second digit. For example, change the version from 1.1 to 1.2. This second digit version update is a best practice, which signals channel members that this proposal is an update to an existing smart contract definition and requires approval. 
 Update a smart contract package after the definition is committed to the channel Assuming there are no changes to the agreed to business logic, a smart contract package can be updated without approval from channel members. If there is a change to the logic, see the previous task Update a smart contract definition that has been committed to the channel for the process. <br> <br>From the Channels tab, open the smart contract tile and click Update package details next to your organization. If you want to install a package that exists on another peer in your organization, select it from the Existing package tab. Or, click Add file to upload your own [version](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-smart-contracts-v2ibp-console-smart-contracts-v2-pkg-best-practice) of the smart contract package. Then select the peers to install it on. Since the smart contract definition is committed, the peer can immediately begin to process requests for the updated smart contract. 
 Install the smart contract on peers in my organization after it has been committed It's possible that you approved a smart contract for the channel, but elected to not install it on any of your peers. Later, you decide you do want to run the package on your peers. From the Channels tab, open the smart contract tile and click Update package details next to your organization. If you want to install the existing package, select it from the Existing package tab. Or, upload your own version of the smart contract package. Then select the peers to install it on. Since the smart contract definition is committed, the peer can immediately begin to process requests for the smart contract.
This can be found in the Service Credentials tab of your service dashboard.
* Your instance's deployment IBM Cloud region. You can find your region by looking at the console.



Table 1. IBM Cloud regions and corresponding SDK values

 IBM Cloud Region SDK value 

 US South AppID.REGION_US_SOUTH 
 Sydney AppID.REGION_SYDNEY 
 United Kingdom AppID.REGION_UK 
 Germany AppID.REGION_GERMANY 











 Authenticating with the Android SDK 

Protect your mobile applications by using the App ID client SDK.



 Before you begin 

You must have the following prerequisites before you can get started:



* API 27 or higher
* Java 8.x
* Android SDK Tools 26.1.1+
* Android SDK Platform Tools 27.0.1+
* Android Build Tools version 27.0.0+







 Installing the SDK 



1. Create an Android Studio project or open an existing project.
2. Add the JitPack repository to your root build.gradle file.

allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
3. Find your application's build.gradle file. Note: Be sure to open the file for your app, not the project build.gradle file.



1. Add the App ID client SDK to the dependencies section.

dependencies {
compile group: 'com.github.ibm-cloud-security:appid-clientsdk-android:4.+'
}
2. In the defaultConfig section, configure the redirect scheme.

defaultConfig {
...
manifestPlaceholders = ['appIdRedirectScheme': android.defaultConfig.applicationId]
}



4. Synchronize your project with Gradle. Click Tools > Android > Sync Project with Gradle Files.







 Initializing the SDK 



1.
See [machine learning](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx8397498).





 mobile app 

See [mobile application](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx4258535).





 mobile application (mobile app) 

An application that has been designed for a mobile platform. Similar to web applications, mobile apps provide some function beyond static display of information, for example, allowing the user to filter news in near real-time. See also [app](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx4281528).





 mobile backend as a service (MBaaS) 

A computing model that connects mobile applications to cloud computing services and provides features such as user management, push notifications, and integration with social networks through a unified API and SDK.





 mobile cloud 

An infrastructure in which the storage and processing of data for applications is offloaded from a mobile device into the cloud. With mobile cloud computing, applications are not limited to a specific carrier, but are accessed through the Web.





 module 

A stand-alone unit of automation code that can be reused and shared in a larger system. See also [deployable architecture](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx10293733).





 MSP 

See [Managed Service Provider](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx6418711).





 multizone region (MZR) 

A region that is spread across data centers in multiple zones to increase fault tolerance. See also [zone](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2070723).





 MZR 

See [multizone region](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx9774820).







 N 



 named entity
Similarly, we will alter the CLOUD.APP.SVRCONN channel, which will be used by applications such as the C or JMS samples.

You will need access to the MQ tools for your operating system (for example runmqakm). These are part of an MQ installation on Linux and Windows, and have recently been made available in the [MacOS toolkit for Developers](https://developer.ibm.com/components/ibm-mq/tutorials/mq-macos-dev/). They can also be downloaded as a separate MQ Client from the [MQ Downloads](https://ibm.biz/MQdownloads) page.



 Reference Documentation 

The following links provide a handy reference for information on how to administer an MQ on Cloud queue manager using the standard administration tools. You may choose your preferred tool and follow the instructions in this document.



* [Configuring administrator access for a queue manager](https://cloud.ibm.com/docs/services/mqcloud?topic=mqcloud-tutorial-configure-admin-access)
* [Administering a queue manager using IBM MQ Web Console](https://cloud.ibm.com/docs/services/mqcloud?topic=mqcloud-mqoc_admin_mqweb)
* [Administering a queue manager using IBM MQ Explorer](https://cloud.ibm.com/docs/services/mqcloud?topic=mqcloud-mqoc_admin_mqcliexp)
* [Administering a queue manager using runmqsc from an IBM MQ client](https://cloud.ibm.com/docs/services/mqcloud?topic=mqcloud-mqoc_admin_mqcliexp)







 Tasks on the MQ on Cloud queue manager 

As mentioned earlier, enabling security on an MQ channel requires configuring a cipher spec, and exchanging public certificates between the queue manager and the client (and for Mutual TLS, also between the client and the queue manager).
However, it is recommended to use a consistent semantic versioning pattern.

In production scenarios, new business logic might be agreed to by the channel members collectively (out of band) and then be written by a single channel member and passed to the others. If this code will replace custom code you have in your own smart contract package, make sure you do not overwrite custom variables you already have by replacing the section of your smart contract without analysis.





 Putting it all together 

Like everything else about your network, your smart contracts should be tailored for your use case. While a simple smart contract shared in its entirety among every member of a channel might adequately fulfill your needs, the new lifecycle opens opportunities for specialization and separation of concerns that didn't exist before and shouldn't be ignored.

For more information about smart contract best practices (as well as how smart contracts relate to the concept of "chaincode"), see [Smart contracts and chaincode](https://hyperledger-fabric.readthedocs.io/en/release-2.0/smartcontract/smartcontract.html).





 Smart contract development tooling 

Attention! The IBM Blockchain Platform Extension for VS Code (VS Code extension) referenced throughout the documentation is an open-source project which is no longer active, and therefore not officially supported by IBM. Refer to the [alternatives to the VS Code extension](https://github.com/IBM-Blockchain/blockchain-vscode-extension/issues/3159).

While a smart contract can be packaged using the peer CLI, the VS Code extension for developing smart contracts is a highly useful tool and can be downloaded to your local system.

For more information, see [Developing smart contracts with IBM Blockchain Platform Developer Tools](https://cloud.ibm.com/docs/blockchain?topic=blockchain-develop-vscode).





 Installing a package and proposing a definition
SC-18 - Mobile Code 



  Control requirements 

The organization:

SC-18 (a)
:   Defines acceptable and unacceptable mobile code and mobile code technologies;

SC-18 (b)
:   Establishes usage restrictions and implementation guidance for acceptable mobile code and mobile code technologies; and

SC-18 (c)
:   Authorizes, monitors, and controls the use of mobile code within the information system.





  NIST supplemental guidance 

Decisions regarding the employment of mobile code within organizational information systems are based on the potential for the code to cause damage to the systems if used maliciously. Mobile code technologies include, for example, Java, JavaScript, ActiveX, Postscript, PDF, Shockwave movies, Flash animations, and VBScript. Usage restrictions and implementation guidance apply to both the selection and use of mobile code installed on servers and mobile code downloaded and executed on individual workstations and devices (e.g., smart phones). Mobile code policy and procedures address preventing the development, acquisition, or introduction of unacceptable mobile code within organizational information systems.
Current pricing may be different from the amounts shown in the example. See the App Configuration catalog page for current pricing.

App Configuration Enterprise instances: 1 @ $500 per month Active Entity IDs: 200,000 total app instances (users) * 50% active = 100,000 Included Active Entity IDs: 10,000 Net Active Entity IDs: 100,000 - 10,000 = 90,000 @ $0.01 per Active Entity ID = $900

API Calls: 100,000 Active Entity IDs * 30 app invocations per month = 3,000,000 Included API Calls: 1,000,000 Net API Calls: 3,000,000 - 1,000,000 = 2,000,000 @ $10/ 100,000 API Calls = $200 TOTAL COST: $500 + $900 + $200 = $1600 per month





 Pricing Scenario 2: Microservice with Feature Flags 

Assume you have five backend microservices that support your mobile app. To fully test new microservice features, you want to dark launch them into production and target them only to testers. The mobile app is used worldwide, so you have the set of five microservices in each of 3 regions worldwide, and you want to test in your app in each region before going live.

You are moving toward continuous delivery so on average you dark launch a new feature every 3 days (10 dark launches per month), and the feature undergoes a day or two of testing before being released (for example, targeting removed). This results in 2 toggles per feature, one to activate the feature for testers, and one to remove targeting and activate for the general user population.

You will need the App Configuration Enterprise plan since both feature flags and segmentation are required.

For this example, assume an Enterprise plan instance is $500 per month, active entity IDs are $0.01 each, and API calls are $10 per 100,000. NOTE: These prices are assumed for this example only. Current pricing may be different from the amounts shown in the example. See the App Configuration catalog page for current pricing.
[Using Knative with Code Engine](https://cloud.ibm.com/docs/codeengine?topic=codeengine-knativeknative)



* [What is the supported version of Knative?](https://cloud.ibm.com/docs/codeengine?topic=codeengine-knativeknative-version)
* [Installing the Knative command-line interface](https://cloud.ibm.com/docs/codeengine?topic=codeengine-knativeknative-kubectl)
* [Interacting with Kubernetes API](https://cloud.ibm.com/docs/codeengine?topic=codeengine-knativekubectl-kubeconfig-knative)
* [Required access authorities to work with Knative API](https://cloud.ibm.com/docs/codeengine?topic=codeengine-knativeknative-api)







 FAQs 

[FAQs](https://cloud.ibm.com/docs/codeengine?topic=codeengine-faqsfaqs)



* [What is IBM Cloud Code Engine?](https://cloud.ibm.com/docs/codeengine?topic=codeengine-faqswhat-is-codeengine)
* [What is a project?](https://cloud.ibm.com/docs/codeengine?topic=codeengine-faqswhat-is-project)
* [Where can I find code samples?](https://cloud.ibm.com/docs/codeengine?topic=codeengine-faqsfind-code-samples)
* [!I need more memory Can I increase my limits?](https://cloud.ibm.com/docs/codeengine?topic=codeengine-faqsincrease-ce-limits)
* [Do I need a Docker Hub account to use Code Engine?]
Otherwise, you need to add a collection before you toggle a feature flag.

You can add feature flags to one or more collections either during creation of feature flag or during editing feature flag details.

For adding collections to the feature flag, for the Flag availability across collections field, select the collection from the list.

If you try to target a feature flag that is not linked to a collection, a window is displayed to add a feature flag to a collection.





 Configure feature rollout percentage 

You can configure the feature flag with a rollout percentage in the range of 0 to 100, denoting the applicability of the feature to a partial set of users or devices.

Percentage rollout helps to enable a feature to a small percentage of random users or subset of entities, providing more control on the release cycle and achieve progressive delivery. When you are confident on the feature that you want to roll out is working as intended, increase the percentage over time.

Percentage rollout uses a hashing algorithm that generates a hash based on the rule set. This hash is used by the SDK to generate a percentage value for that user. The percentage value generated for that user is compared to the value set for the percentage rollout value, determines whether the user is eligible to receive that feature or not.

For example, the hash has partitions from 1 to 100,000. When you assign a feature flag, the hash assigns values from 1 to 100,000 to users in each partition. For example, when you assign 25% to a feature flag, App Configuration SDK delivers that feature to hash partitions from 1 to 25,000. If you change the percentage of users receiving that feature from 25% to 50%, partitions 25,001 to 50,000 would be added to the set of partitions already receiving that feature.

Percentage rollout capability is available for Lite and Enterprise plans.

Following are some of the percentage rollout scenarios:



* If the feature flag is disabled, then SDK returns the default Disabled value.
* If the feature flag is enabled without any segment rules and no percentage rollout is set, then the SDK returns default Enabled value.
* If the feature flag is enabled without any segment rule and percentage rollout is set to 0%, then the SDK returns Disabled value for all users.
* The optional fields is bundle_method:

<-- <ul> -->

* bundle_method: Bundle method, default value is compatible, valid values are: compatible, modern and user-defined.

<-- </ul> -->

<-- </ul> -->

Sample JSON data: {
"certificate": "xxx",
"private_key": "xxx",
"bundle_method": "compatible"
}
-s, --json-str: Deprecated. The JSON data used to update a custom certificate.-j, --json-file: Deprecated. A file contains input JSON data.-i, --instance: Instance name or ID. If not set, the context instance specified by ibmcloud cis instance-set INSTANCE is used.--output: Specify output format, only JSON is supported.<-- </section "id="section-update-cert-options" "> --><-- <section "id="section-update-cert-examples" "> --> Examples Update custom certificate 5a7805061c76ada191ed06f989cc3dac.
Moving a VM based app to Kubernetes 

This tutorial may incur costs. Use the [Cost Estimator](https://cloud.ibm.com/estimator/review) to generate a cost estimate based on your projected usage.

This tutorial walks you through the process of moving a VM based app to a Kubernetes cluster by using Kubernetes Service. [Kubernetes Service](https://cloud.ibm.com/docs/containers?topic=containers-getting-started) delivers powerful tools by combining container and Kubernetes technologies, an intuitive user experience, and built-in security and isolation to automate the deployment, operation, scaling, and monitoring of containerized apps in a cluster of compute hosts.

The lessons in this tutorial include concepts for how to take an existing app, containerize the app, and deploy the app to a Kubernetes cluster. To containerize your VM based app, you can choose between the following options.



1. Identify components of a large monolith app that can be separated into their own microservice. You can containerize these microservices and deploy them to a Kubernetes cluster.
2. Containerize the entire app and deploy the app to a Kubernetes cluster.



Depending on the type of app that you have, the steps to migrate your app might vary. You can use this tutorial to learn about the general steps that you have to take and things that you have to consider before migrating your app.



 Objectives 



* Understand how to identify microservices in a VM based app and learn how to map components between VMs and Kubernetes.
* Learn how to containerize a VM based app.
* Learn how to deploy the container to a Kubernetes cluster in Kubernetes Service.
* Put everything learned to practice, run the JPetStore app in your cluster.







 Architecture 



 Traditional app architecture with VMs 

The following diagram shows an example of a traditional app architecture that is based on virtual machines.

Zoom

!
* [Supported app development methods in Fabric v2.4](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-dev-methods-v24)
* [Fabric Peer Gateway documentation](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-fabric-gateway-docs)
* [Connecting to the Fabric Gateway peer service](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-connecting-fabric-gateway)



* [Legacy model of developing applications](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-learning-resources)



* [High-Level Programming Model APIs](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-high-level)
* [Low-Level Fabric SDK APIs**](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-low-level)



* [Application connectivity and availability](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-transx)
* [Network considerations](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-networking)
* [Application compatibility](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-appibp-console-app-compat)
Changing the operating system (OS) on your device 

You can change the OS and the software that is installed by reloading the OS. After you select OS Reload on the device, a link is provided to edit the software on your system. You can update the OS, Control Panel, Antivirus packages, and database software by using this edit.

See [OS Reload](https://cloud.ibm.com/docs/bare-metal?topic=bare-metal-reloading-the-os) for more information.
Integrating with SMS 

IBM Cloud

Add a text messaging integration so your assistant can exchange messages with your customers.

The Short Messaging Service (SMS) supports text-only messages. Typically, SMS restricts the text message length to 160 characters. The Multimedia Messaging Service (MMS) supports sending images and text messages that are over 160 characters in length. When you create a phone number with Twilio, MMS message support is included automatically. IntelePeer MMS message support is not yet available.

Customers send text messages to your hosted phone number. Twilio and IntelePeer use a messaging webhook that you set up to send a POST request with the text message body to your assistant. Each response from the assistant is sent back to Twilio or IntelePeer to be converted to an outbound SMS message that is sent to the customer. The responses are sent to the SMS provider's API for processing. You provide your SMS provider's authentication token information, which serve as your API access credentials.

Refer to the following sections to set up the integration for your SMS provider:



* [Integrating SMS with Twilio](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-smsdeploy-sms-twilio)
* [Integrating SMS with IntelePeer](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-smsdeploy-sms-intelepeer)



If you want your assistant to be able to switch between voice and text during a customer interaction, enable both the phone and text messaging integrations. The integrations do not need to use the same third-party service provider. For more information, see [Integrating with phone](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-phone).



 Integrating SMS with Twilio 



 Before you begin 

If you don't have a text messaging phone number, set up an SMS with Twilio account and get a phone number.



1. Go to the [Twilio website](https://www.twilio.com/).
2.