Bekannte Probleme mit Oracle Blockchain Platform auf Oracle Cloud Infrastructure

Erfahren Sie, welche Probleme bei der Verwendung von Oracle Blockchain Platform auftreten können und wie Sie sie umgehen.

Anfänglich in früheren Releases gemeldete Probleme:

Storage- und OCPU-Skalierung nicht unterstützt

Die Skalierung der Speicher- oder OCPU-Kapazität wird auf Oracle Blockchain Platform-Instanzen der Version 25.4.1 nicht unterstützt. Wenn Sie versuchen, die REST-API zum Skalieren der Speicher- oder OCPU-Kapazität zu verwenden, wird eine UnsupportedOperationException-Fehlermeldung zurückgegeben.

Hyperledger Fabric-SDKs veraltet

Die Hyperledger Fabric-SDKs sind jetzt zugunsten der Fabric Gateway-Client-API veraltet. Möglicherweise können Sie die Hyperledger Fabric-SDKs weiterhin verwenden, um Anwendungen für Oracle Blockchain Platform zu entwickeln. Die Fabric Gateway-Client-API wird jedoch bevorzugt.

Falscher Speicherwert in REST-API gemeldet

Der Wert storageUsedInTBs, der vom REST-API-Endpunkt "Blockchain-Plattforminformationen abrufen" zurückgegeben wird, gibt immer 0 für Oracle Blockchain Platform-Instanzen der Version 25.4.1 zurück.

Behelfslösung: Es gibt keine Workaround für dieses Problem.

Einige Felder, die nicht von der REST-API "Blöcke prüfen" zurückgegeben werden

Die folgenden Felder werden vom REST-API-Endpunkt "Blöcke verifizieren" auf Oracle Blockchain Platform-Instanzen der Version 25.4.1 nicht zurückgegeben: verifyResult und firstBlockNum.

Behelfslösung: Es gibt keine Workaround für dieses Problem.

Buchdetails für einen Kanal können nicht angezeigt werden

Wenn Sie auf der Seite "Ledger" auf einen Block für einen Kanal klicken, werden die Transaktionsdetails angezeigt. Es gibt ein intermittierendes Problem, bei dem manchmal die Transaktionsdetails nicht angezeigt werden, wenn Sie auf einen Block klicken.

Problemumgehung: Aktualisieren Sie die Browserseite, und klicken Sie erneut auf den Block, um die Transaktionsdetails anzuzeigen.

Rich History-Konfiguration nicht gespeichert

Wenn Sie im Dialogfeld Rich-Historie konfigurieren auf Speichern klicken, gibt die UI an, dass die globale Konfiguration erfolgreich gespeichert wurde. Wenn Sie jedoch versuchen, die Rich-Historienkonfiguration anzuzeigen, ist sie nicht verfügbar, weil sie nicht tatsächlich gespeichert wurde. Dies ist ein vorübergehendes Problem.

Problemumgehung: Versuchen Sie erneut, die Rich-History-Konfiguration zu speichern.

Go Chaincode-Versionskompatibilität

Für Version 25.4.1 von Oracle Blockchain Platform wurde die verwendete Go-Version auf 1.24.4 aktualisiert. Wenn Sie versuchen, einen Chaincode bereitzustellen oder zu aktualisieren, der nicht mit Go 1.24.4 kompatibel ist, verläuft der Prozess möglicherweise nicht erfolgreich. Bevor Sie einen Chaincode aktualisieren oder bereitstellen, der in Go geschrieben ist, stellen Sie sicher, dass der Chaincode mit Go 1.24.4 erstellt werden kann. Sie können die folgenden Befehle für den Inhalt des Chaincode-Ordners auf einem System verwenden, auf dem Go 1.24.4 installiert ist, um auf Fehler zu prüfen:
go mod tidy
go mod vendor

Derzeit bereitgestellte Chaincodes sind von diesem Verhalten nicht betroffen und funktionieren nach dem Upgrade auf Oracle Blockchain Platform 25.4.1 weiterhin wie erwartet.

Node.js Chaincode-Versionskompatibilität

Für die Version 25.4.1 von Oracle Blockchain Platform wurde die verwendete Version von Node.js auf 22.14.0 aktualisiert. Wenn Sie versuchen, einen Chaincode bereitzustellen oder zu aktualisieren, der nicht mit Node.js 22.14.0 kompatibel ist, verläuft der Prozess möglicherweise nicht erfolgreich. Bevor Sie ein Upgrade durchführen oder einen Chaincode bereitstellen, der in Node.js geschrieben ist, stellen Sie sicher, dass der Chaincode mit Node.js 22.14.0 erstellt werden kann.

