vania-janet/multiturn-rag-retrieval-data huggingface dataset:
For example, in our topic on backing up and restoring components and networks, an [example schedule](https://cloud.ibm.com/docs/blockchain?topic=blockchain-backup-restorebackup-restore-schedule-snapshot) is provided which recommends that backups be taken of the ordering nodes and the peers (including the state database of the peer, if using CouchDB) each night.

However, if you are not taking regular backups, it is recommended that you minimally take a backup before attempting to upgrade a node, as it allows for a node to be restored to an earlier running state in cases where the upgrade fails. For information about how to backup your nodes by taking a snapshot of the relevant persistent volumes, check out [Taking snapshots](https://cloud.ibm.com/docs/blockchain?topic=blockchain-backup-restorebackup-restore-take-snapshot).





 Step two: Upgrade your nodes one at a time 

If you are upgrading both peer and ordering node binaries, it is a best practice to upgrade the ordering nodes first, as ensuring that the ordering nodes (and by extension, the ordering service) is functioning correctly is more important to the health of your network as a whole than the functioning of any particular peer.

The process for upgrading a node is relatively straightforward. First, make sure you are using the console where the node was created. You cannot use the console to update imported nodes. When a node upgrade is available, Upgrade available is visible on the node tile. If Upgrade available does not appear on the tile when it should be there, make sure your console is using the latest version using the [Refresh cluster](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-manage-consoleibp-console-refresh) feature.

You can then update the node:



1. Click on the tile representing the node.
2. The upgrade panel can be accessed either by clicking the Info and usage tab, next to the Upgrade available notice, or the Fabric version box. Clicking either one opens the Upgrade Fabric version side panel.
3.
Node.js action is failing 

 What’s happening 

A Node.js action does not seem to run to completion reliably.

 Why it’s happening 

If your Node.js action involves asynchronous calls to other services, your code might return from the main() function prematurely, which causes the action runtime to be stopped before your action is completed.

 How to fix it 

The main() function of a Node.js action is a synchronous function, which expects your action to be complete when you return from the main() function. In case you are using asynchronous calls, for example, when fetching data from Cloud Object Storage or Cloudant instances, it is unpredictable as to when the main() function fully completes its work. To ensure that the action runs to completion, use a Promise. A Promise in Node.js is a stand-in for an object. Using a promise allows you to return the object from a synchronous function immediately, but the actual result becomes available at a later point in time, when the promise is fulfilled.

The IBM Cloud® Functions Node.js runtime container supports promises that are returned from the main() function. If you prefer working in a more synchronous fashion, you can also declare your main() function as an async function, which allows you to wait for asynchronous calls to complete before the function continues.

Examples:

function main() {
return new Promise((resolve, reject) => {
...doGet(callback => {
resolve(); // <-- this terminates action execution, as the Promise got resolved
});
...
try {
...some synchronous code...
} catch(e) {
...log error...
reject(e); // <-- this also terminates the execution, but reports the failure back to the runtime
}
});
}

async function main() {
...some synchronous code...
await doGet(....)
Restricting network traffic to edge worker nodes 

Classic clusters

Edge worker nodes can improve the security of your Red Hat® OpenShift® on IBM Cloud® cluster by allowing fewer worker nodes by isolating the networking workload.

When you mark these worker nodes for networking only, other workloads can't consume the CPU or memory of the worker node and interfere with networking.

If you want to restrict network traffic to edge worker nodes in a multizone cluster, you must have at least two edge worker nodes per zone for high availability of load balancer or Ingress pods. Create an edge node worker pool that spans all the zones in your cluster, with at least two worker nodes per zone.



 Isolating networking workloads to edge nodes 

Add the dedicated=edge label to worker nodes on each public or private VLAN in your cluster.

The labels ensure that network load balancer (NLB) pods are deployed to those worker nodes only. For NLBs, ensure that two or more worker nodes per zone are edge nodes. Note that router pods for Ingress controllers and routes are not deployed to edge nodes and remain on non-edge worker nodes.

Before you begin



* Ensure that you have the following [IBM Cloud IAM roles](https://cloud.ibm.com/docs/openshift?topic=openshift-userschecking-perms):



* Any platform access role for the cluster
* Writer or Manager service access role for all namespaces



* [Access your Red Hat OpenShift cluster](https://cloud.ibm.com/docs/openshift?topic=openshift-access_cluster).



To create an edge node worker pool,



1. [Create a worker pool](https://cloud.ibm.com/docs/openshift?topic=openshift-add_workersadd_pool) that spans all zones in your cluster and has at least two workers per zone if you use NLBs or 3 or more workers per zone if you use ALBs. In the ibmcloud oc worker-pool create command, include the --label dedicated=edge option to label all worker nodes in the pool.
An open protocol that uses TCP/IP to provide access to directories that support an X.500 model and that does not incur the resource requirements of the more complex X.500 Directory Access Protocol (DAP). For example, LDAP can be used to locate people, organizations, and other resources in an Internet or intranet directory.





 Linux Hyperledger project 

An open source, collaborative effort to advance blockchain technology by identifying and addressing important features for a cross-industry open standard for distributed ledgers that can transform the way business transactions are conducted globally. Hyperledger serves as the foundation code for the IBM Blockchain products, services, and solutions. See also [Hyperledger fabric](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx8889858).





 load balancer 

Software or hardware that distributes workload across a set of servers to ensure that servers are not overloaded. The load balancer also directs users to another server if the initial server fails.





 load balancer as a service (LBaaS) 

A service that provides the ability to distribute traffic among instances in a virtual private cloud.





 local cloud 

A cloud computing environment within the client's data center. The local cloud is on-premises, providing improved latency and security. See also [borderless](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx8439189).





 logical unit number (LUN) 

In the Small Computer System Interface (SCSI) standard, a unique identifier used to differentiate devices, each of which is a logical unit (LU).





 LoopBack data source 

A JavaScript object that represents a back-end service such as a database, REST API (to be consumed), or SOAP web service. Data sources are backed by connectors that then communicate directly with the database or other back-end services.





 LoopBack model 

A model that provides a remote (REST) API that clients use to perform operations and interact with backend systems. The model consists of application data, validation rules, data access capabilities, and business logic.
If you followed the steps for creating a node from a different console, this would be Console 2.

After the ordering node has been successfully added, a new tile with the name of the node will appear on the Ordering nodes page. It will say it "Requires attention". This state reflects the fact that, while the node creation process has been successful, the node is not yet part of the consenter set of the system channel. The node must be added to the system channel before it can be added to any of the application channels.

Recall that the "consenter set" refers to the ordering service nodes actively participating in the ordering process on a channel, while the "system channel", which is managed by the ordering service, forms the template for application channels.

To add the node you created to the system channel, click on the node. You will see a Add node to ordering service button. Click this button. After the node has been added to the ordering service, the node should now be part of the system channel.

Note that it will take a few minutes for the new node to sync with ordering service in the system channel. During this time, you may see a message that your ordering service is down. This is normal --- the ordering service must come down while the new node is syncing. Any transactions proposed during this time will fail and will have to be resubmitted by the client application.

If you created this new node and added it to the system channel from a different console (Console 2), you must then export it to the console that originated the ordering service (Console 1). If the new node was added in Console 1, you can skip down to [Adding the node to the application channel](https://cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-console-add-remove-ordereribp-console-add-remove-orderer-consenters-add).







 Console 2: export the Ordering Service_2 node 

After the Ordering Service_2 node has successfully been created and added to the system channel, Console 2 must export a JSON representing the node to every channel member (in this tutorial, this means exporting it to Console 1).
For an example of how you can use an event listener to write data to an external database, see the [Off chain data sample](https://github.com/hyperledger/fabric-samples/tree/release-1.4/off_chain_data) in the Fabric samples.

Blockchain solutions can use any RDBMS or NoSQL DB such as IBM Cloudant for offchain data storage. Hyplerledger Fabric does not govern, interact with, or manage off-chain databases. In most cases, the off-chain database is used for reference data and non-transactional data. IBM has successfully built blockchain products and solution accelerators with Hyperledger Fabric and NoSQL databases such as OrientDB.
* If service discovery is on, will an endorsement request be routed to any peer on the network?

It depends on whether your endorsement policy is set to "ANY", in which any peer can sign an endorsement request, or whether the policy is bound directly to an organization's peers. The service discovery information provided by the peer supplies two pieces of information, Layouts and EndorsersByGroup. With these two pieces of data, the SDK has the ability to send requests to peers in different organizations that meet the endorsement policy requirements. The Node.js SDK provides default code that uses the Layouts and EndorsersByGroup and sends the requests to the appropriate peers to meet the endorsement policy requirements. This existing logic can be customized to meet the business needs.
* Do ordering service Raft nodes use Transport Layer Security (TLS) for communication?

Yes. The Raft ordering service nodes are configured to use TLS communication. TLS is embedded in the trust model of Hyperledger Fabric. By default, server-side TLS is enabled for all communications using TLS certificates. TLS is used to encrypt the communication between your nodes and as well as between your nodes and your applications. TLS prevents man-in-the-middle and session hijacking attacks. All IBM Blockchain Platform components use TLS to communicate with each other.
* How can I back up and restore components and networks?
See also [disaster recovery](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2113280).





 HMAC 

See [Hash-Based Message Authentication Code](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx6652268).





 host 

A computer that is connected to a network and that provides an access point to that network. The host can be a client, a server, or both a client and server simultaneously. See also [subdomain](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2040080), [client](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2000644), [Uniform Resource Locator](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2042491), [custom domain](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx5728384), [domain](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2021210), [route](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2037338).





 HSM 

See [hardware security module](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx6704988).





 HTTP method 

An action that is used by the Hypertext Transfer Protocol. HTTP methods include GET, POST, and PUT.





 HTTPS 

See [Hypertext Transfer Protocol Secure](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2237225).





 human annotator 

A subject matter expert who reviews, modifies, and augments the results of pre-annotation by identifying mentions, entity type relationships, and mention coreferences. By examining text in context, a human annotator helps determine ground truth and improve the accuracy of the machine learning model.
In addition to promoting finality, separating the endorsement of smart contract execution (which happens at the peers) from ordering gives Fabric advantages in performance and scalability, eliminating bottlenecks that can occur when execution and ordering are performed by the same nodes.

The ordering service performs one other key function: In networks that use a system channel the orderers maintain the "consortium", the list of organizations that can create and join application channels. Because some aspects of the configuration of application channels are inherited by default from the system channel (certain capability levels, for example), it is the job of ordering service admins to establish these defaults. Note however that the ordering service organization can add additional administrating organizations to the system channel.



* Orderers that do not use a system channel have REST APIs, called Channel Participation APIs. These APIs replace the application channel management features that the system channel provided.



The IBM Blockchain Platform uses an implementation of the Raft protocol, in which a leader node is dynamically elected among the ordering nodes in a channel (this collection of nodes is known as the “consenter set”), and that leader replicates messages to the follower nodes. Because the system can sustain the loss of nodes, including leader nodes, as long as there is a majority of ordering nodes (what’s known as a “quorum”) remaining, Raft is said to be “crash fault tolerant” (CFT). In the IBM Blockchain Platform, users have the ability to select a single node ordering service or a five node ordering service, though it is possible to add or remove nodes from an ordering service and from channels later on. Similarly, it is possible for either one organization or multiple organizations to manage the ordering service and contribute nodes.

For more information about the ordering service, see [The Ordering Service](https://hyperledger-fabric.readthedocs.io/en/release-2.2/orderer/ordering_service.html).





 Channels 

A channel is a mechanism that provides a private layer of communication, allowing subsets of network members to create a separate ledger for their transactions.
* A real-time publish and subscribe system. For more information, see [IBM Databases for Redis](https://www.ibm.com/uk-en/cloud/databases-for-redis) for handling publish and subscribe topics.
* A transaction log. Some databases store each change in a transaction log, but the distributed and eventually consistent nature of IBM Cloudant means that no definitive time-ordered transaction log exists.
* A querying mechanism. For more information, see [MapReduce Views](https://cloud.ibm.com/docs/Cloudant?topic=Cloudant-creating-views-mapreduce) for creating views of your data that is ordered by a key of your choice.



* Document versioning and conflicts FAQ

 Document versioning and conflicts FAQ 

When you use distributed databases, copies of your data might be stored in multiple locations. Keeping this data in sync is important. However, your work environment might prevent your users from updating documents with their changes immediately, or even replicating to the database.

As a result, the copies of a document might have different updates. "Conflicts" occur because IBM® Cloudant® for IBM Cloud® can't determine which copy is the correct one.

IBM Cloudant uses multi-version concurrency control (MVCC) to ensure that all nodes in each database cluster include only the newest version of a document.



IBM Cloudant databases are [eventually consistent](https://cloud.ibm.com/docs/services/Cloudant?topic=Cloudant-cap-theoremcap-theorem), which means IBM Cloudant must ensure that no differences exist between nodes. These inconsistencies can happen when out-of-date documents are synchronized.

It's important for IBM Cloudant databases to have concurrent read and write access. MVCC enables that capability. MVCC is a form of [optimistic concurrency control](https://en.wikipedia.org/wiki/Optimistic_concurrency_control) that makes read and write operations on IBM Cloudant databases faster because a database lock isn't necessary for read and write operations. At the same time, MVCC enables synchronization between IBM Cloudant database nodes.





You don't know.
This update means you will get a fully supported IBM Node.js runtime when you specify the latest stable Node.js runtime, v0.10.30, for your app. This runtime fixes the [V8 Memory Corruption vulnerability](https://nodejs.org/en/blog/vulnerability/v8-memory-corruption-stack-overflow/).

The buildpack also includes improvements and bug fixes to the Monitoring and Analytics service extension, allowing you to diagnose performance and error conditions through the service.





 29 July 2014 

Updated Liberty Buildpack v1.1-20140725-1341
: The new version of Liberty’s IBM Cloud Edition is here!



* With this version of Liberty, there are fixes in addition to new features that allow you to consume IBM Cloud services more effectively!
* With the new CouchDB feature available, the Cloudant® service can now automatically configure it so that a connector object is handily available! Parsing through VCAP_SERVICES and providing the ektorp client .jar files are no longer necessary.
* The new version of IBM SDK for Java is here!



* When your apps are pushed again, they use IBM SDK for Java Version 7.1-1.0. This comes with a substantial performance upgrade. Your app shows better throughput and reduced memory usage. See more about the IBM Java SDK [here](https://www.ibm.com/support/pages/node/508269).





Updated Node.js buildpack v1.1-20140717-1447
: The Node.js buildpack now comes with IBM SDK for Node.js v1.1.0.5. This update means you'll get a fully supported IBM Node.js runtime when you specify the latest stable Node.js runtime for your app, v0.10.29. See more about the [IBM Node.js SDKs](https://developer.ibm.com/languages/node-js/articles/download-nodejs-for-ibm-platforms/).
URL 

See [Uniform Resource Locator](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2042491).





 user 



* An IBMid or SoftLayer ID that is used as a person's identity in an account.
* A participant in a blockchain network that has indirect access to the ledger through a trust relationship to an existing member.







 user registry 

A collection of user information, such as user IDs and passwords, that is used as the basis for security control by a system such as a web application server.







 V 



 virtual 

Pertaining to not physically existing as such but made by software to appear to do so.





 virtual local area network (VLAN) 

A logical association of switch ports based upon a set of rules or criteria, such as Medium Access Control (MAC) addresses, protocols, network address, or multicast address. This concept permits the LAN to be segmented again without requiring physical rearrangement.





 virtual machine (VM) 

A software implementation of a machine that executes programs like a real machine. See also [virtual server](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2455638).





 virtual private cloud (VPC) 

A virtual network that is tied to a private user account and isolated from other networks in a public cloud. Only authorized users can access virtual private cloud resources, which include virtual servers, storage, and subnets.





 virtual private network (VPN) 

A private connection between two endpoints, even when the data is transferred across a public network. Usually, a VPN is used in combination with security methods, such as authentication and encryption, to provide maximum data security and privacy.





 virtual server 

A server that shares its resources with other servers to support applications. See also [virtual machine](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2043165).





 VLAN 

See [virtual local area network](https://cloud.ibm.com/docs/overview?topic=overview-glossaryx2438470).





 VM
For an example of how you can use an event listener to write data to an external database, see the [Off chain data sample](https://github.com/hyperledger/fabric-samples/tree/release-1.4/off_chain_data) in the Fabric samples.

Blockchain solutions can use any RDBMS or NoSQL DB such as IBM Cloudant for offchain data storage. Hyperledger Fabric does not govern, interact with, or manage off-chain databases. In most cases, the off-chain database is used for reference data and non-transactional data. IBM has successfully built blockchain products and solution accelerators with Hyperledger Fabric and NoSQL databases such as OrientDB.
* If service discovery is on, will an endorsement request be routed to any peer on the network?

It depends on whether your endorsement policy is set to "ANY", in which any peer can sign an endorsement request, or whether the policy is bound directly to an organization's peers. The service discovery information provided by the peer supplies two pieces of information, Layouts and EndorsersByGroup. With these two pieces of data, the SDK has the ability to send requests to peers in different organizations that meet the endorsement policy requirements. The Node.js SDK provides default code that uses the Layouts and EndorsersByGroup and sends the requests to the appropriate peers to meet the endorsement policy requirements. This existing logic can be customized to meet the business needs.
* Do ordering service Raft nodes use Transport Layer Security (TLS) for communication?

Yes. The Raft ordering service nodes are configured to use TLS communication. TLS is embedded in the trust model of Hyperledger Fabric. By default, server-side TLS is enabled for all communications using TLS certificates. TLS is used to encrypt the communication between your nodes and as well as between your nodes and your applications. TLS prevents man-in-the-middle and session hijacking attacks. All IBM Blockchain Platform components use TLS to communicate with each other.
* How can I back up and restore components and networks?