Problemas Conhecidos do Oracle Blockchain Platform no Oracle Cloud Infrastructure

Saiba mais sobre os problemas que você pode encontrar ao usar a Oracle Blockchain Platform e como contorná-los.

Problemas Relatados Inicialmente em Versões Anteriores:

Dimensionamento de Armazenamento e OCPU Não Suportado

Não há suporte para o dimensionamento da capacidade de armazenamento ou OCPU em instâncias do Oracle Blockchain Platform versão 25.4.1. Se você tentar usar a API REST para dimensionar a capacidade de armazenamento ou OCPU, uma mensagem de erro UnsupportedOperationException será retornada.

SDKs do Hyperledger Fabric Obsoletos

Os SDKs do Hyperledger Fabric agora estão obsoletos em favor da API cliente do Fabric Gateway. Ainda pode ser possível usar os SDKs do Hyperledger Fabric para desenvolver aplicativos para o Oracle Blockchain Platform, mas a API cliente do Fabric Gateway é preferida.

Valor de Armazenamento Incorreto Reportado na API REST

O valor storageUsedInTBs retornado pelo ponto final da API REST Obter Informações da Plataforma Blockchain sempre retorna 0 para instâncias do Oracle Blockchain Platform versão 25.4.1.

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

Alguns Campos Não Retornados pela API REST de Blocos de Verificação

Os campos a seguir não são retornados pelo ponto final da API REST Verificar Blocos nas instâncias Oracle Blockchain Platform versão 25.4.1: verifyResult e firstBlockNum.

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

Não é Possível Exibir Detalhes do Razão para um Canal

Quando você clica em um bloco na página do razão de um canal, os detalhes da transação são exibidos. Há um problema intermitente no qual, às vezes, os detalhes da transação não são exibidos quando você clica em um bloco.

Solução alternativa: atualize a página do navegador e clique no bloco novamente para mostrar os detalhes da transação.

Configuração do Histórico Avançado Não Salva

Quando você clica em Salvar na caixa de diálogo Configurar Histórico Rico, a IU indica que a configuração global foi salva com sucesso; no entanto, quando você tenta exibir a configuração do histórico avançado, ela não está disponível porque não foi salva de fato. Esta é uma questão intermitente.

Solução alternativa: Tente salvar novamente a configuração do histórico avançado.

Ir Compatibilidade de Versão do Chaincode

Para a versão 25.4.1 do Oracle Blockchain Platform, a versão do Go usada foi atualizada para a versão 1.24.4. Se você tentar implantar ou atualizar um chaincode que não seja compatível com o Go 1.24.4, o processo poderá falhar. Antes de atualizar ou implantar um chaincode que está escrito em Go, certifique-se de que o chaincode possa ser criado com Go 1.24.4. Você pode usar os seguintes comandos no conteúdo da pasta chaincode em um sistema onde o Go 1.24.4 está instalado para verificar erros:
go mod tidy
go mod vendor

Os chaincodes implantados no momento não são afetados por esse comportamento e continuarão funcionando conforme esperado após o upgrade para o Oracle Blockchain Platform 25.4.1.

Node.js Compatibilidade de Versão do Chaincode

Para a versão 25.4.1 do Oracle Blockchain Platform, a versão do Node.js usada foi atualizada para a versão 22.14.0. Se você tentar implantar ou fazer upgrade de um chaincode que não seja compatível com o Node.js 22.14.0, o processo poderá falhar. Antes de fazer upgrade ou implantar um chaincode gravado em Node.js, certifique-se de que o chaincode possa ser criado com o Node.js 22.14.0.

Os chaincodes implantados no momento não são afetados por esse comportamento e continuarão funcionando conforme esperado após o upgrade para o Oracle Blockchain Platform 25.4.1.

Saldos Suspensos Inalterados Após Aprovações de Cunhagem e Separação

As aprovações de cunhagem e gravação usam o mecanismo de retenção, que usa um ID de operação como entrada. Os métodos getOnHoldBalanceWithOperationId e getOnHoldDetailsWithOperationId retornam o valor de retenção associado a um ID de operação especificado. Para operações de retenção padrão que usam os métodos executeHold e releaseHold, a quantia de retenção é alterada após a conclusão do método. Por exemplo, se você solicitar uma retenção com o ID de operação first para 100 tokens, após a aprovação (usando o método executeHold), o valor da retenção será 0. Os métodos getOnHoldBalanceWithOperationId e getOnHoldDetailsWithOperationId retornarão 0 como o valor de retenção para o ID da operação first.