Derzeit bereitgestellte Chaincodes sind von diesem Verhalten nicht betroffen und funktionieren nach dem Upgrade auf Oracle Blockchain Platform 25.4.1 weiterhin wie erwartet.

Unveränderte gesperrte Salden nach Minting- und Burning-Genehmigungen

Minting- und Brennen-Genehmigungen verwenden den Hold-Mechanismus, der eine Vorgangs-ID als Eingabe verwendet. Die Methoden getOnHoldBalanceWithOperationId und getOnHoldDetailsWithOperationId geben den Sperrbetrag zurück, der mit einer angegebenen Vorgangs-ID verknüpft ist. Bei Standardsperrvorgängen, die die Methoden executeHold und releaseHold verwenden, ändert sich der Sperrbetrag nach Abschluss der Methode. Beispiel: Wenn Sie nach der Genehmigung (mit der Methode executeHold) eine Sperre mit der Vorgangs-ID first für 100 Token anfordern, beträgt der Sperrbetrag 0. Die Methoden getOnHoldBalanceWithOperationId und getOnHoldDetailsWithOperationId geben 0 als Sperrbetrag für die Vorgangs-ID first zurück.

Dieses Verhalten gilt nicht für Präge- oder Brenngenehmigungen. Beispiel: Wenn Sie nach der Genehmigung (mit der Methode approveMint) eine Anforderung an 100 Token mit der Vorgangs-ID second stellen, beträgt der Sperrbetrag immer noch 100. Die Methoden getOnHoldBalanceWithOperationId und getOnHoldDetailsWithOperationId geben 100 für die Vorgangs-ID second zurück.

Im Falle des Prägens oder Verbrennens stellt die Genehmigung einen Antrag, diesen Betrag zu minzen oder zu verbrennen, aber es erfolgt keine Übertragung in der Genehmigungsphase. Da die Minting- und Burn-Genehmigungen denselben internen Hold-Mechanismus wie standardmäßige Hold-Operationen verwenden, geben die Abfragemethoden den Wert zurück, der im Hold Key-Value-Paar gespeichert ist. Dieser Wert wird nach dem Minting oder Brennen von Genehmigungen nicht geändert.

Workaround: Sie können die Methoden getOnHoldBalanceWithOperationId und getOnHoldDetailsWithOperationId verwenden, um die angeforderten Mint- oder Burn-Beträge zu prüfen. Beachten Sie jedoch die Unterschiede zwischen diesen Vorgängen und Standardsperrvorgängen.

Anfänglich in früheren Releases gemeldete Probleme:

Fehler beim Kontolimit beim Upgraden von Go Chaincodes

Wenn Sie Chaincode, der von einer früheren Version von Blockchain App Builder in der Go-Sprache mit dem erweiterten Token Taxonomy Framework-Standard generiert wurde, auf Version 25.2.2 upgraden, wird möglicherweise der folgende Fehler angezeigt, wenn Sie versuchen, eine Transaktion abzuschließen:
account has exceeded the limit for maximum number of transfers -1
Dieser Fehler tritt auch in der Go-Version des Chaincodes auf, die für das CBDC-Großhandelsmodell spezifisch ist. Dieser Fehler tritt auf, weil die vorherige Version von Blockchain App Builder den Wert -1 verwendet hat, um keine täglichen Kontolimits darzustellen, aber in Version 25.2.2 gibt es keinen Standardwert, und das Fehlen dieses Schlüssel/Wert-Paares gibt an, dass das Konto keine täglichen Limits aufweist.
Problemumgehung: Verwenden Sie die folgenden Methoden, um neue Standardwerte für Kontolimits festzulegen. Wenn Sie keine Werte für die optionalen Parameter max_daily_amount oder max_daily_transaction übergeben, werden die Schlüssel/Wert-Paare entfernt, damit das Konto mit Version 25.2.2 korrekt funktioniert.
SetMaxDailyAmount(token_id string, org_id string, user_id string, max_daily_amount ...float64)
SetMaxDailyTransactionCount(token_id string, org_id string, user_id string, max_daily_transactions ...float64)

Unerwarteter Tokenfehler beim Debugging auf Microsoft Windows 11

