Known Issues for Oracle Blockchain Platform
Learn about the issues you may encounter when using Oracle Blockchain Platform and how to work around them.
Topics:
- Supported Hyperledger Fabric Version
- Supported Browsers
- Block Verification May Fail After Patching
- Patching May Fail Due to ZooKeeper Timeout
- Rich History Doesn't Work for New Peer Automatically
- REST API Call Returns Inaccurate Error Message
- Console Shows Invalid Options for Peer Management
- The Network's Oracle Blockchain Platform Instances Can't Manage Revoked Certificates
- ImplicitMeta Policy Isn't Supported by Oracle Blockchain Platform
- Channel Creator Can't Update the Channel's Configuration
- Peer and Client Roles Aren't Supported by Oracle Blockchain Platform
- Setting blocktolive to 0 in instantiateChaincode Endpoint Not Supported in REST API
- Peer Fails to Pull Private Data from Another Peer
- Channel Creator Organization and Channel Policy Settings Inconsistency
- Exported and Imported File Incompatibility
- Chaincode Name Requirements
- Date and Time Picker Behavior
- Manually Vendor the Shim with a Chaincode
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
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
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
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
- 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.
Oracle Database Known Issues for Oracle Blockchain Platform, Release 19.3.5
F20798-05
January 2021
Copyright © 2019, 2021, Oracle and/or its affiliates.
Primary Author: Kate Price
This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract. The terms governing the U.S. Government’s use of Oracle cloud services are defined by the applicable contract for such services. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Epyc, and the AMD logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.