Este comportamento não se aplica à cunhagem ou queima de aprovações. Por exemplo, se você fizer uma solicitação para cunhar 100 tokens com o ID de operação second, após a aprovação (usando o método approveMint), o valor de retenção ainda será 100. Os métodos getOnHoldBalanceWithOperationId e getOnHoldDetailsWithOperationId retornarão 100 para o ID da operação second.

No caso de cunhagem ou queima, a aprovação representa um pedido de cunhagem ou queima dessa quantidade, mas nenhuma transferência ocorre na fase de aprovação. Como as aprovações de cunhagem e gravação usam o mesmo mecanismo de retenção interno das operações de retenção padrão, os métodos de consulta retornam o valor armazenado no par de chave/valor de retenção, que não é alterado após a cunhagem ou gravação de aprovações.

Solução alternativa: Você pode usar os métodos getOnHoldBalanceWithOperationId e getOnHoldDetailsWithOperationId para verificar as quantidades solicitadas de hortelã ou de queima, mas esteja ciente das diferenças entre essas operações e as operações de retenção padrão.

Problemas Relatados Inicialmente em Versões Anteriores:

Erro de Limite de Conta ao Fazer Upgrade de Códigos de Cadeia Go

Se você fizer upgrade do chaincode gerado por uma versão anterior do Blockchain App Builder no idioma Go usando o padrão estendido do Token Taxonomy Framework para a versão 25.2.2, poderá ver o seguinte erro ao tentar concluir uma transação:
account has exceeded the limit for maximum number of transfers -1
Esse erro também ocorre na versão Go do chaincode que é específica do modelo CBDC de atacado. Este erro ocorre porque a versão anterior do Blockchain App Builder usou o valor -1 para representar nenhum limite de conta diário, mas na versão 25.2.2 não há valor padrão e a ausência desse par de chave/valor indica que a conta não tem limites diários.
Solução alternativa: use os métodos a seguir para definir novos valores padrão para limites de conta. Se você não informar valores para os parâmetros opcionais max_daily_amount ou max_daily_transaction, os pares de chave/valor serão removidos para que a conta funcione corretamente com a versão 25.2.2.
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)

Erro de Token Inesperado ao Depurar no Microsoft Windows 11

Quando você usa a função de depuração do Blockchain App Builder no Visual Studio Code em execução no Microsoft Windows 11, a seguinte mensagem de erro é exibida:
Unexpected token ':"admin"' in expression or statement.
Quando esse erro ocorre, a implantação e a depuração do chaincode falham.

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

Sintaxe Go Obrigatória para Nenhum Limite Diário de Conta

No chaincode gerado pelo Blockchain App Builder que usa o padrão Token Taxonomy Framework estendido e a linguagem de programação Go, se você não quiser definir os limites diários da conta ao usar o método CreateAccount, deverá informar o valor vazio "" e não "{}" para o parâmetro daily_limits. Os parâmetros corretos para a versão Go do método CreateAccount têm uma aparência semelhante ao seguinte exemplo:
["CentralBank","cb","fungible",""]
Esta versão Go do chaincode específica para o modelo CBDC de atacado também tem esse requisito.

Erros de Timeout do Proxy REST ao Usar Coletas Postman

Para as coleções Postman geradas pelo Blockchain App Builder, que executam transações usando o proxy REST do Oracle Blockchain Platform, o valor de timeout padrão é definido como 6000, conforme mostrado no seguinte exemplo:
{
    "chaincode": "WholesaleCBDCConfidential",
    "args": [
        "getTokenAuditors"
    ],
    "timeout": 6000,
    "sync": true,
    "peer": "org-xyz-abc.blockchain.ocp.oraclecloud.com:20009",
    "transientMap": {
        "args": "[]"
    }
    }'
Em alguns casos, o processamento de proxy REST pode expirar, mesmo que a transação esteja sendo realmente processada pelo Oracle Blockchain Platform, o que resulta na seguinte resposta:
{
    "returnCode": "Failure",
    "error": "failed to invoke chaincode: Client Status Code: (5) TIMEOUT. Description: request timed out or been cancelled",
    "result": null
}

Solução alternativa: Aumente o valor de tempo limite com base no seu caso de uso específico.

A Lista de Funções no Visual Studio Code Inclui Dois Métodos Incorretamente

Quando você usa o recurso de transações confidenciais com a versão do Visual Studio Code do Blockchain App Builder, dois métodos são mostrados na lista de funções no painel Executar: executeHoldTokensSender e executeHoldTokensReceiver. Esses dois métodos só funcionam corretamente quando usados com a API de commit de duas fases do proxy REST, que a versão do Visual Studio Code do Blockchain App Builder não suporta. Não use esses dois métodos na versão do Visual Studio Code do Blockchain App Builder.