Wenn Sie die Blockchain App Builder-Debug-Funktion in Visual Studio Code verwenden, die unter Microsoft Windows 11 ausgeführt wird, wird die folgende Fehlermeldung angezeigt:
Unexpected token ':"admin"' in expression or statement.
Wenn dieser Fehler auftritt, verläuft das Chaincode-Deployment und das Debugging nicht erfolgreich.

Behelfslösung: Es gibt keine Behelfslösung für dieses Problem.

Erforderliche Go-Syntax für "Keine täglichen Kontolimits"

In Chaincode, der von Blockchain App Builder generiert wird und den erweiterten Token Taxonomy Framework-Standard und die Go-Programmiersprache verwendet. Wenn Sie die täglichen Kontolimits nicht festlegen möchten, wenn Sie die Methode CreateAccount verwenden, müssen Sie den leeren Wert "" und nicht "{}" für den Parameter daily_limits übergeben. Die korrekten Parameter für die Go-Version der Methode CreateAccount sehen dem folgenden Beispiel ähnlich aus:
["CentralBank","cb","fungible",""]
Diese Go-Version des Chaincodes speziell für das Großhandel CBDC-Modell hat auch diese Anforderung.

REST-Proxytimeoutfehler bei Verwendung von Postman Collections

Für die Postman-Collections, die von Blockchain App Builder generiert werden und Transaktionen mit dem Oracle Blockchain Platform-REST-Proxy ausführen, wird der Standardtimeoutwert auf 6000 gesetzt, wie im folgenden Beispiel dargestellt:
{
    "chaincode": "WholesaleCBDCConfidential",
    "args": [
        "getTokenAuditors"
    ],
    "timeout": 6000,
    "sync": true,
    "peer": "org-xyz-abc.blockchain.ocp.oraclecloud.com:20009",
    "transientMap": {
        "args": "[]"
    }
    }'
In einigen Fällen kann ein Timeout bei der REST-Proxyverarbeitung auftreten, obwohl die Transaktion tatsächlich von Oracle Blockchain Platform verarbeitet wird. Dies führt zu der folgenden Antwort:
{
    "returnCode": "Failure",
    "error": "failed to invoke chaincode: Client Status Code: (5) TIMEOUT. Description: request timed out or been cancelled",
    "result": null
}

Workaround: Erhöhen Sie den Timeoutwert basierend auf Ihrem spezifischen Anwendungsfall.

Funktionsliste in Visual Studio Code enthält zwei Methoden falsch

Wenn Sie das Feature "Vertrauliche Transaktionen" mit der Visual Studio Code-Version von Blockchain App Builder verwenden, werden zwei Methoden in der Funktionsliste im Bereich Ausführen angezeigt: executeHoldTokensSender und executeHoldTokensReceiver. Diese beiden Methoden funktionieren nur korrekt, wenn sie mit der Zwei-Phasen-Commit-API des REST-Proxys verwendet werden, die von der Visual Studio Code-Version von Blockchain App Builder nicht unterstützt wird. Verwenden Sie diese beiden Methoden nicht in der Visual Studio Code-Version von Blockchain App Builder.

App Builder-CLI wird deinstalliert, wenn die Prüfung der Voraussetzungen nicht erfolgreich verläuft

Wenn Sie ein Upgrade der Befehlszeilenschnittstelle (CLI) von Blockchain App Builder durchführen, indem Sie die neueste Version installieren oder neu installieren. Wenn die Prüfung der Voraussetzungen nicht erfolgreich verläuft, wird die vorhandene CLI von Blockchain App Builder deinstalliert.

Problemumgehung: Sie können entweder die ältere Version der Blockchain App Builder-CLI neu installieren oder Ihr System aktualisieren, um die Voraussetzungen zu erfüllen, und dann die neuere Version der Blockchain App Builder-CLI installieren.

Kein Fehler, wenn eine NFT-Transaktion mit Bruchteilen falsche Dezimalstellen verwendet

Wenn Sie Blockchain App Builder verwenden, um mit Bruchteilen von NFTs zu arbeiten, die den ERC-1155-Standard verwenden, wird ein Fehler nicht angezeigt, wenn ein Transaktionsbetrag eine größere Anzahl von Dezimalstellen als die maximale Anzahl von Dezimalstellen in der Spezifikationsdatei verwendet. Stattdessen wird der tatsächliche Transaktionsbetrag auf die Anzahl der Dezimalstellen abgeschnitten, die in der Spezifikationsdatei definiert sind. Auch wenn die Salden des Absenders und des Empfängers auf die angegebene Anzahl von Stellen abgeschnitten werden, zeigt der Wert transactedAmount in der Transaktionshistorie den nicht abgeschnittenen Wert an.

