Problemas Conhecidos do Oracle Blockchain Platform

Saiba mais sobre os problemas que você pode encontrar ao usar o Oracle Blockchain Platform e como trabalhar com eles.

Versão do Hyperledger Fabric Suportada

O Oracle Blockchain Platform 24.1.3 suporta o Hyperledger Fabric 2.5.7.

Browsers Suportados

Se o console não estiver se comportando conforme esperado, verifique se você está usando a versão mais recente de um navegador suportado.

O Oracle Blockchain Platform suporta os seguintes navegadores:

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

Interoperabilidade das Versões do Hyperledger Fabric

O Oracle Blockchain Platform não suporta o uso de instâncias baseadas no Hyperledger Fabric v1.4.7 e no Hyperledger Fabric v2.x na mesma rede blockchain.

Solução alternativa: não tente executar diferentes versões principais do Hyperledger Fabric na mesma rede blockchain.

Funcionalidade não suportada das versões anteriores

Versões anteriores do Oracle Blockchain Platform Enterprise Edition suportavam balanceadores de carga e módulos de segurança de hardware. Eles não são suportados pelo Oracle Blockchain Platform 24.1.3.

Armazenamento Cheio para Pares ou Solicitantes

Se você executar o comando a seguir e obter um dos erros listados abaixo, talvez os pods não consigam gravar no disco devido a espaço insuficiente.
#kubectl logs <orderer-pod> -n <instance-namespace> -100f
Possíveis erros retornados:
path=/u01/work/hyperledger/production/orderer/etcdraft/wal/xjfrgv.tmp/0000000000000000-0000000000000000.wal 
segment-bytes=64000000 error="no space left on device"
ou
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
Solução alternativa: execute o seguinte comando para obter o nome do nó do ordenador da instância:
kubectl get orderernode -n <instancename>
e o nó de edição:
kubectl edit orderernode obp-AAA-ZZZ-ordererZ -n instancename
Na seção spec, storage, size, aumente o tamanho da 2Gi para a 10Gi e salve o arquivo.
Em seguida, obtenha os nomes de todos os colegas dessa instância:
kubectl get peer -n <instancename>
Edite cada par:
# kubectl edit peer obp-AAA-ZZZ-peerZ -n instancename
Nas seções spec, storage, chaincode e peer, aumente o tamanho da 2Gi para a 10Gi e salve o arquivo.
Reinicie o StatefulSet para cada solicitante e o par 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

Falha no Encerramento da Instância Ocasionalmente

Se a instância não for encerrada corretamente, tente o procedimento a seguir.

Solução Alternativa:
  1. Obtenha o UUID da instância:
    # 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"
    O id retornado por essa API é o UUID.
  2. Identifique o componente que causa falha no desligamento:
    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'
    O campo NamespaceContentRemaining pode conter vários recursos, dependendo do estado da instância. Estes revelam os recursos que impedem que o namespace seja encerrado.
  3. Reinicie hlf-operator e obp-operator, o que reiniciará o fluxo de exclusão da instância.
    # 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. O processo de encerramento será reiniciado. Para ver se o encerramento foi bem-sucedido, você pode executar novamente a API usada na etapa 2 para ver quais componentes ainda estão ativos e o status do encerramento. Se o encerramento for bem-sucedido, a solicitação de API falhará.
  5. Para confirmar se o namespace da instância foi encerrado, certifique-se de que o namespace não esteja mais listado:
    kubectl get ns
Se sua instância ainda estiver listada na lista de instâncias do Gerenciador do Blockchain Platform, a solicitação de encerramento inicial poderá ter expirado. Use a seguinte API para limpar a entrada da instância encerrada:
# 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"

A Criação da Instância Suporta Somente Pacote OpenLDAP

Ao criar uma instância do Oracle Blockchain Platform, mesmo que haja opções para adicionar configurações LDAP para diferentes tipos de LDAP, você deve usar o OpenLDAP padrão que é fornecido com o produto.