A CLI do App Builder será Desinstalada se a Verificação de Pré-requisitos Falhar

Quando você faz upgrade da CLI (interface de linha de comando) do Blockchain App Builder instalando ou reinstalando a versão mais recente, se a verificação de pré-requisitos falhar, a CLI do Blockchain App Builder existente será desinstalada.

Solução alternativa: Você pode reinstalar a versão mais antiga da CLI do Blockchain App Builder ou atualizar seu sistema para atender aos pré-requisitos e, em seguida, instalar a versão mais recente da CLI do Blockchain App Builder.

Nenhum Erro Quando uma Transação NFT Fracionada Usa Número Incorreto de Casas Decimais

Quando você usa o Blockchain App Builder para trabalhar com NFTs fracionários que usam o padrão ERC-1155, se uma quantia de transação usar um número maior de casas decimais do que o número máximo de casas decimais no arquivo de especificação, um erro não será indicado. Em vez disso, o valor real da transação é truncado para o número de casas decimais definido no arquivo de especificação. Além disso, mesmo que os saldos do remetente e do destinatário sejam truncados para o número especificado de dígitos, o valor transactedAmount no histórico de transações mostra o valor não processado.

Solução alternativa: valide um valor de transação antes de criar uma transação para garantir que o valor da transação não use um número maior de casas decimais do que o especificado no arquivo de especificação de entrada para o chaincode.

Não é Possível Executar o Token de Dinheiro Fiat ou a Amostra de Transferência de Saldo da Página Ferramentas do Desenvolvedor

Uma nova versão da amostra de Token de Dinheiro Fiat está incluída no Oracle Blockchain Platform 22.4.2. O chaincode atualizado tem um ID de pacote diferente do da versão anterior. Se você implantou a amostra de Token de Dinheiro Fiat, depois de fazer upgrade para o Oracle Blockchain Platform 22.4.2, a amostra não será mais mostrada como implantada na página Ferramentas do Desenvolvedor no console e você não poderá executar nenhuma operação na página Ferramentas do Desenvolvedor para a amostra.

O mesmo comportamento ocorre com a amostra de Transferência de Saldo, que foi atualizada para o Oracle Blockchain Platform 22.3.2 para trabalhar com a função de transações atômicas.

Solução alternativa: Instale o chaincode de amostra novamente nos pares, que instalará a versão mais recente do chaincode com o novo ID do pacote. Para cada canal onde a amostra foi implantada, atualize o chaincode para o novo pacote. Depois que o chaincode for atualizado, o status e as operações da amostra na página Ferramentas do Desenvolvedor funcionarão normalmente.

Erro ao Ir Implantação ao Usar o Blockchain App Builder

Você pode encontrar um erro semelhante ao seguinte ao implantar um projeto Go chaincode usando o Blockchain App Builder:
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
Solução Alternativa:
macOS
  1. Execute o seguinte comando:
    env GO111MODULE=off go get ‘github.com/cortesi/modd/cmd/modd’
  2. Repita a implantação.
Microsoft Windows
  1. Use o comando go install para executar o seguinte:
    go install github.com/cortesi/modd/cmd/modd@latest
  2. Use go get para executar os seguintes comandos:
    SET GO111MODULE=auto
    go get ‘github.com/cortesi/modd/cmd/modd’
  3. Repita a implantação.

Falha de Inicialização no TypeScript Chaincode Gerado pelo Blockchain App Builder

Se você gerar o chaincode TypeScript com o Blockchain App Builder versão 22.4.2 ou anterior, poderá ver erros semelhantes ao seguinte texto ao implantar ou executar o chaincode local ou remotamente:
Ambiente local:
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
Ambiente remoto:
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}"
}

Solução alternativa: Para contornar esse comportamento para códigos de cadeia existentes, execute as etapas na seguinte página de suporte:

Falha na Implantação do Chaincode TypeScript em Ambientes OBP Locais e Remotos

Para evitar esse comportamento em novos chaincodes, faça upgrade para o Blockchain App Builder 22.4.3 ou posterior. Você pode fazer download do Blockchain App Builder na guia Ferramentas do Desenvolvedor no painel Blockchain App Builder da console do Oracle Blockchain Platform.

Timeouts de Gateway ao Usar a Biblioteca XA

Quando você usa a biblioteca Java XA com o Oracle Blockchain Platform, várias transações de blockchain podem ser combinadas em uma transação global controlada por um gerente de transações externo. Se as transações de blockchain demorarem mais do que o valor de timeout do gateway de 60 segundos para serem concluídas, o status da transação poderá se tornar não determinístico no lado do gerenciador de transações e no lado do Oracle Blockchain Platform.