Umgehung: Validieren Sie einen Transaktionsbetrag, bevor Sie eine Transaktion erstellen, um sicherzustellen, dass der Transaktionsbetrag keine größere Anzahl von Dezimalstellen als in der Eingabespezifikationsdatei für den Chaincode angegeben verwendet.

Fiat-Geldtoken oder Saldentransfermuster kann nicht von der Seite "Entwicklertools" aus ausgeführt werden

Eine neue Version des Fiat Money Token-Beispiels ist in Oracle Blockchain Platform 22.4.2 enthalten. Der aktualisierte Chaincode hat eine andere Package-ID als die vorherige Version. Wenn Sie das Fiat Money Token-Beispiel bereitgestellt haben, wird das Beispiel nach dem Upgrade auf Oracle Blockchain Platform 22.4.2 nicht mehr als auf der Seite "Entwicklertools" in der Konsole bereitgestellt angezeigt, und Sie können keine Vorgänge auf der Seite "Entwicklertools" für das Beispiel ausführen.

Dasselbe Verhalten tritt auch im Beispiel "Saldentransfer" auf, das für Oracle Blockchain Platform 22.3.2 aktualisiert wurde, um mit der Funktion "Atomtransaktionen" zu arbeiten.

Problemumgehung: Installieren Sie den Beispiel-Chaincode erneut auf den Peers, wodurch die neuere Version des Chaincodes mit der neuen Paket-ID installiert wird. Führen Sie für jeden Kanal, in dem das Beispiel bereitgestellt wurde, ein Upgrade des Chaincodes auf das neue Package durch. Nachdem der Chaincode aktualisiert wurde, funktionieren der Status und die Vorgänge des Beispiels auf der Seite "Entwicklertools" normal.

Go Deployment-Fehler bei Verwendung von Blockchain App Builder

Beim Deployment eines Go Chaincode-Projekts mit Blockchain App Builder kann ein Fehler wie der Folgende auftreten:
ERROR RunCommand: spawn modd ENOENT
ERROR RunCommand: Error in Chaincode deployment
[+] Running 3/3
  Container ca.example.com Stopped 0.4s
  Container orderer.example.com Stopped 0.6s
  Container peer0.org1.example.com Stopped 0.6s
ERROR RunCommand: Error in Chaincode deployment, process exit with code 1
Workaround:
macOS
  1. Führen Sie den folgenden Befehl aus:
    env GO111MODULE=off go get ‘github.com/cortesi/modd/cmd/modd’
  2. Wiederholen Sie das Deployment.
Microsoft Windows
  1. Führen Sie den folgenden Befehl mit go install aus:
    go install github.com/cortesi/modd/cmd/modd@latest
  2. Verwenden Sie go get, um die folgenden Befehle auszuführen:
    SET GO111MODULE=auto
    go get ‘github.com/cortesi/modd/cmd/modd’
  3. Wiederholen Sie das Deployment.

Initialisierungsfehler in Chaincode TypeScript, der vom Blockchain-App Builder generiert wurde

Wenn Sie TypeScript-Chaincode mit Blockchain App Builder Version 22.4.2 oder früher generieren, werden möglicherweise Fehler ähnlich dem folgenden Text angezeigt, wenn Sie den Chaincode lokal oder remote bereitstellen oder ausführen:
Lokale Umgebung:
INFO: Error in initalizing chaincode. Error :  failed to initialize chaincode Error: Failed to 
initialize the chaincode Error: endorsement failure during invoke. response: status:500 message:"error 
in simulation: failed to execute transaction 
e22ba18c00ecbd3135cdb509e08667cf6d5d9e79c4217b73492b5bb50836d58d: could not launch chaincode 
testagain:v0: error building chaincode: error building image: failed to get chaincode package for 
external build: could not get legacy chaincode package 'testagain:v0': open 
/var/hyperledger/production/chaincodes/testagain.v0: no such file or directory
Remote-Umgebung:
INFO: 

============ Started Initializing Chaincode ============