Solução alternativa: Sincronize os dados do seu sistema LDAP externo com o OpenLDAP padrão que é fornecido com o Oracle Blockchain Platform e, em seguida, continue com a criação da instância.

A Descoberta de Pareamento Falha Durante a Validação do Certificado

Se seu aplicativo cliente usar o módulo fabric-sdk-go, seu aplicativo poderá falhar devido à validação do certificado durante o processo de descoberta de pareamento por causa de uma versão não suportada do fabric-sdk-go.
Para usar o módulo fabric-sdk-go, atualize para a seguinte versão:
github.com/hyperledger/fabric-sdk-go v1.0.1-0.20240123083657-5d6ca326e01b

Exibição de Log Não Atualizada para um Nó

Na IU da console, se você exibir logs de um nó específico, navegue até outro painel e retorne aos logs do nó inicial, os logs não serão extraídos novamente.

Solução alternativa: atualize a página do browser para extrair os logs mais recentes.

Certificados CA Raiz Personalizados Não Suportados

Os certificados de CA raiz da CA do Hyperledger Fabric são autoassinados. Esta versão do Oracle Blockchain Platform não suporta a assinatura desses certificados com certificados de CA raiz ou intermediários fornecidos pelo cliente.

Upgrade de Versões Anteriores Não Suportado

Você não pode fazer upgrade para o Oracle Blockchain Platform Enterprise Edition 24.1 do Oracle Blockchain Platform Enterprise Edition 21.1 ou do Oracle Blockchain Platform Enterprise Edition 19.3.

Não há solução alternativa para este problema.

Mensagem de Erro ao Usar a Implementação XA do Oracle Blockchain Platform

Se você fizer download da biblioteca Java que implementa o protocolo XA e depois usá-la em um ambiente em que uma versão do Maven posterior à 3.8.1 esteja instalada, a seguinte mensagem de erro será exibida: as informações do artefato não são válidas e contêm caracteres inválidos.

Solução alternativa: o arquivo .pom na biblioteca para download tem um espaço reservado para o número da versão. Atualize o arquivo pom.xml e altere o número da versão para 24.1.3.

Console não responde ao fazer login

Quando você tentar fazer log-in na console de serviço, a interface do usuário poderá não responder.

Esse comportamento é corrigido pelo seguinte patch: ORACLE BLOCKCHAIN PLATFORM ENTERPRISE EDITION (OBPEE) - 24.1.3 - PATCHSET-1, que é o patch número 36929129. Para obter mais informações sobre a instalação do patch, consulte Aplicar Patch ao Oracle Blockchain Platform.

Não é possível reinstalar um Chaincode que falhou ao instalar anteriormente

Se você tentar reinstalar um chaincode com o mesmo nome que um chaincode de uma instalação com falha anterior, o processo de instalação falhará novamente. Isso pode acontecer quando um pod com o nome chaincode foi criado para a tentativa de instalação anterior e, em seguida, não foi excluído.

Esse comportamento é corrigido pelo seguinte patch: ORACLE BLOCKCHAIN PLATFORM ENTERPRISE EDITION (OBPEE) - 24.1.3 - PATCHSET-1, que é o patch número 36929129. Para obter mais informações sobre a instalação do patch, consulte Aplicar Patch ao Oracle Blockchain Platform.

As Instâncias do Oracle Blockchain Platform da Rede Não Podem Gerenciar Certificados Revogados

Se uma rede do Oracle Blockchain Platform contiver organizações do Hyperledger Fabric e seus certificados forem revogados, os certificados revogados não serão aplicados, não serão exibidos e não poderão ser revogados das instâncias do Oracle Blockchain Platform da rede.

Solução alternativa: use a CLI ou o SDK nativo do Hyperledger Fabric para importar o arquivo da lista de revogação de certificados (CRL) da organização.

O Criador do Canal Não Pode Atualizar a Configuração do Canal

Quando você usa a CLI ou o SDK nativo do Hyperledger Fabric para criar um canal, a política do Criador não é incluída no arquivo configtx.yaml. O Oracle Blockchain Platform requer a política do Criador para permitir que o criador do canal edite a configuração de um canal.

