Oracle Blockchain Platform 的已知问题
了解在使用 Oracle Blockchain Platform 时可能遇到的问题以及如何解决这些问题。
此发行版中的新已知问题
最初在早期版本中报告的问题
支持的 Hyperledger Fabric 版本
Oracle Blockchain Platform 24.1.3 支持 Hyperledger Fabric 2.5.7。
支持的浏览器
如果控制台的行为不像预期的那样,请检查您是否正在使用受支持浏览器的最新版本。
Oracle Blockchain Platform 支持以下浏览器:
- Mozilla Firefox
- Google Chrome
- Safari
- Microsoft Edge/Internet Explorer
Hyperledger Fabric 版本的互操作性
Oracle Blockchain Platform 不支持在同一区块链网络中使用基于 Hyperledger Fabric v1.4.7 和 Hyperledger Fabric v2.x 的实例。解决方法:请勿尝试在同一区块链网络上运行不同主要版本的 Hyperledger Fabric。
以前版本的功能不受支持
先前版本的 Oracle Blockchain Platform Enterprise Edition 支持负载平衡器和硬件安全模块。Oracle Blockchain Platform 24.1.3 不支持这些功能。
对等节点或排序者的存储已满
#kubectl logs <orderer-pod> -n <instance-namespace> -100f返回的潜在错误:path=/u01/work/hyperledger/production/orderer/etcdraft/wal/xjfrgv.tmp/0000000000000000-0000000000000000.wal
segment-bytes=64000000 error="no space left on device"或者2025-06-26T04:24:45.140179751Z [35m2025-06-26 04:24:45.140 UTC 0181 PANI[0m [orderer.commmon.multichannel]
[35;1minitAppChannelsWhenSystemChannelExists[0m -> Failed to create chain support for channel 'xjfrgv',
error: error creating consenter for channel: xjfrgv: failed to restore persisted raft data: failed to create or read
WAL: failed to initialize WAL: no space left on devicekubectl get orderernode -n <instancename>和编辑节点:kubectl edit orderernode obp-AAA-ZZZ-ordererZ -n instancename在 spec、storage 和 size 部分中,将大小从 2Gi 增加到 10Gi 并保存文件。
kubectl get peer -n <instancename>编辑每个对等节点:# kubectl edit peer obp-AAA-ZZZ-peerZ -n instancename在 spec、storage、chaincode 和 peer 部分中,将大小从 2Gi 增加到 10Gi 并保存文件。
kubectl get sts -n instancename
kubectl scale sts/obp-AAA-ZZZ-ordererZ -n instancename --replicas=0
kubectl scale sts/obp-AAA-ZZZ-ordererZ -n instancename --replicas=1
kubectl scale sts/obp-AAA-ZZZ-peerZ -n instancename --replicas=0
kubectl scale sts/obp-AAA-ZZZ-peerZ -n instancename --replicas=1实例终止偶尔失败
如果您的实例无法完全终止,请尝试以下过程。
- 获取实例 UUID:
此 API 返回的# Replace username:password with the instance's admin user credentials AUTH_BEARER=$(echo -n 'username:password' | base64) curl -k --location 'https://<control-plane-url>/api/v1/blockchainPlatforms/instances' \ --header "Authorization: Basic $AUTH_BEARER"id是 UUID。 - 确定导致终止失败的组件:
kubectl get namespace "<instance-namespace>" -o json \ | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \ | kubectl replace --raw /api/v1/namespaces/<instance-namespace>/finalize -f - | jq -r '.status'NamespaceContentRemaining字段可能包含多个资源,具体取决于实例的状态。这些信息显示了阻止终止名称空间的资源。 - 重新启动
hlf-operator和obp-operator,这将重新启动实例的删除流。# Restart hlf-operator kubectl rollout restart deployment -n obp-cp hlf-operator-controller-manager # Restart obp-operator kubectl rollout restart deployment -n obp-cp obp-operator - 终止流程现在将重新启动。要查看终止是否成功,可以重新运行步骤 2 中使用的 API,以查看哪些组件仍处于活动状态以及终止的状态。如果终止成功,则 API 请求将失败。
- 要确认实例名称空间已终止,请确保名称空间不再列出:
kubectl get ns
# Replace username:password with the instance's admin user credentials
AUTH_BEARER=$(echo -n 'username:password' | base64)
curl -k --location --request DELETE 'https://<control-plane-url>/api/v1/blockchainPlatforms/instances/<instance-uuid>' \
--header "Authorization: $AUTH_BEARER"实例创建仅支持捆绑的 OpenLDAP
创建 Oracle Blockchain Platform 实例时,即使有选项为不同类型的 LDAP 添加 LDAP 配置,也必须使用与产品捆绑在一起的默认 OpenLDAP。
解决方法:将数据从外部 LDAP 系统同步到与 Oracle Blockchain Platform 捆绑的默认 OpenLDAP,然后继续创建实例。
证书验证期间对等搜索失败
如果客户机应用程序使用fabric-sdk-go 模块,则由于对等方搜索过程中的证书验证,您的应用程序可能会失败,因为 fabric-sdk-go 版本不受支持。
fabric-sdk-go 模块,请更新到以下版本:github.com/hyperledger/fabric-sdk-go v1.0.1-0.20240123083657-5d6ca326e01b未更新节点的日志显示
在控制台 UI 中,如果查看特定节点的日志,然后导航到其他窗格,然后返回初始节点的日志,则不会再次提取日志。
解决方法:刷新浏览器页面以提取最新日志。
不支持定制根 CA 证书
Hyperledger Fabric CA 根 CA 证书是自签名证书。此发行版的 Oracle Blockchain Platform 不支持使用客户提供的根 CA 证书或中间 CA 证书对这些证书进行签名。
不支持从以前的发行版升级
无法从 Oracle Blockchain Platform Enterprise Edition 21.1 或 Oracle Blockchain Platform Enterprise Edition 19.3 升级到 Oracle Blockchain Platform Enterprise Edition 24.1。
解决办法:此问题没有解决办法。
使用 Oracle Blockchain Platform XA 实施时的错误消息
如果下载实施 XA 协议的 Java 库,然后在安装了 3.8.1 之前的 Maven 版本的环境中使用该库,则会显示以下错误消息:构件信息无效,包含无效字符。
解决方法:可下载库中的 .pom 文件具有版本号的占位符。更新 pom.xml 文件并将版本号更改为 24.1.3 。
登录时控制台无响应
尝试登录服务控制台时,UI 可能会不响应。
此行为由以下补丁程序修复:ORACLE BLOCKCHAIN PLATFORM ENTERPRISE EDITION (OBPEE) - 24.1.3 - PATCHSET-1,即补丁程序编号 36929129。有关安装补丁程序的详细信息,请参阅为 Oracle Blockchain Platform 打补丁。
无法重新安装以前无法安装的链代码
如果您尝试从以前失败的安装中重新安装与链代码同名的链代码,则安装过程将再次失败。如果为上一次安装尝试创建了链代码名称的 pod,但随后未删除,则可能会发生这种情况。
此行为由以下补丁程序修复:ORACLE BLOCKCHAIN PLATFORM ENTERPRISE EDITION (OBPEE) - 24.1.3 - PATCHSET-1,即补丁程序编号 36929129。有关安装补丁程序的详细信息,请参阅为 Oracle Blockchain Platform 打补丁。
网络的 Oracle Blockchain Platform 实例无法管理已撤消的证书
如果 Oracle Blockchain Platform 网络包含 Hyperledger Fabric 组织并且其证书被撤消,则已撤消的证书不会应用于、不会显示在其中,并且无法从网络的 Oracle Blockchain Platform 实例中撤消。
解决方法:使用本机超级账本架构 CLI 或 SDK 导入组织的证书吊销列表 (certificate revocation list,CRL) 文件。
渠道创建者无法更新渠道的配置
使用本机超级账本架构 CLI 或 SDK 创建通道时, configtx.yaml 文件中不包括创建者策略。Oracle Blockchain Platform 要求创建者策略允许渠道创建者编辑渠道的配置。
解决方法:手动编辑 configtx.yaml 文件以添加创建者策略。
对等端无法从其他对等端提取专用数据
如果专用数据收集的 blocktolive 值小于 10 且其 maxPeerCount 小于对等点总数(不包括背书对等点),则对等点可能会无法从其他对等点提取专用数据。当使用控制台创建专用数据收集定义或使用本机超级账本架构 CLI 或 SDK 时,会设置此值。
解决方法:确认 blocktolive 值设置为大于或等于 10。或者确认 maxPeerCount 设置为不小于对等节点总数,不包括背书对等节点。如果需要,可以重新实例化或升级链代码以重置这些值。
渠道创建者组织和渠道策略设置不一致
可以使用控制台创建通道并将组织的 ACL 设置为 ReaderOnly。保存新渠道后,无法从渠道的编辑渠道组织选项更新此 ACL 设置。
但是,您可以使用控制台的管理通道策略选项将组织添加到写入器策略,该策略将覆盖通道的 ReaderOnly ACL 设置。
解决办法:此问题没有解决办法。
导出和导入的文件不兼容性
您无法在控制台和 REST API 之间导出和导入文件(CRL、证书、排序服务设置和对等节点)。
控制台和 REST API 导出的文件仅与同一组件兼容。例如,如果使用控制台导出对等方,则无法使用 REST API 导入对等方(只能通过控制台导入)。如果您通过 REST API 导出对等端,则无法通过控制台导入(只能通过 REST API 导入)。
解决办法:此问题没有解决办法。
链代码名称要求
Oracle Blockchain Platform 链代码名称和版本要求与 Hyperledger Fabric 要求不同。从控制台或 Hyperledger Fabric 客户端部署链代码时,必须使用 Oracle Blockchain Platform 要求。如果您在从超级账本架构客户端部署时不遵循这些要求,则链代码可能会在控制台中错误地列出。
解决方法:部署链代码名称和版本时,请使用以下规则。
- 使用 ASCII 字母数字字符、短划线 (-) 和下划线 (_)。
- 名称只能以 ASCII 字母数字字符开头和结尾。例如,不能使用 _mychaincode 或 mychaincode_ 等名称。
- 短划线 (-) 和下划线 (_) 必须后跟 ASCII 字母数字字符。例如,不能使用 my--chaincode 或 my-_chaincode 等名称。
- 名称和版本长度最多为 64 个字符。
- 链代码版本还可以包含句点 (.) 和加号 (+)。
日期和时间选择器行为
Oracle Blockchain Platform 日期和时间选择器无法按预期运行。您可以使用日期和时间选择器来筛选日志文件或分类账活动等项。
解决方法:使用以下信息帮助您使用日期和时间选择器。
- 如果选择特定时段(例如,最后一天),然后再次选择该时段以重新运行查询,则查询不会重新运行。要获取最新信息,请单击“刷新”按钮。
- 如果您尚未在计算机上设置时区,则在选择自定义选项时,必须使用 GMT 指定开始时间和结束时间。但是,如果在 "Preferences"(首选项)中将 "Timezone Setting"(时区设置)设置为 GMT (在控制台中选择实例名称,然后单击 "Preferences"(首选项),然后单击 "Timezone Setting"(时区设置),控制台上的时区将自动转换为 GMT。