Known Issues for Oracle Blockchain Platform

Learn about the issues you may encounter when using Oracle Blockchain Platform and how to work around them.

Supported Hyperledger Fabric Version

Oracle Blockchain Platform 19.3.5 supports Hyperledger Fabric 1.4.1.

Supported Browsers

If the console isn’t behaving as expected, then check that you’re using a supported browser. This table displays the web browsers that Oracle Blockchain Platform supports.

Operating System Supported Browser 32 or 64 bit Version
Windows 7— 64 bit —SP1 Firefox Quantum ESR 32 60.2.2esr
Windows 7— 64 bit —SP1 Chrome 64 72.0.3626.121 (Official Build)
Windows 10 Professional — 64 bit — Version 1803 Firefox Quantum ESR 32 60.5.0esr
Mac OS 10.12.6 — 64 bit — 16G29 Safari 64 12.0.3 (12606.4.5.3.1)
Mac OS 10.12.6 — 64 bit — 16G29 Chrome 64 72.0.3626.121 (Official Build)
Mac OS 10.13.4 — 64 bit — 17E199 Chrome 64 72.0.3626.121 (Official Build)
Mac OS 10.13.4 — 64 bit — 17E199 Firefox Quantum ESR 64 60.5.2esr
Mac OS 10.13.4 — 64 bit — 17E199 Safari 64 11.1 (13605.1.33.1.2)
Mac OS 10.13.6 — 64 bit — 17G5019 Chrome 64 72.0.3626.121 (Official Build)
Mac OS 10.13.6 — 64 bit — 17G5019 Safari 64 12.0.3 (13606.4.5.3.1)

Block Verification May Fail After Patching

After applying the v19.3.5 patch to an earlier version, the block verification APIs may fail to work after applying the patch, returning an error message similar to:
ERROR: The versions of the multiple hosts are not consistent. All hosts of an instance must have the same version.

This can be resolved by restarting the instance.

Patching May Fail Due to ZooKeeper Timeout

While applying patches, it may fail with an error similar to:
patch  [zookeeper] nodes failed with StatusCode=500 Internal Server Error,
Body:\n==========================================\nscript zktest timed out,
This means the ZooKeeper cluster wasn't created in time for the patching process to complete successfully.

This can be resolved by running the patching process again.

Rich History Doesn't Work for New Peer Automatically

After configuring the rich history database, if you scale out a peer and then create a channel including just this new peer and then click Enable Rich History, you will get an error stating that the rich history database was not set successfully. Instantiating or invoking chaincode on this channel will not generate the rich history database at this point.

To enable the rich history database after scaling out a peer, after the new peer has been created go to the Channel page and configure the rich history database again.

REST API Call Returns Inaccurate Error Message

If you set up basic authentication with invalid user details, the REST API calls should return a 401 code for Unauthorized. Instead you may see an error similar to:
Could not get any response
There was an error connecting to servername.
or
HTTP/1.1 302 Moved Temporarily
There are a few potential causes that can be fixed:
  • Self-signed SSL certificates are being blocked.

    Fix this by turning off SSL certificate verification in Settings > General.

  • Proxy is configured incorrectly.

    Ensure that proxy is configured correctly in Settings > Proxy.

  • Request timeout.

    Change request timeout in Settings > General.

Console Shows Invalid Options for Peer Management

Occasionally the console menu will show invalid options for managing peers.
  • If you start or stop a peer and open the action menu while the process is happening, the option Remove Peer may be listed.
  • If you start or stop a peer and open the action menu while the process is happening, the option Edit Configuration may be listed.

The Network's Oracle Blockchain Platform Instances Can't Manage Revoked Certificates

If an Oracle Blockchain Platform network contains Hyperledger Fabric organizations and their certificates are revoked, then the revoked certificates aren't applied to, won't display in, and can't be revoked from the network's Oracle Blockchain Platform instances.

Workaround: Use the native Hyperledger Fabric CLI or SDK to import the organization's certificate revocation list (CRL) file.

ImplicitMeta Policy Isn't Supported by Oracle Blockchain Platform

If you use the native Hyperledger Fabric CLI or SDK to modify a channel's configuration, some of the configuration settings you specify can't be supported by Oracle Blockchain Platform.

  • The native Hyperledger Fabric CLI and SDK use the ImplicitMeta channel policy for readers and writers. When the channel uses these policies, the Oracle Blockchain Platform console can't guarantee that the administrative operations (for example, edit organization) can be successfully processed.

    Workaround: Update the readers and writers policies to the Signature policies, and define the policy rules as needed. See https://hyperledger-fabric.readthedocs.io/en/release-1.4/access_control.html

  • If a channel is using the ImplicitMeta policy type and in the channel configuration you change the mod_policy in the groups section to Admins and there is more than one organization in the channel, then you can't use Oracle Blockchain Platform to manage the channel. For example, you can't add new organizations to the channel or change the channel's ACL policy in any way, including restoring its original value.

    Workaround: Use the native Hyperledger Fabric CLI or SDK to manage the channel.