Solução alternativa: edite manualmente o arquivo configtx.yaml para adicionar a política do Criador.

O sistema remoto não consegue extrair dados privados de outro sistema remoto

Um par pode falhar ao extrair dados privados de outro par se o valor blocktolive de uma coleção de dados privados for menor que 10 e seu maxPeerCount for menor que o número total de pares, não incluindo o par de aprovação. Esse valor é definido quando você usa a console para criar uma definição de coleta de dados privada ou usar a CLI ou o SDK nativo do Hyperledger Fabric.

Solução alternativa: Confirme se o valor blocktolive está definido como maior ou igual a 10. Ou confirme se o maxPeerCount está definido para não menos que o número total de pares, não incluindo o par aprovador. Se necessário, você pode reinstanciar ou atualizar o chaincode para redefinir esses valores.

Inconsistência das Definições de Política de Canal e Organização do Criador de Canal

Você pode usar a console para criar um canal e definir a ACL da sua organização como ReaderOnly. Depois de salvar o novo canal, você não poderá atualizar essa definição de ACL na opção Editar Organizações do Canal do canal.

No entanto, você pode usar a opção Gerenciar Políticas de Canal da console para adicionar sua organização à política Writers, que substitui a definição de ACL ReaderOnly do canal.

Não há solução alternativa para este problema.

Incompatibilidade de Arquivo Exportado e Importado

Você não pode exportar e importar arquivos (CRLs, certificados, definições de serviço de ordenação e pares) entre a console e as APIs REST.

Os arquivos exportados pela console e pelas APIs REST só são compatíveis para importação com o mesmo componente. Por exemplo, se você exportar um par usando a console, não poderá importá-lo com a API REST (você só poderá importá-lo com a console). E se você exportar um par com a API REST, não poderá importá-lo com a console (você só pode importá-lo com a API REST).

Não há solução alternativa para este problema.

Requisitos de Nome do Chaincode

Os requisitos de nome e versão do chaincode do Oracle Blockchain Platform são diferentes dos requisitos do Hyperledger Fabric. Você deve usar os requisitos do Oracle Blockchain Platform ao implantar um chaincode no console ou no cliente Hyperledger Fabric. Se você não seguir esses requisitos ao implantar no cliente Hyperledger Fabric, o chaincode poderá ser listado incorretamente no console.

Solução alternativa: use as regras a seguir ao implantar um nome e uma versão de chaincode.

  • Use caracteres alfanuméricos ASCII, traços (-) e sublinhados (_).
  • O nome deve começar e terminar apenas com caracteres alfanuméricos ASCII. Por exemplo, você não pode usar nomes como _mychaincode ou mychaincode_.
  • Traços (-) e sublinhados (_) devem ser seguidos com caracteres alfanuméricos ASCII. Por exemplo, você não pode usar nomes como my--chaincode ou my-chaincode.
  • O nome e a versão têm, cada um, no máximo, 64 caracteres.
  • A versão do código de cadeia também pode conter um ponto (.) e sinais de mais (+).

Comportamento do Seletor de Data e Hora

O seletor de data e hora do Oracle Blockchain Platform não se comporta conforme esperado. Você usa o seletor de data e hora para filtrar itens como arquivos de log ou atividade do razão.

Solução alternativa: use as seguintes informações para ajudá-lo a usar o seletor de data e hora.

  • Se você selecionar um período específico (por exemplo, Último dia) e, em seguida, selecioná-lo novamente para executar a consulta novamente, a consulta não será executada novamente. Para obter as informações mais recentes, clique no botão Atualizar.
  • Se você não tiver definido o fuso horário no computador, quando selecionar a opção Personalizar, será necessário especificar a hora inicial e a hora final no GMT. No entanto, se você definir a Definição de Fuso Horário como GMT nas Preferências (no console, selecione o nome da instância, clique em Preferências e, em seguida, Definição de Fuso Horário), o fuso horário no console será convertido automaticamente para GMT.