Known Issues for Oracle Blockchain Platform on Oracle Cloud Infrastructure (Gen 2)

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

Topics:

Supported Hyperledger Fabric Versions

Oracle Blockchain Platform 22.2.1 supports Hyperledger Fabric v2.2.4. Availability of Hyperledger Fabric v1.4.7 is limited to current Oracle Blockchain Platform customers already using Hyperledger Fabric v1.4.7. All new users will use Hyperledger Fabric v2.2.4 by default.

Supported Browsers

For information on supported browsers to use for instance provisioning through Oracle Cloud Infrastructure, see Signing In to the Console.

If the Oracle Blockchain Platform console isn’t behaving as expected, then check that you're using the latest version of a supported browser. Oracle Blockchain Platform supports the following browsers:

  • Mozilla Firefox
  • Google Chrome
  • Safari
  • Microsoft Edge / Internet Explorer

Interoperability of Hyperledger Fabric Versions

Oracle Blockchain Platform does not support the use of instances based on Hyperledger Fabric v1.4.7 and on Hyperledger Fabric v2.2.4 in the same blockchain network.

Workaround: Do not attempt to run different versions of Hyperledger Fabric on the same blockchain network. Starting with Oracle Blockchain Platform 22.2.1, you can upgrade instances that are based on Hyperledger Fabric v1.4.7 to Hyperledger Fabric v2.2.4.

Ordering Service Settings Not Updated After Platform Upgrade

When you upgrade an instance from Hyperledger Fabric v1.4.7 to Hyperledger Fabric v2.2.4, your existing ordering service settings are preserved. In other words, an upgraded instance uses the existing ordering service settings of the Hyperledger Fabric v1.4.7 instance, not the default settings for a new Hyperledger Fabric v2.2.4 instance. The following table summarizes the ordering service setting values. For more information about the ordering service, see Manage Ordering Service.

Setting Default Values for v1.4.7 and Upgraded v2.2.4 Instances Default Values for New v2.2.4 Instances
Batch timeout (ms) 2000 2000
Max message count 10 500
Absolute message bytes 98 98
Preferred message bytes 512 2
Snapshot interval size 20 16

Gossip Leader Election Attribute Not Updated After Platform Upgrade

When you upgrade an instance from Hyperledger Fabric v1.4.7 to Hyperledger Fabric v2.2.4, the gossip leader election attribute for the peer nodes is not updated. In other words, an upgraded instance uses the existing attribute of the Hyperledger Fabric v1.4.7 instance, not the default attribute for a new Hyperledger Fabric v2.2.4 instance. For more information about peer node attributes, see Peer Node Attributes.

Event Size Limits

Starting with version 22.2.1, by default the maximum payload size of an event is limited to 50 KB. Any events larger than the maximum payload size will be dropped. The Oracle DevOps team can modify this parameter by request. If you expect to subscribe to events where the payload will be larger than 50 KB, open a Service Request (SR) in My Oracle Support to request a larger maximum event size. For more information, see Subscribe to an Event in the REST API documentation.

User IDs That Contain a Colon (:) Can't Be Used in REST API Calls

Oracle Blockchain Platform allows you to associate a user ID that contains a colon (:) with a REST proxy enrollment. However, that user ID cannot be used in REST API calls when basic authentication (user name and password) is used.

Workaround: Ensure that all users associated with REST proxy enrollments do not have a colon (:) in their user IDs.

CORS Header Not Returned for Invalid Credentials

Customer applications that invoke REST proxy transactions will not receive the Cross-Origin Resource Sharing (CORS) header (the Access-Control-Allow-Origin header) in the response if the credentials that were sent in the request are invalid, incorrect, or expired.

Orderers Status Error When Creating Channels

When creating a channel, you might see the following error:
Failed to create the channel with error: aborted
Please check the orderers status.

Workaround: Try to create the channel again. This is an intermittent issue.

Cannot Run Token Chaincode in Debug Mode on Microsoft Windows

If you use Blockchain App Builder version 22.2.1 or earlier, you cannot run token chaincode in debug mode on Microsoft Windows.

Workaround: Upgrade to the latest version of Blockchain App Builder. If you are unable to upgrade, complete the following steps:

  1. Open the chaincode/.vscode/task.json file for editing.
  2. The sixth line of the task.json file includes the command key. Remove the following string from the line:
    -p '${workspaceFolder}' 