Solução alternativa: Não há solução alternativa para este problema. Nesse caso, você deve resolver manualmente a transação.

Não é possível executar Chaincode de token no modo de depuração no Microsoft Windows

Se você usar o Blockchain App Builder versão 22.2.1 ou anterior, não poderá executar chaincode de token no modo de depuração no Microsoft Windows.

Solução alternativa: Faça upgrade para a versão mais recente do Blockchain App Builder. Se não conseguir atualizar, execute os passos a seguir:

  1. Abra o arquivo chaincode/.vscode/task.json para edição.
  2. A sexta linha do arquivo task.json inclui a chave command. Remova a seguinte string da linha:
    -p '${workspaceFolder}' 
Por exemplo, a linha no arquivo task.json antes de editar:
"command": "ochain debug -p '${workspaceFolder}' \"[{\\\"userId\\\":\\\"admin\\\",\\\"orgId\\\":\\\"Org1MSP\\\"}]\" -v v8",
Depois:
"command": "ochain debug \"[{\\\"userId\\\":\\\"admin\\\",\\\"orgId\\\":\\\"Org1MSP\\\"}]\" -v v8",

Limites de Tamanho do Evento

A partir da versão 22.2.1, por padrão, o tamanho máximo do payload de um evento é limitado a 50 KB. Qualquer evento maior que o tamanho máximo do payload será eliminado. A equipe do Oracle DevOps pode modificar esse parâmetro por solicitação. Se você espera se inscrever em eventos em que o payload tenha mais de 50 KB, abra uma Solicitação de Serviço (SR) no My Oracle Support para solicitar um tamanho máximo de evento maior. Para obter mais informações, consulte Inscrever-se em um Evento na documentação da API REST.

IDs de usuário que contêm um ponto-e-vírgula (:) não podem ser usados em chamadas de API REST

O Oracle Blockchain Platform permite associar um ID de usuário que contenha dois-pontos (:) a uma inscrição de proxy REST. No entanto, esse ID de usuário não pode ser usado em chamadas de API REST quando a autenticação básica (nome de usuário e senha) é usada.

Solução alternativa: Certifique-se de que todos os usuários associados a inscrições de proxy REST não tenham dois-pontos (:) em seus IDs de usuário.

Cabeçalho CORS Não Retornado para Credenciais Inválidas

Os aplicativos do cliente que chamam transações de proxy REST não receberão o cabeçalho CORS (Cross-Origin Resource Sharing) (o cabeçalho Access-Control-Allow-Origin) na resposta se as credenciais enviadas na solicitação forem inválidas, incorretas ou expiradas.

Erro de Status dos Solicitantes ao Criar Canais

Ao criar um canal, você pode ver o seguinte erro:
Failed to create the channel with error: aborted
Please check the orderers status.

Solução alternativa: tente criar o canal novamente. Esta é uma questão intermitente.

Depuração no Visual Studio Code no Microsoft Windows

No Microsoft Windows, você pode encontrar um erro semelhante ao seguinte ao depurar projetos de chaincode no 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
Não há solução alternativa para este erro neste momento.

Ambientes Multiorganizações e Blockchain App Builder

Em um ambiente com várias organizações, talvez seja necessário usar o console para concluir algumas operações.

Para reimplantar o chaincode no mesmo canal por meio de uma instância do participante, use a console para implantar o chaincode.

(Hyperledger Fabric v2.2.4) Para fazer upgrade do chaincode, use o console e aprove manualmente o chaincode dos participantes.

O dimensionamento funciona apenas em um componente por vez

Você só pode dimensionar um tipo de nó por vez. Por exemplo, você pode adicionar nós pares e modificar as definições de nós pares existentes ao mesmo tempo, mas se você também quiser aumentar seu armazenamento, deverá fazer isso separadamente.

Além disso, você só pode escalar um par ou OSN de cada vez - por exemplo, você não pode adicionar dois pares em uma única operação.

O Relógio do Sistema Operacional Incorreto Pode Resultar em Solicitações Rejeitadas

Se o relógio local do cliente ou do SDK tiver mais de 15 minutos de folga, as solicitações dele serão rejeitadas pelo par e pelo solicitante. Certifique-se de que o relógio local esteja configurado corretamente.

Aplicativos Blockchain não estão funcionando como esperado devido a um SDK de cliente mais antigo

Um aplicativo pode se comportar inesperadamente se estiver usando uma versão mais antiga do SDK cliente.