Channel Creator Can't Update the Channel's Configuration

When you use the native Hyperledger Fabric CLI or SDK to create a channel, the Creator policy isn't included in the configtx.yaml file. Oracle Blockchain Platform requires the Creator policy to allow the channel creator to edit a channel's configuration.

Workaround: Manually edit the configtx.yaml file to add the Creator policy.

Peer and Client Roles Aren't Supported by Oracle Blockchain Platform

Blockchain applications using the native Hyperledger Fabric CLI or SDK can use the peer and client roles. These roles can be added into the organizational units (OUs) of an application's x509 certificates. However, Oracle Blockchain Platform doesn't support these roles.

Workaround: Change the peer or client role to "member". And make sure that you're not signing certificates with the peer or client role, and don't use the native Hyperledger Fabric SDK to set endorsement policies based on the peer or client role.

Setting blocktolive to 0 in instantiateChaincode Endpoint Not Supported in REST API

If you're using the REST API's instantiateChaincode endpoint and in the dataCollectionConfig you set blocktolive to 0, then you'll receive the following error: {"respMesg":"invalid argument"}.

To prevent purging data from the private database, Hyperledger Fabric requires you to set blocktolive to 0. However, the Oracle Blockchain Platform REST API doesn't support setting this configuration to 0.

Workaround: Use the console to instantiate the chaincode, and in the Instantiate Chaincode dialog's Private Data Collections section, set the blocktolive field to 0.

Peer Fails to Pull Private Data from Another Peer

A peer can fail to pull private data from another peer if a private data collection's blocktolive value is less than 10 and its maxPeerCount is less than the total number of peers, not including the endorsing peer. This value is set when you use the console to create a private data collection definition or use the native Hyperledger Fabric CLI or SDK. See https://jira.hyperledger.org/browse/FAB-11889.

Workaround: Confirm that the blocktolive value is set to greater than or equal to 10. Or confirm that the maxPeerCount is set to no less than the total number of peers, not including the endorsing peer. If needed, you can re-instantiate or upgrade the chaincode to reset these values.

Channel Creator Organization and Channel Policy Settings Inconsistency

You can use the console to create a channel and set your organization's ACL to ReaderOnly. After you save the new channel, you can't update this ACL setting from the channel's Edit Channel Organizations option.

However, you can use the console's Manage Channel Policies option to add your organization to the Writers policy, which overwrites the channel's ReaderOnly ACL setting.

Workaround: There is no workaround for this issue.

Exported and Imported File Incompatibility

You can't export and import files (CRLs, certificates, orderering service settings, and peers) between the console and the REST APIs.

Files exported by the console and REST APIs are only compatible for import with the same component. For example, if you export a peer using the console, then you can't import it with the REST API (you can only import it with the console). And if you export a peer with the REST API, then you can't import it with the console (you can only import with the REST API).

Workaround: There is no workaround for this issue.

Chaincode Name Requirements

The Oracle Blockchain Platform chaincode name and version requirements are different than the Hyperledger Fabric requirements. You must use the Oracle Blockchain Platform requirements when you deploy a chaincode from the console or the Hyperledger Fabric client. If you don’t follow these requirements when deploying from the Hyperledger Fabric client, then the chaincode may be listed incorrectly in the console.

Workaround: Use the following rules when deploying a chaincode name and version.

  • Use ASCII alphanumeric characters, ('') quotes, dashes (-), and underscores (_).
  • The name must start and end only with ASCII alphanumeric characters. For example, you can't use names like _mychaincode or mychaincode_.
  • Dashes (-) and underscores (_) must be followed with ASCII alphanumeric characters. For example, you can't use names like my--chaincode or my-_chaincode.
  • The name must be 1 to 64 characters long.
  • A chaincode version can contain a period (.).

Date and Time Picker Behavior

The Oracle Blockchain Platform date and time picker doesn’t behave as expected. You use the date and time picker to filter items such as log files or ledger activity.

Workaround: Use the following information to help you use the date and time picker.

  • If you select a specific time period (for example, Last day) and then select it again to re-run the query, the query doesn’t re-run. To get the latest information, click the refresh button.
  • If you haven't set the time zone on your computer, then when you select the Custom option, you must specify the start time and end time in GMT. However, if you set the Timezone Setting to GMT in the Preferences (in the console select your instance name, then click Preferences, and then Timezone Setting), the timezone on the console automatically converts to GMT.

Manually Vendor the Shim with a Chaincode

In Hyperledger Fabric, the fabric-ccenv image contains the github.com/hyperledger/fabric/core/chaincode/shim (shim) package. This allows you to package a chaincode without needing to include the shim. However, this may cause issues in future Hyperledger Fabric releases, and it may cause issues when using packages that are included with the shim.

Workaround: To avoid potential issues, you should manually vendor the shim package with the chaincode prior to using the peer command-line interface for packaging and installing a chaincode, or packaging or installing a chaincode. See https://jira.hyperledger.org/browse/FAB-5177.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.