For example, the line in the task.json file before editing:
"command": "ochain debug -p '${workspaceFolder}' \"[{\\\"userId\\\":\\\"admin\\\",\\\"orgId\\\":\\\"Org1MSP\\\"}]\" -v v8",
After:
"command": "ochain debug \"[{\\\"userId\\\":\\\"admin\\\",\\\"orgId\\\":\\\"Org1MSP\\\"}]\" -v v8",

Debugging in Visual Studio Code on Windows 11

On Windows 11, you might encounter an error similar to the following while debugging chaincode projects in Visual Studio Code:
dlv: failed to install dlv(github.com/go-delve/delve/cmd/dlv@latest): Error: Command failed:
C:\Program Files (x86)\Go\bin\go.exe get -x github.com/go-delve/delve/cmd/dlv@latest
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list
# get https://proxy.golang.org/github.com/@v/list
# get https://proxy.golang.org/github.com/go-delve/@v/list
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/@v/list
# get https://proxy.golang.org/github.com/go-delve/delve/@v/list
# get https://proxy.golang.org/github.com/@v/list: 410 Gone (0.420s)
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/@v/list: 410 Gone (1.040s)
# get https://proxy.golang.org/github.com/go-delve/@v/list: 410 Gone (1.062s)
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list: 410 Gone (1.066s)
# get https://proxy.golang.org/github.com/go-delve/delve/@v/list: 200 OK (1.448s)
go: found github.com/go-delve/delve/cmd/dlv in github.com/go-delve/delve v1.8.3C:\Users\<UserName>\go\pkg\mod\github.com\go-delve\delve@v1.8.3\service\debugger\debugger.go:28:2:found packages native (proc.go) and 
your_operating_system_and_architecture_combination_is_not_supported_by_delve(support_sentinel.go) in C:\Users\Asus\go\pkg\mod\github.com\go-delve\delve@v1.8.3\pkg\proc\native
There is no workaround for this error at this time.

Blockchain App Builder Import Issue After Chaincode Upgrade

If you upgrade TypeScript chaincode that was generated with a previous version of Blockchain App Builder, an incorrect library import statement might be added to the chaincode in the /tests/<chaincodeName>.spec.ts file.
The incorrect statement in the file is the following text:
import { ChaincodeMockStub, Transform } from '@theledger/fabric-mock-stub';
Workaround: Replace the previous incorrect statement with the following text:
import { ChaincodeMockStub, Transform } from 'obp-fabric-mock-stub-ts';

Multi-Organization Environments and Blockchain App Builder

In an environment with multiple organizations, you might need to use the console to complete some operations.

To re-deploy the chaincode on the same channel through a participant instance, use the console to deploy the chaincode.

(Hyperledger Fabric v2.2.4) To upgrade the chaincode, use the console and manually approve the chaincode from the participants.

Ordering Nodes Can't Be Deleted

Ordering nodes (OSNs) once created can't be deleted.

Scaling Only Works on One Component at a Time

You can only scale one node type at a time. For example, you can make add peer nodes and modify existing peer node settings at the same time, but if you also want to increase your storage you must do that seperately.

Additionally, you can only scale one peer or OSN at a time - for example you can't add two peers in a single operation.

Incorrect Operating System Clock May Result in Rejected Requests

If the client or SDK's local clock is more than 15 minutes off, the requests from it will be rejected by the peer and orderer. Ensure your local clock is set correctly.

Blockchain Applications Aren’t Working as Expected Due to an Older SDK

An application can behave unexpectedly if it's using an older version of the SDK.

Workaround: Read the documentation describing the SDK updates and modify your applications as needed. For more information, see Hyperledger Fabric SDKs in the Hyperledger Fabric documentation.

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

If an Oracle Blockchain Platform network contains either organizations with third-party certificates or 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.

Founder's Channel List Contains Incorrect Created by Information and Edit Channel Organizations Option Isn’t Available

In a mixed network (where a founder instance and participant instance are running different versions of Oracle Blockchain Platform), the founder's channel list may display the wrong MSP ID for a channel created by a participant. Instead of the participant's MSP ID, the founder's MSP ID is displayed. This may happen after you import the CRL, revoke or apply the CRL, or set an anchor peer on a channel.

The channel's Edit Channel Organizations option is only available for the instance displayed in the Created by field. If the wrong MSP ID is displayed, then the channel creator can't update the channel organizations.

Workaround: There is no workaround for this issue.

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. For more information, see Access Control Lists (ACL) in the Hyperledger Fabric documentation.

  • 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.

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 the blocktolive value 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 the blocktolive value 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 value 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 value 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, 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 and version can each be up to 64 characters long.
  • The chaincode version can also contain periods (.) and plus signs (+).

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.