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 不支援這些功能。

對等或訂購者已滿儲存空間

如果您執行下列指令並取得下列其中一個錯誤,則由於空間不足,Pod 可能無法在磁碟上寫入。
#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 device
解決方法:執行下列命令以取得執行處理的 orderer 節點名稱:
kubectl get orderernode -n <instancename>
以及編輯節點:
kubectl edit orderernode obp-AAA-ZZZ-ordererZ -n instancename
specstoragesize 區段中,將大小從 2Gi 增加至 10Gi 並儲存檔案。
接下來會取得該執行處理中所有對等體的名稱:
kubectl get peer -n <instancename>
編輯每個端點 :
# kubectl edit peer obp-AAA-ZZZ-peerZ -n instancename
specstoragechaincodepeer 區段中,將大小從 2Gi 增加到 10Gi 並儲存檔案。
重新啟動每個訂購者和對等 StatefulSet 的 StatefulSet:
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

實例偶爾終止失敗

如果您的執行處理無法完全終止,請嘗試下列程序。

解決方法:
  1. 取得執行處理 UUID:
    # 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"
    此 API 傳回的 id 為 UUID。
  2. 識別造成終止失敗的元件:
    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 欄位可能包含多項資源。這些會顯示防止命名空間終止的資源。
  3. 重新啟動 hlf-operatorobp-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
  4. 終止處理作業現在將會重新啟動。若要查看終止是否成功,您可以重新執行步驟 2 中使用的 API,以查看哪些元件仍然有效,以及終止的狀態。如果終止成功,API 要求將會失敗。
  5. 若要確認執行處理命名空間已經終止,請確定不再列出命名空間:
    kubectl get ns
如果您的執行個體仍列在區塊鏈平台管理員執行個體列表中,則初始終止請求可能已逾時。使用下列 API 清除已終止執行處理的項目:
# 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 執行處理,也無法從該執行處理撤銷。

解決方法:使用原生 Hyperledger Fabric CLI 或 SDK 匯入組織的憑證撤銷清單 (CRL) 檔案。

通路建立者無法更新通路的組態

當您使用原生 Hyperledger Fabric CLI 或 SDK 建立通道時, configtx.yaml 檔案中不會包含 Creator 原則。Oracle Blockchain Platform 需要建立者原則,才能允許通路建立者編輯通路的組態。

解決方法:手動編輯 configtx.yaml 檔案以新增 Creator 原則。

對等方無法從另一個對等方提取專用資料

如果專用資料收集的 blocktolive 值小於 10 且其 maxPeerCount 小於對等 (不包括背書對等) 的總數,對等體就無法從另一個對等體提取專用資料。當您使用主控台建立專用資料收集定義或使用原生 Hyperledger Fabric CLI 或 SDK 時,就會設定這個值。

解決方法:確認 blocktolive 值設為大於或等於 10。或確認 maxPeerCount 設為不少於對等體總數,但不包括背書對等體。如有需要,您可以重新建立或升級鏈碼,以重設這些值。

通路建立者組織與通路政策設定不一致

您可以使用主控台來建立通道,並將組織的 ACL 設為 ReaderOnly。儲存新通道之後,您就無法從通道的編輯通道組織選項更新此 ACL 設定。

不過,您可以使用主控台的管理通道原則選項,將您的組織新增至 Writers 原則,此原則會覆寫通道的 ReaderOnly ACL 設定。

解決方法:此問題沒有解決方法。

匯出與匯入的檔案不相容

您無法在主控台與 REST API 之間匯出及匯入檔案 (CRL、憑證、排序服務設定值及對等)。

主控台和 REST API 匯出的檔案僅與相同元件的匯入相容。例如,如果您使用主控台匯出對等體,則無法使用 REST API 匯入對等體 (只能透過主控台匯入)。如果您匯出具有 REST API 的對等體,則無法與主控台匯入 (只能與 REST API 一起匯入)。

解決方法:此問題沒有解決方法。

鏈碼名稱需求

Oracle Blockchain Platform 鏈碼名稱和版本需求與 Hyperledger Fabric 需求不同。從主控台或 Hyperledger Fabric 用戶端部署鏈碼時,您必須使用 Oracle Blockchain Platform 需求。如果您在從 Hyperledger Fabric 用戶端部署時未遵循這些需求,則鏈碼可能會在主控台中不正確地列出。

解決方法:部署鏈碼名稱和版本時,請使用下列規則。

  • 使用 ASCII 文數字字元、破折號 (-) 以及底線 (_)。
  • 名稱的開頭和結尾只能是 ASCII 文數字字元。例如,您無法使用 _mychaincodemychaincode_ 等名稱。
  • 破折號 (-) 和底線 (_) 後面必須接著 ASCII 文數字字元。例如,您無法使用 my--chaincodemy-_chaincode 等名稱。
  • 名稱和版本最多可有 64 個字元。
  • 鏈碼版本也可以包含句號 (.) 與加號 (+)。

日期與時間選擇器行為

Oracle Blockchain Platform 日期和時間選擇器未如預期般運作。您可以使用日期和時間選擇器來篩選項目,例如日誌檔或分類帳活動。

解決方法:使用下列資訊來協助您使用日期和時間選擇器。

  • 如果您選取特定期間 (例如,最後一天 ),然後再次選取以重新執行查詢,則不會重新執行查詢。若要取得最新資訊,請按一下重新整理按鈕。
  • 如果您尚未在電腦上設定時區,則當您選取自訂選項時,必須以 GMT 指定開始時間和結束時間。不過,如果您在「偏好設定」中將「時區設定」設為 GMT (在主控台中選取您的執行處理名稱,然後按一下「偏好設定」,然後按一下「時區設定」),主控台上的時區會自動轉換成 GMT。