Solução alternativa: Leia a documentação que descreve as atualizações do SDK do cliente e modifique seus aplicativos conforme necessário. Para obter mais informações, consulte SDKs do Hyperledger Fabric na documentação do Hyperledger Fabric.

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

Se uma rede do Oracle Blockchain Platform contiver organizações com certificados de terceiros ou 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.

A Lista de Canais do Fundador Contém Informações Criadas Incorretas e a Opção Editar Organizações do Canal Não Está Disponível

Em uma rede mista (em que uma instância do fundador e uma instância do participante estão executando diferentes versões do Oracle Blockchain Platform), a lista de canais do fundador pode exibir o ID MSP errado para um canal criado por um participante. Em vez do ID do MSP do participante, o ID do MSP do fundador é exibido. Isso pode acontecer depois que você importar a CRL, revogar ou aplicar a CRL ou definir um ponto de ancoragem em um canal.

A opção Editar Organizações de Canal do canal só está disponível para a instância exibida no campo Criado por. Se o ID do MSP incorreto for exibido, o criador do canal não poderá atualizar as organizações do canal.

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

A Política ImplicitMeta Não é Suportada pelo Oracle Blockchain Platform

Se você usar a CLI ou o SDK nativo do Hyperledger Fabric para modificar a configuração de um canal, algumas das definições de configuração especificadas não poderão ser suportadas pelo Oracle Blockchain Platform.

  • A CLI e o SDK nativos do Hyperledger Fabric usam a política de canal ImplicitMeta para leitores e gravadores. Quando o canal usa essas políticas, a console do Oracle Blockchain Platform não pode garantir que as operações administrativas (por exemplo, editar organização) possam ser processadas com sucesso.

    Solução alternativa: atualize as políticas de leitores e gravadores para as políticas de assinatura e defina as regras de política conforme necessário. Para obter mais informações, consulte Listas de Controle de Acesso (ACL) na documentação do Hyperledger Fabric.

  • Se um canal estiver usando o tipo de política ImplicitMeta e na configuração do canal você alterar o mod_policy na seção de grupos para Administradores e houver mais de uma organização no canal, não será possível usar o Oracle Blockchain Platform para gerenciar o canal. Por exemplo, você não pode adicionar novas organizações ao canal ou alterar a política de ACL do canal de forma alguma, incluindo a restauração de seu valor original.

    Solução alternativa: Use a CLI ou o SDK nativo do Hyperledger Fabric para gerenciar o canal.

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.

Definição de blocktolive como 0 no Ponto Final instantiateChaincode Não Suportado na API REST

Se você estiver usando o ponto final instantiateChaincode da API REST e no dataCollectionConfig você definir o valor blocktolive como 0, receberá o seguinte erro: {"respMesg":"invalid argument"}.

Para evitar a expurgação de dados do banco de dados privado, o Hyperledger Fabric exige que você defina o valor blocktolive como 0. No entanto, a API REST do Oracle Blockchain Platform não suporta a definição dessa configuração como 0.

Solução alternativa: Use a console para instanciar o chaincode e, na seção Coletas de Dados Privadas da caixa de diálogo Instanciar Chaincode, defina o campo blocktolive como 0.

O Par Falha ao Extrair Dados Privados de Outro Par

Um par pode não conseguir extrair dados privados de outro par se o valor blocktolive de uma coleta de dados privada for menor que 10 e seu valor maxPeerCount for menor que o número total de pares, não incluindo o par de endosso. 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 valor maxPeerCount está definido como no mínimo o número total de pares, não incluindo o par de endosso. 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 de 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 de Gravadores, que substitui a definição de ACL ReaderOnly do canal.

Solução alternativa: 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 pelo 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á-la com a console (você só poderá importar com a API REST).

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

Requisitos do Nome do Chaincode

Os requisitos de nome e versão do código de cadeia do Oracle Blockchain Platform são diferentes dos requisitos do Hyperledger Fabric. Use os requisitos do Oracle Blockchain Platform ao implantar um chaincode no console ou no cliente do Hyperledger Fabric. Se você não seguir esses requisitos ao implantar a partir do cliente Hyperledger Fabric, o chaincode poderá ser listado incorretamente no console.

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

  • Use caracteres alfanuméricos ASCII, traços (-) e sublinhados (_).
  • O nome deve começar e terminar somente com caracteres alfanuméricos ASCII. Por exemplo, não é possível 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 podem ter até 64 caracteres.
  • A versão de chaincode também pode conter pontos (.) e sinais de mais (+).

Comportamento do Selecionador 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 depois 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 Personalizado, deverá especificar a hora de início e a hora de término 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, em Configuração de Fuso Horário), o fuso horário no console será convertido automaticamente em GMT.