ERROR: {
  "Error": "Chaincode Deployment failed. Error in initializing chaincode: Status Code: 400, 
Error Message: {\"returnCode\":\"Failure\",\"error\":\"failed to invoke chaincode: 
Transaction processing for endorser 
[jasfounderdec5-oabcs1-ams.blockchain.ocp.oraclecloud.com:20010]: Chaincode status Code: 
(500) UNKNOWN. Description: error in simulation: failed to execute transaction 
947bbaf2feccc39cdf53bd7a07cd17f15d682a5a4ee6e3c3e63dec6346b0394e: error sending: chaincode 
stream terminated\",\"result\":null}"
}

Umgehung: Um dieses Verhalten für vorhandene Chaincodes zu umgehen, führen Sie die Schritte auf der folgenden Supportseite aus:

Deployment von TypeScript Chaincode in lokaler und Remote-OBP-Umgebung nicht erfolgreich

Um dieses Verhalten in neuen Chaincodes zu vermeiden, aktualisieren Sie auf Blockchain App Builder 22.4.3 oder höher. Sie können Blockchain App Builder über die Registerkarte Entwicklertools im Bereich "Blockchain App Builder" der Oracle Blockchain Platform-Konsole herunterladen.

Gatewaytimeouts bei Verwendung der XA-Bibliothek

Wenn Sie die XA-Java-Bibliothek mit Oracle Blockchain Platform verwenden, können mehrere Blockchain-Transaktionen zu einer globalen Transaktion kombiniert werden, die von einem externen Transaktionsmanager gesteuert wird. Wenn die Ausführung der Blockchain-Transaktionen länger als der Gateway-Timeoutwert von 60 Sekunden dauert, kann der Transaktionsstatus auf der Seite des Transaktionsmanagers und der Oracle Blockchain Platform-Seite unbestimmt werden.

Behelfslösung: Es gibt keine Workaround für dieses Problem. In diesem Fall müssen Sie die Transaktion manuell auflösen.

Token Chaincode kann nicht im Debug-Modus auf Microsoft Windows ausgeführt werden

Wenn Sie Blockchain App Builder Version 22.2.1 oder früher verwenden, können Sie Token Chaincode nicht im Debug-Modus unter Microsoft Windows ausführen.

Problemumgehung: Upgrade auf die neueste Version von Blockchain App Builder. Wenn Sie kein Upgrade durchführen können, gehen Sie folgendermaßen vor:

  1. Öffnen Sie die Datei chaincode/.vscode/task.json zur Bearbeitung.
  2. Die sechste Zeile der Datei task.json enthält den Schlüssel command. Entfernen Sie die folgende Zeichenfolge aus der Zeile:
    -p '${workspaceFolder}' 
Beispiel: Die Zeile in der Datei task.json vor der Bearbeitung:
"command": "ochain debug -p '${workspaceFolder}' \"[{\\\"userId\\\":\\\"admin\\\",\\\"orgId\\\":\\\"Org1MSP\\\"}]\" -v v8",
Hinter:
"command": "ochain debug \"[{\\\"userId\\\":\\\"admin\\\",\\\"orgId\\\":\\\"Org1MSP\\\"}]\" -v v8",

Limits für Ereignisgröße

Ab Version 22.2.1 ist die maximale Payload-Größe eines Ereignisses standardmäßig auf 50 KB begrenzt. Alle Ereignisse, die größer als die maximale Payload-Größe sind, werden gelöscht. Das Oracle DevOps-Team kann diesen Parameter auf Anforderung ändern. Wenn Sie Ereignisse abonnieren möchten, bei denen die Payload größer als 50 KB sein wird, öffnen Sie in My Oracle Support eine Serviceanfrage, um eine größere maximale Ereignisgröße anzufordern. Weitere Informationen finden Sie unter Ereignis abonnieren in der REST-API-Dokumentation.

Benutzer-IDs, die einen Doppelpunkt (:) enthalten, können nicht in REST-API-Aufrufen verwendet werden

Mit Oracle Blockchain Platform können Sie eine Benutzer-ID, die einen Doppelpunkt (:) enthält, mit einer REST-Proxyanmeldung verknüpfen. Diese Benutzer-ID kann jedoch nicht in REST-API-Aufrufen verwendet werden, wenn die Basisauthentifizierung (Benutzername und Kennwort) verwendet wird.

Problemumgehung: Stellen Sie sicher, dass alle Benutzer, die REST-Proxyanmeldungen zugeordnet sind, keinen Doppelpunkt (:) in ihren Benutzer-IDs haben.

CORS-Header für ungültige Zugangsdaten nicht zurückgegeben

Kundenanwendungen, die REST-Proxytransaktionen aufrufen, erhalten den CORS-Header (Cross-Origin Resource Sharing) (der Header Access-Control-Allow-Origin) in der Antwort nicht, wenn die in der Anforderung gesendeten Zugangsdaten ungültig, falsch oder abgelaufen sind.

Statusfehler des Auftraggebers beim Erstellen von Kanälen

Beim Erstellen eines Kanals wird möglicherweise der folgende Fehler angezeigt:
Failed to create the channel with error: aborted
Please check the orderers status.

Problemumgehung: Versuchen Sie, den Kanal erneut zu erstellen. Dies ist ein vorübergehendes Problem.

Debugging in Visual Studio Code unter Microsoft Windows

Unter Microsoft Windows kann beim Debuggen von Chaincode-Projekten in Visual Studio Code ein Fehler wie der Folgende auftreten:
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
Für diesen Fehler gibt es derzeit keine Problemumgehung.

Multi-Organization-Umgebungen und Blockchain App Builder

In einer Umgebung mit mehreren Organisationen müssen Sie möglicherweise die Konsole verwenden, um einige Vorgänge abzuschließen.

Um den Chaincode über eine Teilnehmerinstanz auf demselben Kanal erneut bereitzustellen, verwenden Sie die Konsole, um den Chaincode bereitzustellen.

(Hyperledger Fabric v2.2.4) Um den Chaincode zu aktualisieren, verwenden Sie die Konsole, und genehmigen Sie den Chaincode manuell von den Teilnehmern.

Skalierung funktioniert nur auf einer Komponente gleichzeitig

Sie können jeweils nur einen Knotentyp skalieren. Beispiel: Sie können Peerknoten hinzufügen und vorhandene Peerknoteneinstellungen gleichzeitig ändern. Wenn Sie jedoch auch Ihren Speicher erhöhen möchten, müssen Sie dies separat tun.

Darüber hinaus können Sie jeweils nur einen Peer oder OSN skalieren. Beispiel: Sie können nicht zwei Peers in einem einzigen Vorgang hinzufügen.

Falsche Betriebssystemuhr kann zu abgelehnten Anforderungen führen

Wenn die lokale Uhr des Clients oder SDK mehr als 15 Minuten entfernt ist, werden die Anforderungen davon vom Peer und vom Besteller abgelehnt. Stellen Sie sicher, dass die lokale Uhr korrekt eingestellt ist.

Blockchain-Anwendungen funktionieren aufgrund eines älteren Client-SDK nicht wie erwartet

Eine Anwendung kann sich unerwartet verhalten, wenn sie eine ältere Version des Client-SDK verwendet.

Problemumgehung: Lesen Sie die Dokumentation, in der die Client-SDK-Updates beschrieben werden, und ändern Sie Ihre Anwendungen nach Bedarf. Weitere Informationen finden Sie unter Hyperledger Fabric SDKs in der Hyperledger Fabric-Dokumentation.

Die Oracle Blockchain Platform-Instanzen des Netzwerks können keine entzogenen Zertifikate von Drittanbietern verwalten

Wenn ein Oracle Blockchain Platform-Netzwerk entweder Organisationen mit Zertifikaten von Drittanbietern oder Hyperledger Fabric-Organisationen enthält und deren Zertifikate widerrufen werden, werden die entzogenen Zertifikate nicht auf die Oracle Blockchain Platform-Instanzen des Netzwerks angewendet, werden nicht angezeigt und können nicht entzogen werden.

Problemumgehung: Verwenden Sie die native Hyperledger Fabric-CLI oder das SDK, um die Zertifikatsperrlistendatei (CRL) der Organisation zu importieren.

Die Kanalliste des Gründers enthält fehlerhafte Informationen, und die Option "Kanalorganisationen bearbeiten" ist nicht verfügbar

In einem gemischten Netzwerk (in dem eine Gründerinstanz und Teilnehmerinstanz verschiedene Versionen von Oracle Blockchain Platform ausführen) kann die Gründerkanalliste die falsche MSP-ID für einen von einem Teilnehmer erstellten Kanal anzeigen. Anstelle der MSP-ID des Teilnehmers wird die MSP-ID des Gründers angezeigt. Dies kann passieren, nachdem Sie die CRL importiert, die CRL entzogen oder angewendet oder einen Anker-Peer auf einem Kanal festgelegt haben.

Die Option Kanalorganisationen bearbeiten des Kanals ist nur für die Instanz verfügbar, die im Feld Erstellt von angezeigt wird. Wenn die falsche MSP-ID angezeigt wird, kann der Kanalersteller die Kanalorganisationen nicht aktualisieren.

Behelfslösung: Es gibt keine Behelfslösung für dieses Problem.

ImplicitMeta Policy wird von Oracle Blockchain Platform nicht unterstützt

Wenn Sie die native Hyperledger Fabric-CLI oder das SDK zum Ändern der Kanalkonfiguration verwenden, können einige der angegebenen Konfigurationseinstellungen von Oracle Blockchain Platform nicht unterstützt werden.

  • Die native Hyperledger Fabric-CLI und das SDK verwenden die Kanal-Policy ImplicitMeta für Leser und Autoren. Wenn der Kanal diese Policys verwendet, kann die Oracle Blockchain Platform-Konsole nicht garantieren, dass die administrativen Vorgänge (z.B. "Organisation bearbeiten") erfolgreich verarbeitet werden können.

    Problemumgehung: Aktualisieren Sie die Reader- und Writer-Policys in die Signatur-Policys, und definieren Sie die Policy-Regeln nach Bedarf. Weitere Informationen finden Sie unter Access Control-Listen (ACL) in der Dokumentation zu Hyperledger Fabric.

  • Wenn ein Kanal den Policy-Typ ImplicitMeta verwendet und in der Kanalkonfiguration die mod_policy im Gruppenabschnitt in "Admins" geändert wird und mehrere Organisationen im Kanal vorhanden sind, können Sie den Kanal nicht mit Oracle Blockchain Platform verwalten. Beispiel: Sie können dem Kanal keine neuen Organisationen hinzufügen oder die ACL-Policy des Kanals in irgendeiner Weise ändern, einschließlich der Wiederherstellung des ursprünglichen Wertes.

    Umgehung: Verwenden Sie die native Hyperledger Fabric-CLI oder das SDK, um den Kanal zu verwalten.

Kanalersteller kann die Konfiguration des Kanals nicht aktualisieren

Wenn Sie die native Hyperledger Fabric-CLI oder das SDK zum Erstellen eines Kanals verwenden, ist die Ersteller-Policy nicht in der Datei configtx.yaml enthalten. Oracle Blockchain Platform erfordert die Ersteller-Policy, damit der Kanalersteller die Konfiguration eines Kanals bearbeiten kann.

Problemumgehung: Bearbeiten Sie die Datei configtx.yaml manuell, um die Creator-Policy hinzuzufügen.

Setzen von "blocktolive" auf 0 in instantiateChaincode-Endpunkt wird in REST-API nicht unterstützt

Wenn Sie den instantiateChaincode-Endpunkt der REST-API verwenden und in dataCollectionConfig den Wert blocktolive auf 0 setzen, wird der folgende Fehler angezeigt: {"respMesg":"invalid argument"}.

Um zu verhindern, dass Daten aus der privaten Datenbank gelöscht werden, müssen Sie in Hyperledger Fabric den Wert blocktolive auf 0 setzen. Die Oracle Blockchain Platform-REST-API unterstützt jedoch nicht die Einstellung dieser Konfiguration auf 0.

Problemumgehung: Verwenden Sie die Konsole, um den Chaincode zu instanziieren, und setzen Sie im Abschnitt "Private Data Collections" des Dialogfelds Chaincode instanziieren das Feld blocktolive auf 0.

Peer kann private Daten nicht von einem anderen Peer abrufen

Ein Peer kann private Daten nicht aus einem anderen Peer abrufen, wenn der blocktolive-Wert einer privaten Datenerfassung kleiner als 10 ist und der maxPeerCount-Wert kleiner als die Gesamtanzahl der Peers ist, nicht einschließlich des Endorsing Peer. Dieser Wert wird festgelegt, wenn Sie mit der Konsole eine Definition für die private Datenerfassung erstellen oder die native Hyperledger Fabric-CLI oder das native SDK verwenden.

Problemumgehung: Stellen Sie sicher, dass der Wert blocktolive auf 10 oder höher gesetzt ist. Oder stellen Sie sicher, dass der Wert maxPeerCount auf nicht weniger als die Gesamtanzahl der Peers festgelegt ist, ohne dass der Peer für die Freigabe berücksichtigt wird. Bei Bedarf können Sie den Chaincode erneut instanziieren oder aktualisieren, um diese Werte zurückzusetzen.

Einstellungen für Kanalerstellerorganisation und Kanal-Policy inkonsistent

Mit der Konsole können Sie einen Kanal erstellen und die ACL Ihrer Organisation auf ReaderOnly setzen. Nachdem Sie den neuen Kanal gespeichert haben, können Sie diese ACL-Einstellung nicht über die Option Kanalorganisationen bearbeiten des Kanals aktualisieren.

Sie können jedoch die Option Kanal-Policys verwalten der Konsole verwenden, um Ihre Organisation zur Writers-Policy hinzuzufügen, wodurch die ReaderOnly-ACL-Einstellung des Kanals überschrieben wird.

Problemumgehung: Für dieses Problem gibt es keinen Workaround.

Exportierte und importierte Datei - Inkompatibilität

Sie können keine Dateien (CRLs, Zertifikate, Orderering-Service-Einstellungen und Peers) zwischen der Konsole und den REST-APIs exportieren und importieren.

Von der Konsole exportierte Dateien und REST-APIs sind nur für den Import mit derselben Komponente kompatibel. Beispiel: Wenn Sie einen Peer mit der Konsole exportieren, können Sie ihn nicht mit der REST-API importieren (Sie können ihn nur mit der Konsole importieren). Wenn Sie einen Peer mit der REST-API exportieren, können Sie ihn nicht mit der Konsole importieren (Sie können ihn nur mit der REST-API importieren).

Problemumgehung: Für dieses Problem gibt es keinen Workaround.

Anforderungen für Chaincode-Namen

Die Anforderungen an den Oracle Blockchain Platform-Chaincode-Namen und -Version unterscheiden sich von den Hyperledger Fabric-Anforderungen. Sie müssen die Oracle Blockchain Platform-Anforderungen verwenden, wenn Sie einen Chaincode über die Konsole oder den Hyperledger Fabric-Client bereitstellen. Wenn Sie diese Anforderungen beim Deployment über den Hyperledger Fabric-Client nicht erfüllen, wird der Chaincode möglicherweise falsch in der Konsole aufgeführt.

Problemumgehung: Verwenden Sie die folgenden Regeln, wenn Sie einen Chaincode-Namen und eine Chaincode-Version bereitstellen.

  • Verwenden Sie alphanumerische ASCII-Zeichen, Bindestriche (-) und Unterstriche (_).
  • Der Name darf nur mit alphanumerischen ASCII-Zeichen beginnen und enden. Beispiel: Sie können keine Namen wie _mychaincode oder mychaincode_ verwenden.
  • Auf Bindestriche (-) und Unterstriche (_) müssen alphanumerische ASCII-Zeichen folgen. Beispiel: Sie können keine Namen wie my--chaincode oder my-_chaincode verwenden.
  • Name und Version können jeweils bis zu 64 Zeichen lang sein.
  • Die Chaincode-Version kann auch Punkte (.) und Pluszeichen (+) enthalten.

Verhalten der Datums- und Uhrzeitauswahl

Die Oracle Blockchain Platform-Datums- und Uhrzeitauswahl verhält sich nicht wie erwartet. Mit der Datums- und Uhrzeitauswahl können Sie Elemente wie Logdateien oder Buchaktivitäten filtern.

Problemumgehung: Verwenden Sie die folgenden Informationen, um die Datums- und Zeitauswahl zu verwenden.

  • Wenn Sie einen bestimmten Zeitraum auswählen (z.B. Letzter Tag) und ihn dann erneut auswählen, um die Abfrage erneut auszuführen, wird die Abfrage nicht erneut ausgeführt. Um die neuesten Informationen abzurufen, klicken Sie auf die Schaltfläche "Aktualisieren".
  • Wenn Sie die Zeitzone auf Ihrem Computer nicht festgelegt haben, müssen Sie bei Auswahl der Option Benutzerdefiniert die Start- und Endzeit in GMT angeben. Wenn Sie in den Voreinstellungen jedoch die Zeitzoneneinstellung auf GMT setzen (wählen Sie in der Konsole Ihren Instanznamen aus, klicken Sie auf Voreinstellungen und dann auf Zeitzoneneinstellung), wird die Zeitzone auf der Konsole automatisch in GMT konvertiert.