BR112019007939B1 - Método implementado por computador, meio legível por computador e sistema para implementar um método - Google Patents
Método implementado por computador, meio legível por computador e sistema para implementar um método Download PDFInfo
- Publication number
- BR112019007939B1 BR112019007939B1 BR112019007939-4A BR112019007939A BR112019007939B1 BR 112019007939 B1 BR112019007939 B1 BR 112019007939B1 BR 112019007939 A BR112019007939 A BR 112019007939A BR 112019007939 B1 BR112019007939 B1 BR 112019007939B1
- Authority
- BR
- Brazil
- Prior art keywords
- function
- transaction
- controller
- call
- execution
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 37
- 230000006870 function Effects 0.000 claims description 361
- 230000015654 memory Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims 3
- 230000007704 transition Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 239000003999 initiator Substances 0.000 description 4
- 238000012897 Levenberg–Marquardt algorithm Methods 0.000 description 3
- 238000002296 dynamic light scattering Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009182 swimming Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Retry When Errors Occur (AREA)
- Mobile Radio Communication Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
implementações do presente relatório descritivo incluem receber, de um contrato inteligente, e por meio de um controlador de função executando dentro da rede de protocolo de confiança, uma chamada de função para executar uma função, a chamada de função incluindo dados para execução da função, transmitir, por meio do controlador de função, os dados da chamada de função para um componente de função, o componente de função executando a função com base nos dados da chamada de função, receber, por meio do controlador de função, um resultado de função do componente de função, e fornecer, por meio do controlador de função, função resultado para o contrato inteligente.
Description
[001] A presente invenção se refere a um método implementado por computador, meio legível por computador e sistema para implementar um método.
[002] Os sistemas de contabilidade distribuída (DLSs), que também podem ser denominados redes de consenso e/ ou redes de protocolo de confiança (blockchain), permitem que as entidades participantes armazenem dados de forma segura e imutável. Os DLSs são comumente referidos como redes de protocolo de confiança sem fazer referência a qualquer caso de uso particular (por exemplo, criptomoedas). Exemplos de tipos de redes de protocolo de confiança podem incluir redes de protocolo de confiança públicas, redes de protocolo de confiança privadas e redes de protocolo de confiança de consórcio. Uma rede de protocolo de confiança pública é aberta para todas as entidades usarem o DLS e participam no processo de consenso. Uma rede de protocolo de confiança privada é fornecida para uma entidade específica, que controla centralmente as permissões de leitura e gravação. Uma rede de protocolo de confiança de consórcio é fornecida para um grupo seleto de entidades, que controlam o processo de consenso e incluem uma camada de controle de acesso.
[003] Contratos inteligentes podem ser executados dentro de redes de protocolo de confiança para executar uma ou mais funções. Um contrato inteligente pode ser descrito como um aplicativo monolítico que inclui funções codificadas. Como um aplicativo monolítico, operações de desenvolvimento relativamente robustas podem ser necessárias para suportar o contrato inteligente (por exemplo, codificação de cada função, atualizações de funções resultando em atualizações de todo o contrato inteligente).
[004] As realizações do presente relatório descritivo incluem métodos implementados por computador para fornecer aplicações em redes de protocolo de confiança. Mais particularmente, as realizações do presente relatório descritivo são direcionadas a uma plataforma de função como serviço (FaaS) para fornecer funções para aplicativos executados em redes de protocolo de confiança.
[005] Em algumas realizações, as ações incluem receber, de um contrato inteligente, e por meio de um primeiro controlador de função executando dentro da rede protocolo de confiança, uma primeira chamada de função para executar uma primeira função, a primeira chamada de função incluindo dados para execução da primeira função, transmitir, por meio do primeiro controlador de função, os dados da primeira chamada de função para um primeiro componente de função, o primeiro componente de função executando a primeira função com base nos dados da primeira chamada de função, receber, por meio do primeiro controlador de função, um primeiro resultado de função do primeiro componente de função e fornecer, por meio do primeiro controlador de função, o primeiro resultado da função para o contrato inteligente. Outras realizações incluem sistemas, aparelhos e programas de computador correspondentes, configurados para executar as ações dos métodos, codificados em dispositivos de armazenamento de computador.
[006] Essas e outras realizações podem incluir, opcionalmente, um ou mais das seguintes características: a primeira chamada de função inclui ainda um endereço da primeira função e um identificador de versão da primeira função; o identificador de versão é nulo indicando que uma versão mais recente da primeira função deve ser executada; as ações incluem ainda a atualização, por meio do primeiro controlador de função, das estatísticas associadas a uma versão da primeira função que foi executada em resposta à primeira chamada de função; as estatísticas indicam um número de vezes que cada versão de uma primeira função foi executada; as ações incluem ainda: receber, de um contrato inteligente, e por meio de um segundo controlador de função executando dentro da rede protocolo de confiança, uma segunda chamada de função para executar uma segunda função, a segunda chamada de função incluindo dados para execução da segunda função, em que a segunda função é diferente da primeira função, e em que o segundo controlador de função é diferente do primeiro controlador de função, transmitindo, pelo segundo controlador de função, os dados da segunda chamada de função para um segundo componente de função, o segundo componente de função executando a segunda função com base nos dados da segunda chamada de função, em que o segundo componente de função é diferente do primeiro componente de função, recebendo, pelo segundo controlador de função, o resultado da segunda função do segundo componente de função e fornecendo, por meio do segundo controlador de função, o resultado da segunda função do contrato inteligente; a primeira função e a segunda função são fornecidas por provedores diferentes; e o contrato inteligente executa uma transação pelo menos parcialmente com base nos resultados da função, a transação sendo registrada dentro de um protocolo de confiança da rede de protocolo de confiança.
[007] O presente relatório descritivo também fornece um ou mais meios de armazenamento legível por computador acoplado a um ou mais processadores e tendo instruções armazenadas no mesmo que, quando executados por um ou mais processadores, fazer com que os um ou mais processadores execute as operações de acordo com realizações dos métodos aqui fornecidos.
[008] O presente relatório descritivo fornece ainda um sistema para implementar os métodos aqui fornecidos. O sistema inclui um ou mais processadores, e um meio de armazenamento legível por computador acoplado a um ou mais processadores com instruções armazenadas no mesmo que, quando executados por um ou mais processadores, fazem com que um ou mais processadores executem operações de acordo com realizações dos métodos aqui fornecidos.
[009] Entende-se que os métodos de acordo com o presente relatório descritivo podem incluir qualquer combinação das realizações e características aqui descritas. Isto é, os métodos de acordo com o presente relatório descritivo não estão limitados às combinações de realizações e características especificamente descritos aqui, mas também incluem qualquer combinação das realizações e características fornecidas.
[0010] Os detalhes de uma ou mais realizações do presente relatório descritivo são apresentados nos desenhos anexos e na descrição abaixo. Outras características e vantagens do presente relatório descritivo serão evidentes a partir da descrição e desenhos, e das reivindicações.
[0011] A Figura 1 ilustra um exemplo de ambiente que pode ser usado para executar realizações do presente relatório descritivo.
[0012] A Figura 2 ilustra um exemplo de arquitetura conceitual de acordo com realizações do presente relatório descritivo.
[0013] A Figura 3 ilustra um exemplo de arquitetura conceitual para uma plataforma de função como serviço (FaaS) de acordo com realizações do presente relatório descritivo.
[0014] A Figura 4 ilustra um diagrama de pista de natação que mostra a comunicação entre os componentes de acordo com as realizações do presente relatório descritivo.
[0015] A Figura 5 ilustra um exemplo de processo que pode ser executado de acordo com realizações do presente relatório descritivo.
[0016] Os símbolos de referência semelhantes nos vários desenhos indicam elementos semelhantes.
[0017] As realizações do presente relatório descritivo incluem métodos implementados por computador para fornecer aplicativos em redes de protocolo de confiança. Mais particularmente, as realizações do presente relatório descritivo destinam-se a uma plataforma de função como serviço (FaaS) para fornecer funções para aplicativos executados em redes de protocolo de confiança. Em algumas realizações, as ações incluem receber, de um contrato inteligente, e por meio de um controlador de função executando dentro da rede de protocolo de confiança, uma chamada de função para executar uma função, a chamada de função incluindo dados para execução da função, transmitindo, por meio do controlador de função, os dados da chamada de função para um componente de função, o componente de função executando a função com base nos dados da chamada de função, recebendo, por meio do controlador de função, um resultado de função do componente de função e fornecendo, por meio do controlador de função, o resultado da função ao contrato inteligente.
[0018] Para fornecer um contexto adicional para realizações do presente relatório descritivo, e como introduzidas acima, sistemas de contabilidade distribuída (DLSs), que também podem ser referidos como redes de consenso (por exemplo, constituídas por nós peer-to-peer), e redes de protocolo de confiança, permite que as entidades participantes conduzam transações de forma segura e imutável e armazenem dados. Embora o termo protocolo de confiança seja geralmente associado à rede de criptomoeda do Bitcoin, o protocolo de confiança é aqui utilizado para referir-se geralmente a um DLS sem referência a qualquer caso de uso particular. Como introduzido acima, uma rede de protocolo de confiança pode ser fornecida como uma rede de protocolo de confiança pública, uma rede de protocolo de confiança privada ou uma rede de protocolo de confiança de consórcio.
[0019] Em uma rede de protocolo de confiança pública, o processo de consenso é controlado por nós da rede de consenso. Por exemplo, centenas, milhares, até mesmo milhões de entidades podem cooperar uma rede de protocolo de confiança pública, cada uma das quais opera pelo menos um nó na rede de protocolo de confiança pública. Assim, a rede de protocolo de confiança pública pode ser considerada uma rede pública em relação às entidades participantes. Em alguns exemplos, a maioria das entidades (nós) deve assinar cada bloco, para que o bloco de ser válido, e adicionado ao protocolo de confiança (contabilidade distribuída) da rede de protocolo de confiança. Um exemplo de rede de protocolo de confiança pública inclui a rede de Bitcoin, que é uma rede de pagamento peer-to-peer. A rede de Bitcoin utiliza uma contabilidade distribuída, conhecida como protocolo de confiança. Como observado acima, o termo protocolo de confiança, no entanto, é usado para se referir geralmente a contabilidades distribuídas sem referência particular à rede de Bitcoin.
[0020] Em geral, uma rede de protocolo de confiança pública suporta transações públicas. Uma transação pública é compartilhada com todos os nós dentro da rede de protocolo de confiança pública e é armazenada em um protocolo de confiança global. Um protocolo de confiança global é um protocolo de confiança que é replicado em todos os nós. Ou seja, todos os nós estão em perfeito estado de consenso em relação ao protocolo de confiança global. Para chegar no consenso (por exemplo, concordar com a adição de um bloco a um protocolo de confiança), um protocolo de consenso é implementado dentro da rede de protocolo de confiança pública. Um exemplo de protocolo de consenso inclui, sem limitação, prova de trabalho (POW) implementada na rede de Bitcoin.
[0021] Em geral, uma rede de protocolo de confiança privada é fornecida para uma entidade particular, que controla centralmente as permissões de leitura e gravação. A entidade controla quais nós são capazes de participar da rede de protocolo de confiança. Consequentemente, as redes de protocolo de confiança privadas são geralmente referidas como redes com permissão que colocam restrições sobre quem tem permissão para participar da rede, e sobre o seu nível de participação (por exemplo, apenas em certas transações). Vários tipos de mecanismos de controle de acesso podem ser usados (por exemplo, os participantes existentes votam na adição de novas entidades, uma autoridade reguladora pode controlar a admissão).
[0022] Em geral, uma rede de protocolo de confiança de consórcio é privada entre as entidades participantes. Em uma rede de protocolo de confiança de consórcio, o processo de consenso é controlado por um conjunto autorizado de nós, um ou mais nós sendo operados por uma entidade respectiva (por exemplo, uma instituição financeira, companhia de seguros). Por exemplo, um consórcio de dez (10) entidades (por exemplo, uma instituição financeira, companhia de seguros) pode operar uma rede de protocolo de confiança de consórcio, cada uma operando pelo menos um nó na rede de protocolo de confiança de consórcio. Nesse sentido, a rede de protocolo de confiança de consórcio pode ser considerada uma rede privada em relação às entidades participantes. Em alguns exemplos, cada entidade (nó) deve assinar todos os blocos para que o bloco seja válido e adicionada ao protocolo de confiança. Em alguns exemplos, pelo menos um subconjunto de entidades (nós) (por exemplo, pelo menos 7 entidades) deve assinar todos os blocos para que o bloco seja válido e adicionado ao protocolo de confiança.
[0023] As realizações do presente relatório descritivo são aqui descritas em mais detalhe com referência a uma rede de protocolo de confiança pública, que é pública entre as entidades participantes. Está contemplado, no entanto, que as realizações do presente relatório descritivo podem ser realizadas em qualquer tipo apropriado de rede de protocolo de confiança. Embora as técnicas descritas no presente relatório descritivo sejam indicadas como sendo relevantes para redes de protocolo de confiança públicas, as técnicas também podem ser usadas, com ou sem alterações, em outros tipos de redes de protocolo de confiança, incluindo redes de protocolo de confiança privadas e redes de protocolo de confiança de consórcio.
[0024] As realizações do presente relatório descritivo são aqui descritas em mais detalhe em vista do contexto acima. Mais particularmente, e como apresentado acima, as realizações do presente relatório descritivo destinam-se a uma plataforma FaaS para fornecer funções a aplicativos executados em redes de protocolo de confiança. Dessa maneira, os desenvolvedores podem desenvolver aplicativos (por exemplo, contratos inteligentes) que são relativamente leves (por exemplo, em termos de codificação) e podem chamar uma ou mais funções por meio da plataforma FaaS do presente relatório descritivo.
[0025] Para fornecer ainda contexto adicional para realizações do presente relatório descritivo, nas redes de protocolo de confiança, os aplicativos podem ser desenvolvidos, testados e implementados para execução dentro da rede de protocolo de confiança. Um exemplo de aplicativo pode incluir, sem limitação, um contrato inteligente. Um contrato inteligente pode ser descrito como representações digitais de contratos legais do mundo real com termos contratuais que afetam várias partes. Um contrato inteligente é implementado, armazenado, atualizado (conforme necessário) e executado dentro, no contexto de exemplo, de uma rede de protocolo de confiança de consórcio. Partes contratadas associadas ao contrato inteligente (por exemplo, compradores e vendedores) são representadas como nós na rede de protocolo de confiança do consórcio.
[0026] Em alguns exemplos, um contrato inteligente pode armazenar dados, que podem ser usados para registrar informações, fatos, associações, balanços e qualquer outra informação necessária para implementar a lógica para a realização do contrato. Os contratos inteligentes podem ser descritos como um programa executável por computador que consiste em funções, em que um exemplo do contrato inteligente pode ser criado e funções invocadas para realização da lógica nele contida.
[0027] Em termos técnicos, os contratos inteligentes podem ser implementados com base em objetos e classes orientadas a objetos. Por exemplo, termos e componentes do contrato inteligente podem ser representados como objetos manipulados por aplicativos que implementam os contratos inteligentes. Um contrato inteligente (ou um objeto no contrato inteligente) pode chamar outro contrato inteligente (ou um objeto no mesmo contrato inteligente), assim como os outros objetos orientados a objetos. As chamadas feitas por um objeto podem ser, por exemplo, uma chamada para criar, atualizar, excluir, propagar ou se comunicar com objetos de outra classe. As chamadas entre objetos podem ser implementadas como ferramentas, métodos, interfaces de programação de aplicativos (APIs) ou outros mecanismos de chamada. Por exemplo, um primeiro objeto pode chamar uma função para criar um segundo objeto.
[0028] Um ambiente de desenvolvimento integrado (IDE) pode ser usado para desenvolver, testar e implantar aplicativos, como contratos inteligentes para redes de protocolo de confiança. Um exemplo de IDE inclui o Remix IDE, fornecido pela Ethereum Foundation de Zug, na Suíça, para criar contratos inteligentes em Solidity.
[0029] A Figura 1 representa um exemplo de ambiente (100) que pode ser utilizado para executar realizações do presente relatório descritivo. Em alguns exemplos, o ambiente de exemplo (100) permite que entidades participem em uma rede de protocolo de confiança privada (102). O ambiente de exemplo (100) inclui sistemas de computação (106, 108) e uma rede (110). Em alguns exemplos, a rede (110) inclui uma rede de área local (LAN), uma rede de longa distância (WAN), a Internet ou uma combinação dos mesmos, e conecta web sites, dispositivos de usuário (por exemplo, dispositivos de computação) e sistema de back-end. Em alguns exemplos, a rede (110) pode ser acessada através de um link de comunicação com fio e/ ou sem fio.
[0030] No exemplo descrito, os sistemas de computação (106, 108) podem incluir qualquer sistema de computação apropriado que permita a participação como um nó na rede de protocolo de confiança privada (102). Exemplos de dispositivos de computação incluem, sem limitação, um servidor, um computador de mesa, um computador laptop, um dispositivo de computação de tablet e um smartphone. Em alguns exemplos, os sistemas de computação (106, 108) hospedam um ou mais serviços implementados por computador para interagir com a rede de protocolo de confiança privada (102). Por exemplo, o sistema de computação (106) pode hospedar serviços implementados por computador de uma primeira entidade (por exemplo, usuário A), como um sistema de gerenciamento de transações que a primeira entidade usa para gerenciar suas transações com uma ou mais entidades (por exemplo, outros usuários). O sistema de computação (108) pode hospedar serviços implementados por computador de uma segunda entidade (por exemplo, usuário B), como um sistema de gerenciamento de transação que a segunda entidade usa para gerenciar suas transações com uma ou mais outras entidades (por exemplo, outros usuários). No exemplo da Figura 1, a rede de protocolo de confiança privada (102) é representada como uma rede peer-to- peer de nós, e os sistemas de computação (106, 108) fornecem nós da primeira entidade e da segunda entidade respectivamente, que participam na rede de protocolo de confiança privada (102).
[0031] A Figura 2 ilustra um exemplo de arquitetura conceptual (200) de acordo com realizações do presente relatório descritivo. A arquitetura conceitual exemplificativa (200) inclui uma camada de entidade (202), uma camada de serviços hospedados (204) e uma camada de rede de protocolo de confiança (206). No exemplo representado, a camada de entidade (202) inclui três entidades, Entity_1 (E1), Entity_2 (E2) e Entity_3 (E3), cada entidade possuindo um respectivo sistema de gestão de transações (208).
[0032] No exemplo descrito, a camada de serviços hospedados (204) inclui interfaces (210) para cada sistema de gestão de transações (208). Em alguns exemplos, um sistema de gestão de transações (208) respetivo comunica com uma respetiva interface (210) através de uma rede (por exemplo, a rede (110) da Figura 1) usando um protocolo (por exemplo, protocolo de transferência de hipertexto seguro (HTTPS)). Em alguns exemplos, cada interface (210) fornece uma conexão de comunicação entre um sistema de gestão da respectiva transação (208), e a camada de rede de protocolo de confiança (206). Mais particularmente, a interface (210) se comunica com uma rede de protocolo de confiança (212) da camada de rede de protocolo de confiança (206). Em alguns exemplos, a comunicação entre uma interface (210) e a camada de rede de protocolo de confiança (206) é conduzida utilizando chamadas de procedimento remoto (RPCs). Em alguns exemplos, as interfaces (210) “hospedam” os nós de rede de protocolo de confiança para os respectivos sistemas de gestão de transação (208). Por exemplo, as interfaces (210) fornecem a interface de programação de aplicativos (API) para acessar a rede de protocolo de confiança (212).
[0033] Como aqui descrito, a rede de protocolo de confiança (212) é fornecida como uma rede peer-to-peer incluindo uma pluralidade de nós (214) que gravam informações de forma imutável em um protocolo de confiança (216). Embora um único protocolo de confiança (216) seja esquematicamente representado, várias cópias do protocolo de confiança (216) são fornecidas, e são mantidas através da rede de protocolo de confiança (212). Por exemplo, cada nó (214) armazena uma cópia do protocolo de confiança. Em algumas realizações, o protocolo de confiança (216) armazena informações associadas a transações que são realizadas entre duas ou mais entidades que participam da rede de protocolo de confiança privado.
[0034] A Figura 3 ilustra um exemplo de arquitetura conceitual para uma plataforma FaaS (300) de acordo com realizações do presente relatório descritivo. Como descrito em maior detalhe aqui, a plataforma FaaS (300) é utilizada para fornecer funções que suportam a execução de contratos inteligentes, tais como um contrato inteligente (302) da Figura 3. Em alguns exemplos, o contrato inteligente (302) pode executar transações que são registradas nos blocos (304) de um protocolo de confiança.
[0035] No exemplo da Figura 3, a plataforma FaaS (300) inclui um iniciador de transação (306) que pode ser, por exemplo, um nó que inicia uma ação solicitando a execução do contrato inteligente (302). Por exemplo, o iniciador de transação (306) pode enviar uma solicitação de (308) para instigar a execução do contrato inteligente (302). Em alguns exemplos, o contrato inteligente (302) recebe a solicitação e executa a lógica programada no contrato inteligente (302). De acordo com realizações de no presente relatório descritivo, a lógica pode incluir uma chamada para um ou mais aplicativos de função (312) da plataforma FaaS (300).
[0036] Em alguns exemplos, cada um dos aplicativos de função (312) é fornecido por um provedor de função respectivo (310). Por exemplo, um provedor de função (310) pode incluir uma entidade (por exemplo, desenvolvedor) que desenvolve um aplicativo de função para receber entrada, executar uma função e fornecer saída. Em alguns exemplos, cada aplicativo de função (312) inclui um controlador de função (314) e uma ou mais funções (316, 318, 320) (código de função). O provedor de função (310) pode fornecer uma versão inicial de uma função (por exemplo, função (316)) e pode atualizar a função para fornecer versões subsequentes (por exemplo, funções (318, 320)).
[0037] Em algumas realizações, o contrato inteligente (302) é executado até um ponto que ele chama um função. O contrato inteligente (302) envia uma chamada de função para um aplicativo de função respetivo (312), que inclui a entrada a ser processada pela aplicativo de função (312). A chamada de função é recebida pelo respectivo controlador de função (314). O controlador de função (314) encaminha a entrada para uma versão apropriada das funções (316, 318, 320). A função (316, 318, 320) que recebe a entrada processa a entrada para fornecer saída, a qual é enviada de volta para o contrato inteligente (302).
[0038] Em algumas realizações, aplicativos de função que são fornecidos pela plataforma Faas (300) são armazenados no protocolo de confiança, e são registrados com a plataforma Faas (300). Em alguns exemplos, o registro expõe informações das funções de usuários (por exemplo, os desenvolvedores de contratos inteligentes). Os exemplos de informações podem incluir, sem limitação, um identificador do provedor (310), uma descrição da função, versões da função e estatísticas da função (por exemplo, um número de vezes que cada versão foi chamada). Os usuários podem usar as informações, por exemplo, como uma indicação de um nível de confiança associado a cada função. Por exemplo, um usuário que desenvolve um contrato inteligente pode revisar o registro para identificar uma função necessária e programar o contrato inteligente para chamar a função.
[0039] O seguinte é um exemplo não limitativo para ilustrar a concepção e utilização da plataforma FaaS de acordo com as realizações do presente relatório descritivo. Um ou mais provedores de função, também referidos como provedores FaaS (por exemplo, os provedores de função (310) da Figura 3), fornecem uma ou mais funções executáveis pelo computador. Por exemplo, um provedor de função pode desenvolver um código executável por computador para executar uma função, a função recebendo entrada, processando a entrada e fornecendo saída. Uma função de exemplo pode incluir, sem limitação, uma função de soma de verificação Rivest-Shamir- Adleman (RSA), que recebe, como entrada, uma mensagem de comprimento arbitrário e produz uma soma de verificação como saída (por exemplo, uma soma de verificação de 128 bits (16 octetos)). Em alguns exemplos, a função é uma função pura. Ou seja, a função não tem informações de estado, chamadas repetíveis e/ ou chamadas aninhadas.
[0040] Em algumas realizações, um controlador de função (também referido como um controlador FaaS) é fornecido para a função (por exemplo, o controlador de função (314) da Figura 3). Em alguns exemplos, o controlador de função e a função, em conjunto, formam um aplicativo de função, também referido como um aplicativo FaaS (por exemplo, a aplicativo de função (312) da Figura 3). Em alguns exemplos, o controlador de função manipula estatísticas e armazenamento para versões da função, bem como informações de chamada. A Tabela 1, abaixo, descreve as informações de exemplo armazenadas por um controlador de função: Tabela 1: Exemplo de Informações
[0041] Em algumas realizações, quando uma função está pronta para uso em produção, o provedor de função envia a função (como código de função executável do computador) para a rede de protocolo de confiança e o código de função é atribuído a um endereço exclusivo dentro da rede de protocolo de confiança (por exemplo, 23d61f4a88f90be1290c0eeab344992e1a2e8f6d). Em alguns exemplos, o controlador de função também é enviado à rede de protocolo de confiança e é atribuído seu próprio endereço exclusivo dentro da rede de protocolo de confiança. Em alguns exemplos, quando uma função é primeiro enviada à rede de protocolo de confiança, o último valor de versão (por exemplo, latestVersion) é definido como padrão (por exemplo, 1.0.0). Em alguns exemplos, a função é registrada no mapa de versão com base no endereço e no valor da versão (por exemplo, 23d61f4a88f90be1290c0eeab 344992e1a2e8f6d, 1.0.0) e estatísticas para a função estão vazias.
[0042] Em algumas realizações, um ou mais contratos inteligentes (por exemplo, o contrato inteligente (302)) podem ser criados para chamar uma ou mais funções da plataforma FaaS. Em alguns exemplos, um usuário que cria um contrato inteligente pode visualizar uma biblioteca de funções disponíveis com informações de função relevantes (por exemplo, descrição, endereço, versão, estatísticas) e pode programar o contrato inteligente para chamar uma ou mais funções. Por exemplo, o contrato inteligente pode incluir lógica que chama o exemplo de função de soma de verificação RSA apresentada acima. Em alguns exemplos, o contrato inteligente pode incluir um identificador de versão indicando uma versão (por exemplo, 1.0.0) da função a ser chamada. Em alguns exemplos, o identificador de versão pode estar vazio (ou nulo), o que indica que a versão mais recente da função deve ser chamada. Em algumas realizações, após o contrato inteligente estar completo e pronto para uso, o contrato inteligente é submetido à rede de protocolo de confiança, e o contrato inteligente é atribuído um endereço exclusivo dentro da rede de protocolo de confiança (por exemplo, 39a1509440f8c549dfd6e995def14b1ce3c98e5d).
[0043] Em algumas realizações, para impedir que o impacto de uma eventual melhora (atualização) no código de função cause impacto na lógica de execução do contrato inteligente, o mapa de versão (versionMap) do controlador de função é atualizado. Continuando com o exemplo não limitativo acima, o mapa de versão do aplicativo de função para a função de soma de verificação RSA é atualizado para:
[0044] Isso indica que o exemplo de contrato inteligente usa a primeira versão da função do exemplo de soma de verificação RSA. Ou seja, a primeira versão da função deve ser sempre usada quando o contrato inteligente específico solicitar a função.
[0045] A Figura 4 representa um diagrama de pista de natação (400) mostrando a comunicação entre os componentes de acordo com as realizações do presente relatório descritivo. De acordo com realizações do presente relatório descritivo, uma transação usando o contrato inteligente é iniciada (402). Por exemplo, um nó na rede de protocolo de confiança (por exemplo, automaticamente, ou solicitado por um usuário que atua como iniciador de transação (404)) pode iniciar uma transação usando o contrato inteligente (por exemplo, contrato inteligente (406)). O contrato inteligente pode identificar (408) as funções necessárias para concluir a transação. Em alguns exemplos, durante a execução da lógica do contrato inteligente, uma ou mais chamadas de função podem ser feitas (410) para um ou mais aplicativos FaaS (412). Cada aplicativo FaaS (412) inclui um controlador (414) e um código Faas (416). Um aplicativo FaaS (412) pode existir para cada provedor.
[0046] Com referência continuada ao exemplo acima, o contrato inteligente pode transmitir uma chamada de função (410) para um valor de soma de verificação RSA. Em alguns exemplos, a chamada de função é recebida por meio do controlador de função (414) para execução do código FaaS (416). Em alguns exemplos, a chamada de função inclui entrada para a função e uma variável de versão, que indica uma versão da função que deve ser executada. Em alguns exemplos, a chamada de função não especifica a versão que deve ser executada (por exemplo, o valor da versão é nulo), nesse caso, a versão mais recente da função é usada.
[0047] O controlador de função processa a entrada (por exemplo, uma mensagem) para fornecer uma saída (por exemplo, um valor de soma de verificação). Um solicitação de função (418) é feita do código FaaS (416). Como notado acima, em função de uma resposta (420), ou uma versão especificada da função, ou as versões mais recentes da função é executada. Além disso, o valor da contagem do mapa de estatísticas de chamadas correspondente à versão executada da função é atualizada (422) (por exemplo, incrementado). Continuando com o exemplo acima, após a primeira sendo chamada, o conteúdo estatístico para o exemplo de função de soma de verificação RSA pode ser fornecido como:
[0048] Um resultado de função (424) é fornecido ao contrato inteligente, que pode então completar (426) a transação. A transação pode ser gravada (428) pelo protocolo de confiança (por exemplo, protocolo de confiança (430)). Uma confirmação (432) pode ser enviada para o iniciador de transação (404).
[0049] A sequência das etapas (410) a (424) pode ser repetida para cada função chamada pelo contrato inteligente (406). Por exemplo, o contrato inteligente (406) pode chamar duas funções, a partir de dois provedores FaaS diferentes, e receber resultados de funções de cada um, que o contrato inteligente (406) usa para concluir a transação.
[0050] Em algumas realizações, o provedor de função pode atualizar uma função fornecida anteriormente. Por exemplo, o provedor de função pode recodificar pelo menos uma parte da função para melhorar a eficiência de execução (por exemplo, menos fontes computacionais mais rápidas). Consequentemente, uma versão subsequente da função pode ser fornecida. Continuando com o exemplo acima, uma segunda versão da função de soma de verificação RSA pode ser fornecida e enviada para a rede de protocolo de confiança. A segunda versão da função recebe um endereço exclusivo dentro da rede de protocolo de confiança (por exemplo, 2aae6a1150787a834382d0202ef1e89e3bc89d4d). O último valor de versão (latestVersion) dentro do controlador de função é atualizado para incluir o endereço da função atualizada e um identificador de versão (por exemplo, 2aae6a1150787a834382d0202ef1e89e3bc89d4d.2.0.0).
[0051] Outra transação (segunda transação) usando o contrato inteligente é iniciada. Por exemplo, e com referência contínua ao exemplo acima, o contrato inteligente pode transmitir uma chamada de função para um valor de soma de verificação RSA. Em alguns exemplos, a chamada de função é recebida por meio do controlador de função. Em alguns exemplos, a chamada de função inclui entrada para a função e uma variável de versão, que indica uma versão da função que deve ser executada.
[0052] Em algumas realizações, o controlador de função reconhece que o mesmo contrato inteligente (por exemplo, 39a1509440f8c549dfd6e995def14b1ce3c98e5d) emitiu a chamada de função. Consequentemente, embora outra versão (por exemplo, 2.0.0) da função esteja disponível, a última versão usada (por exemplo, 1.0.0) da função é usada. A função processa a entrada (por exemplo, uma mensagem) para fornecer uma saída (por exemplo, um valor de soma de verificação) e o valor da contagem do mapa de estatísticas de chamada correspondente à versão executada da função é incrementado. Continuando com o exemplo acima, após a segunda vez senso chamado, o conteúdo estatístico para o exemplo de função de soma de verificação RSA pode ser fornecido como:
[0053] Em algumas realizações, pode ser determinado que o contrato inteligente pode usar outras versões de uma função. Por exemplo, o usuário que originou o contrato inteligente e indicou que uma determinada versão (por exemplo, 1.0.0) deveria ser usada, pode determinar que uma versão subsequente (por exemplo, 2.0.0) do contrato inteligente é satisfatória. Consequentemente, o usuário pode atualizar o identificador de versão dentro do mapa de versão (por exemplo, especificar uma versão diferente ou definir o identificador de versão como nulo). Em um exemplo não limitativo, o identificador de versão é definido como nulo. Dessa maneira, na próxima vez que o contrato inteligente fizer uma chamada de função, a versão mais recente da função será usada.
[0054] Outra transação (terceira transação) usando o contrato inteligente é iniciada. Por exemplo, e com referência contínua ao exemplo acima, o contrato inteligente pode transmitir uma chamada de função para um valor de soma de verificação RSA. Em alguns exemplos, a chamada de função é recebida por meio do controlador de função. Em alguns exemplos, a chamada de função inclui entrada para a função e uma variável de versão, que indica uma versão da função que deve ser executada.
[0055] Em algumas realizações, o controlador de função reconhece que o mesmo contrato inteligente (por exemplo, 39a1509440f8c549dfd6e995def14b1ce3c98e5d) emitiu a chamada de função, mas que o identificador de versão é nulo. Consequentemente, embora a primeira versão (por exemplo, 1.0.0) da função tenha sido usada anteriormente, a última versão usada (por exemplo, 2.0.0) da função é usada. A função processa a entrada (por exemplo, uma mensagem) para fornecer uma saída (por exemplo, um valor de soma de verificação) e o valor da contagem do mapa de estatísticas de chamada correspondente à versão executada da função é incrementado. Continuando com o exemplo acima, o conteúdo estatístico para o exemplo de função de soma de verificação RSA pode ser fornecido como:
[0056] A Figura 5 ilustra um exemplo de processo (500) que pode ser executado de acordo com realizações do presente relatório descritivo. Em algumas realizações, o exemplo de processo (500) pode ser executado usando um ou mais programas executáveis por computador executados usando um ou mais dispositivos de computação.
[0057] Em (502), uma transação é iniciada. Por exemplo, a transação pode usar um contrato inteligente que faz parte de uma rede de protocolo de confiança. A transação pode ser iniciada automaticamente ou a transação pode ser solicitada por um usuário. A transação pode ser, por exemplo, uma transação que um usuário está usando para gerar um número aleatório para uso no contrato inteligente.
[0058] Em (504), uma função é chamada pelo contrato inteligente. Como exemplo, a chamada de função (410) pode ser feita, tal como chamar uma função de gerador de números aleatórios que é fornecida pela plataforma FaaS. Em algumas realizações, a chamada de função pode incluir ainda um endereço da função e um identificador de versão da função. Por exemplo, o contrato inteligente (406) pode incluir, na chamada de função (410), o endereço dentro do protocolo de confiança que está associado à função e a um número de versão que identifica uma versão específica da função a ser chamada.
[0059] Em (506), o contrato inteligente recebe resultado(s). Por exemplo, o (412) pode fornecer o resultado da função (424), tal como um número aleatório determinado pela função de número aleatório. Em (508), o contrato inteligente conclui a transação com base no(s) resultado(s). Como um exemplo, após o número aleatório ser recebido, o contrato inteligente (406) pode completar a operação de número aleatório que foi solicitada pelo usuário. Em (510), uma transação é gravada no protocolo de confiança. Por exemplo, a transação (428) pode ser registrada, atualizando as estatísticas que indicam que a função de número aleatório foi usada outra vez.
[0060] As características descritas podem ser implementadas em circuitos eletrônicos digitais ou em hardware de computador, firmware, software ou em combinações dos mesmos. O aparelho pode ser implementado em um produto de programa de computador tangivelmente incorporado em um veículo de informação (por exemplo, em um dispositivo de armazenamento legível por máquina) para realização por um processador programável; e as etapas do método podem ser realizadas por um processador programável executando um programa de instruções para executar funções das realizações descritas operando nos dados de entrada e gerando a saída. As características descritas podem ser implementadas vantajosamente em um ou mais programas de computador que são executáveis em um sistema programável incluindo pelo menos um processador programável acoplado para receber dados e instruções de, e para transmitir dados e instruções a, um sistema de armazenamento de dados, pelo menos um dispositivo de entrada e pelo menos um dispositivo de saída. Um programa de computador é um conjunto de instruções que podem ser usados, direta ou indiretamente, em um computador para realizar uma determinada atividade ou obter um certo resultado. Um programa de computador pode ser escrito em qualquer forma de linguagem de programação, incluindo idiomas compilados ou interpretados, e pode ser implementado de qualquer forma, incluindo como um programa independente ou como um módulo, componente, sub-rotina ou outra unidade adequada para uso em um ambiente de computação.
[0061] Processadores adequados para a realização de um programa de instruções incluem, a título de exemplo, microprocessadores de uso geral e especial, e o único processador ou um de múltiplos processadores de qualquer tipo de computador. Geralmente, um processador receberá instruções e dados de uma memória somente leitura ou de uma memória de acesso aleatório ou de ambas. Os elementos de um computador podem incluir um processador para executar instruções e uma ou mais memórias para armazenar instruções e dados. Geralmente, um computador pode também incluir, ou está operacionalmente acoplado para se comunicar com, um ou mais dispositivos de armazenamento em massa para armazenar arquivos de dados; tais dispositivos incluem discos magnéticos, como discos rígidos internos e discos removíveis; discos magneto-ópticos; e discos ópticos. Dispositivos de armazenamento adequados para incorporar de forma tangível instruções e dados de programas de computador incluem todas as formas de memória não volátil, incluindo, por exemplo, dispositivos de memória semicondutores, tais como EPROM, EEPROM e dispositivos de memória flash; discos magnéticos, como discos rígidos internos e discos removíveis; discos magneto-ópticos; e discos de CD-ROM e DVD-ROM. O processador e a memória podem ser suplementados por, ou incorporados nos, circuitos integrados específicos de aplicativo (ASICs).
[0062] Para fornecer a interação com um usuário, as características podem ser implementadas em um computador com um dispositivo de exibição, como um monitor de tubo de raio catódico (CRT) ou de cristal líquido (LCD) para exibir informações ao usuário e um teclado e um dispositivo apontador, como um mouse ou uma trackball, pelos quais o usuário pode fornecer entrada para o computador.
[0063] As características podem ser implementadas em um sistema de computador que inclua um componente de painel administrativo (back-end), como um servidor de dados, ou que inclua um componente de middleware, como um servidor de aplicativos ou um servidor da Internet, ou que inclua um componente de interface de interação com o usuário (front-end), como um computador cliente com uma interface gráfica do usuário ou um navegador da Internet, ou qualquer combinação deles. Os componentes do sistema podem ser conectados por qualquer forma ou meio de comunicação de dados digitais, como uma rede de comunicação. Exemplos de redes de comunicação incluem, por exemplo, uma rede de área local (LAN), uma rede de longa distância (WAN) e os computadores e redes que formam a Internet.
[0064] O sistema de computador pode incluir clientes e servidores. Um cliente e um servidor geralmente são remotos entre si e geralmente interagem através de uma rede, como a descrita. A relação de cliente e servidor surge em virtude de programas de computador em realização nos respectivos computadores e tendo um relacionamento cliente-servidor entre si.
[0065] Além disso, os fluxos lógicos representados nas figuras não exigem a ordem particular mostrada, ou ordem sequencial, para alcançar os resultados desejados. Além disso, outras etapas podem ser fornecidas, ou etapas podem ser eliminadas, dos fluxos descritos, e outros componentes podem ser adicionados ou removidos dos sistemas descritos. Por conseguinte, outras realizações estão dentro do escopo das reivindicações seguintes.
[0066] Um certo número de realizações do presente relatório descritivo foi descrito. No entanto, será entendido que várias modificações podem ser feitas sem se afastar do escopo do presente relatório descritivo. Por conseguinte, outras realizações estão dentro do escopo das seguintes reivindicações.
Claims (21)
1. MÉTODO IMPLEMENTADO POR COMPUTADOR para fornecer uma plataforma de funções como serviço (FaaS) dentro de uma rede de protocolo de confiança (102, 212), o método implementado por computador sendo executado por um ou mais processadores e caracterizado por compreender as etapas de: iniciar, por um primeiro nó de protocolo de confiança na rede de protocolo de confiança (102, 212), uma solicitação para executar uma transação utilizando um contrato inteligente (302, 406) associado com o primeiro ou um segundo nó de protocolo de confiança na rede de protocolo de confiança (102, 212); receber, a partir do contrato inteligente (302, 406), a solicitação para executar a transação; determinar, a partir do contrato inteligente (302, 406), uma primeira função da transação a ser executada; receber, a partir do contrato inteligente (302, 406), e por meio de um primeiro controlador de função (314) que executa dentro da rede de protocolo de confiança (102, 212), uma primeira chamada de função para executar a primeira função da transação, em que a primeira chamada de função compreende dados da primeira chamada de função para execução; transmitir, por meio do primeiro controlador de função (314), os dados da primeira chamada de função para execução para um primeiro componente de função, executar, por meio do primeiro componente de função, a primeira função da transação com base nos dados da primeira chamada de função para execução; receber, por meio do primeiro controlador de função (314), um primeiro resultado de execução de função do primeiro componente de função; e fornecer, por meio do primeiro controlador de função (314), o primeiro resultado de execução da função para o contrato inteligente (302, 406) antes da execução, pelo contrato inteligente (302, 406), da transação pelo menos parcialmente com base no primeiro resultado de execução de função.
2. MÉTODO, de acordo com a reivindicação 1, caracterizado pela primeira chamada de função compreender ainda um endereço da primeira função da transação e um identificador de versão da primeira função da transação.
3. MÉTODO, de acordo com a reivindicação 2, caracterizado pelo identificador de versão da primeira função da transação ser nulo, indicando que uma versão mais recente da primeira função da transação deve ser executada.
4. MÉTODO, de acordo com a reivindicação 1, caracterizado por compreender ainda a atualização, por meio do primeiro controlador de função (314), de estatísticas associadas com uma versão da primeira função da transação que foi executada em resposta à primeira chamada de função.
5. MÉTODO, de acordo com a reivindicação 4, caracterizado pelas estatísticas indicarem um número de vezes que cada versão da primeira função de transação foi executada.
6. MÉTODO, de acordo com a reivindicação 1, caracterizado por compreender ainda as etapas de: receber, do contrato inteligente (302, 406), e por meio de um segundo controlador de função (414) executando dentro da rede de protocolo de confiança (102, 212), uma segunda chamada de função para executar uma segunda função da transação, em que a segunda chamada de função compreende dados da segunda chamada de função para execução, em que a segunda função da transação é diferente da primeira função da transação, e em que o segundo controlador de função (414) é diferente do primeiro controlador de função (314); transmitir, por meio do segundo controlador de função (414), os dados da segunda chamada de função para executar um segundo componente de função, em que o segundo componente de função é diferente do primeiro componente de função; executar, por meio do segundo componente de função, a segunda função da transação com base nos dados da segunda chamada de função para execução; receber, por meio do segundo controlador de função (414), um segundo resultado da execução de função do segundo componente de função; e fornecer, por meio do segundo controlador de função (414), o segundo resultado da execução da segunda função ao contrato inteligente (302, 406) antes da execução, pelo contrato inteligente (302, 406), da transação pelo menos parcialmente com base no segundo resultado de execução de função.
7. MÉTODO, de acordo com a reivindicação 6, caracterizado pela primeira função da transição e a segunda função da transação serem fornecidas por provedores (310) diferentes.
8. MEIO LEGÍVEL POR COMPUTADOR, caracterizado por ser codificado com instruções executadas por um ou mais computadores, que permitem que o um ou mais computadores executem operações para fornecer uma plataforma de funções como serviço (FaaS) dentro de uma rede de protocolo de confiança (102, 212), em que as operações compreendem: iniciar, por um primeiro nó de protocolo de confiança na rede de protocolo de confiança (102, 212), uma solicitação para executar uma transação utilizando um contrato inteligente (302, 406) associado com um primeiro ou um segundo nó de protocolo de confiança na rede de protocolo de confiança (102, 212); receber, a partir do contrato inteligente (302, 406), a solicitação para executar a transação; determinar, a partir do contrato inteligente (302, 406), uma primeira função da transação a ser executada; receber, a partir do contrato inteligente (302, 406), e por meio de um primeiro controlador de função (314) que executa dentro da rede de protocolo de confiança (102, 212), uma primeira chamada de função para executar a primeira função da transação, em que a primeira chamada de função compreende dados da primeira função para execução; transmitir, por meio do primeiro controlador de função (314), os dados da primeira chamada de função para execução para um primeiro componente de função; executar, por meio do primeiro componente de função, a primeira função da transação com base nos dados da primeira chamada de função para execução; receber, por meio do primeiro controlador de função (314), um primeiro resultado de execução de função do primeiro componente de função; e fornecer, por meio do primeiro controlador de função (314), o primeiro resultado de execução da função para o contrato inteligente (302, 406) antes da execução, pelo contrato inteligente (302, 406), da transação pelo menos parcialmente com base no primeiro resultado de execução de função.
9. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 8, caracterizado pela primeira chamada de função compreender ainda um endereço da primeira função da transação e um identificador de versão da primeira função da transação.
10. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 9, caracterizado pelo identificador de versão da primeira função da transação ser nulo indicando que uma versão mais recente da primeira função da transação deve ser executada.
11. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 8, caracterizado pelas operações compreenderem ainda a atualização, por meio do primeiro controlador de função (314), estatísticas associadas a uma versão da primeira função da transação que foi executada em resposta à primeira chamada de função.
12. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 11, caracterizado pelas estatísticas indicarem um número de vezes que cada versão da primeira função da transição foi executada.
13. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 8, caracterizado pelas operações compreenderem ainda: receber, por meio do contrato inteligente (302, 406), e por meio de um segundo controlador de função (414) executando dentro da rede de protocolo de confiança (102, 212), uma segunda chamada de função para executar uma segunda função da transação, em que a segunda chamada de função compreende dados da segunda função para execução, em que a segunda função da transação é diferente da primeira função de transação, e em que o segundo controlador de função (414) é diferente do primeiro controlador de função (314); transmitir, por meio do segundo controlador de função (414), os dados da segunda chamada de função para um segundo componente de função, em que o segundo componente de função é diferente do primeiro componente de função; executar, por meio do segundo componente de função, a segunda função da transação com base nos dados da segunda chamada de função para execução; receber, por meio do segundo controlador de função (414), um segundo resultado execução da função do segundo componente de função; e fornecer, por meio do segundo componente de função, o segundo resultado da função ao contrato inteligente (302, 406) antes da execução, pelo contrato inteligente (302, 406), da transação pelo menos parcialmente com base no segundo resultado de execução de função.
14. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 13, caracterizado pela primeira função da transação e a segunda função da transação serem fornecidas por provedores (310) diferentes.
15. SISTEMA PARA IMPLEMENTAR UM MÉTODO, caracterizado por compreender: um ou mais computadores; e uma ou mais memórias acopladas ao um ou mais computadores e configuradas com instruções executáveis pelo um ou mais computadores para realizar operações para fornecer uma plataforma de funções como serviço (FaaS) dentro de uma rede de protocolo de confiança (102, 212), as operações compreendendo: iniciar, por um primeiro nó de protocolo de confiança na rede de protocolo de confiança (102, 212), uma solicitação para executar uma transação utilizando um contrato inteligente (302, 406) associado com o primeiro ou um segundo nó de protocolo de confiança na rede de protocolo de confiança (102, 212); receber, a partir do contrato inteligente (302, 406), a solicitação para executar a transação; determinar, a partir do contrato inteligente (302, 406), uma primeira função de transação a ser executada; receber, a partir de um contrato inteligente (302, 406), e por meio de um primeiro controlador de função (314) que executa dentro da rede de protocolo de confiança (102, 212), uma primeira chamada de função para executar a primeira função da transação, em que a primeira chamada de função compreende dados da primeira chamada para execução; transmitir, por meio do primeiro controlador de função (314), os dados da primeira chamada de função para execução para um primeiro componente de função, executar, por meio do primeiro componente de função, a segunda função de transação com base nos dados da segunda chamada de função para execução; receber, por meio do primeiro controlador de função (314), um primeiro resultado de execução do primeiro componente de função; e fornecer, por meio do primeiro controlador de função (314), o primeiro resultado de execução da função ao contrato inteligente (302, 406) antes da execução, pelo contrato inteligente (302, 406), da transação pelo menos parcialmente com base no primeiro resultado de execução de função.
16. SISTEMA, de acordo com a reivindicação 15, caracterizado pela primeira chamada de função compreender ainda um endereço da primeira função de transação e um identificador da versão da primeira função de transação.
17. SISTEMA, de acordo com a reivindicação 16, caracterizado pelo identificador de versão da primeira função de transação ser nulo, indicando que uma versão mais recente da primeira função é para ser executado.
18. SISTEMA, de acordo com a reivindicação 15, caracterizado pelas operações compreenderem ainda a atualização, por meio do primeiro controlador de função (314), estatísticas associadas com uma versão da primeira função de transação que foi executada em resposta à primeira chamada de função.
19. SISTEMA, de acordo a reivindicação 18, caracterizado pelas estatísticas indicarem um número de vezes que cada versão de uma primeira função foi executada.
20. SISTEMA, de acordo com a reivindicação 15, caracterizado pelas operações compreenderem ainda: receber, de um contrato inteligente (302, 406), e por meio de um segundo controlador de função (414) executando dentro da rede de protocolo de confiança (102, 212), uma segunda chamada de função para executar uma segunda função de transação, em que a segunda chamada de função compreende dados da segunda chamada de função para execução, em que a segunda função de transação é diferente da primeira função de transação, e em que o segundo controlador de função (414) é diferente do primeiro controlador de função (314); transmitir, por meio do segundo controlador de função (414), os dados da segunda chamada de função para executar um segundo componente de função, em que o segundo componente de função é diferente do primeiro componente de função; executar, por meio do segundo componente de função, a segunda função de transação com base nos dados da segunda chamada de função para execução; receber, por meio do segundo controlador de função (414), um resultado da segunda função de execução do segundo componente de função; e fornecer, por meio do segundo controlador de função (414), o segundo resultado da segunda função de execução ao contrato inteligente (302, 406) antes da execução, pelo contrato inteligente (302, 406), da transação pelo menos parcialmente com base no primeiro resultado de execução de função.
21. SISTEMA, de acordo com a reivindicação 20, caracterizado pela primeira função de transação e a segunda função de transação serem fornecidas por diferentes fornecedores.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/117637 WO2019072282A2 (en) | 2018-11-27 | 2018-11-27 | FUNCTION-AS-A-SERVICE PLATFORM (FAAS) IN BLOCK CHAIN NETWORKS |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112019007939A2 BR112019007939A2 (pt) | 2019-11-12 |
BR112019007939B1 true BR112019007939B1 (pt) | 2021-09-21 |
Family
ID=66100148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112019007939-4A BR112019007939B1 (pt) | 2018-11-27 | 2018-11-27 | Método implementado por computador, meio legível por computador e sistema para implementar um método |
Country Status (17)
Country | Link |
---|---|
US (2) | US10671380B2 (pt) |
EP (1) | EP3552166B1 (pt) |
JP (1) | JP6756914B2 (pt) |
KR (1) | KR102193533B1 (pt) |
CN (1) | CN110622192B (pt) |
AU (1) | AU2018348323C1 (pt) |
BR (1) | BR112019007939B1 (pt) |
CA (1) | CA3041223C (pt) |
ES (1) | ES2880455T3 (pt) |
MX (1) | MX2019004667A (pt) |
PH (1) | PH12019500872B1 (pt) |
PL (1) | PL3552166T3 (pt) |
RU (1) | RU2744322C2 (pt) |
SG (1) | SG11201903493YA (pt) |
TW (1) | TWI706647B (pt) |
WO (1) | WO2019072282A2 (pt) |
ZA (1) | ZA201902490B (pt) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102193533B1 (ko) | 2018-11-27 | 2020-12-23 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 블록체인 네트워크에서의 FaaS 플랫폼 |
US11405182B2 (en) * | 2018-12-03 | 2022-08-02 | Ebay Inc. | Adaptive security for smart contracts using high granularity metrics |
US11250125B2 (en) | 2018-12-03 | 2022-02-15 | Ebay Inc. | Highly scalable permissioned block chains |
US11263315B2 (en) * | 2018-12-03 | 2022-03-01 | Ebay Inc. | System level function based access control for smart contract execution on a blockchain |
US10841153B2 (en) * | 2018-12-04 | 2020-11-17 | Bank Of America Corporation | Distributed ledger technology network provisioner |
FR3094521A1 (fr) * | 2019-03-29 | 2020-10-02 | Orange | Procédés et dispositifs permettant de prouver la connaissance d’une donnée par un utilisateur d’une chaîne de blocs |
CN110704063B (zh) * | 2019-09-30 | 2021-09-07 | 支付宝(杭州)信息技术有限公司 | 编译和执行智能合约的方法及装置 |
CN111158645B (zh) * | 2019-12-10 | 2022-09-20 | 杭州中天微系统有限公司 | 提供集成开发环境的系统和方法 |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
FR3107417A1 (fr) * | 2020-02-19 | 2021-08-20 | Orange | Procédé et dispositif de contrôle d’accès à une fonction d’une application inscrite dans une chaîne de blocs. |
TWI804728B (zh) * | 2020-05-15 | 2023-06-11 | 天宿智能科技股份有限公司 | 基於區塊鏈之資產動態價值管理系統及其方法 |
US11948010B2 (en) | 2020-10-12 | 2024-04-02 | International Business Machines Corporation | Tag-driven scheduling of computing resources for function execution |
CN112804359B (zh) * | 2021-03-30 | 2021-07-06 | 支付宝(杭州)信息技术有限公司 | 提供跨链消息的方法和装置 |
CN113472512A (zh) * | 2021-06-10 | 2021-10-01 | 东软集团股份有限公司 | 智能合约执行方法、装置、存储介质及电子设备 |
CN113542435B (zh) * | 2021-09-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 一种用户服务使用方法及装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6918110B2 (en) * | 2001-04-11 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code |
US7844574B2 (en) * | 2008-04-16 | 2010-11-30 | International Business Machines Corporation | Systems, methods and computer program products for automatic network-based persistent XML storage and management |
JP6374666B2 (ja) | 2014-02-19 | 2018-08-15 | キヤノン株式会社 | 通信装置およびその制御方法、ならびにプログラム |
JP6037460B2 (ja) * | 2014-04-14 | 2016-12-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | サービス提供装置、プログラム、及び、方法 |
US10033702B2 (en) * | 2015-08-05 | 2018-07-24 | Intralinks, Inc. | Systems and methods of secure data exchange |
WO2017070575A1 (en) | 2015-10-23 | 2017-04-27 | Oracle International Corporation | Self describing configuration with support for sharing data tables |
US20170140408A1 (en) * | 2015-11-16 | 2017-05-18 | Bank Of America Corporation | Transparent self-managing rewards program using blockchain and smart contracts |
US9992028B2 (en) * | 2015-11-26 | 2018-06-05 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
EP3394818A4 (en) * | 2015-12-21 | 2019-08-14 | Kochava Inc. | AUTOREGULATING TRANSACTION SYSTEM AND ASSOCIATED METHODS |
US9898260B2 (en) * | 2015-12-28 | 2018-02-20 | Samsung Electronics Co., Ltd. | Adaptive function-based dynamic application extension framework |
EP3193299A1 (en) * | 2016-01-15 | 2017-07-19 | Accenture Global Services Limited | Device, method and system for autonomous selection of a commodity supplier through a blockchain distributed database |
AU2017320341B2 (en) | 2016-08-30 | 2022-04-28 | Commonwealth Scientific And Industrial Research Organisation | Dynamic access control on blockchain |
WO2018051305A1 (en) * | 2016-09-19 | 2018-03-22 | Thomson Reuters Global Resources Unlimited Company | Systems and methods for interception of smart contracts |
KR20240027155A (ko) * | 2016-10-28 | 2024-02-29 | 엔체인 홀딩스 리미티드 | 블록체인을 통한 결정론적 유한 오토마타(DFAs) 구현을 위한 시스템 및 방법 |
CN106603698A (zh) * | 2016-12-28 | 2017-04-26 | 北京果仁宝科技有限公司 | 基于dpos的区块链共识方法和节点 |
RU2658784C1 (ru) * | 2017-03-23 | 2018-06-22 | Общество с ограниченной ответственностью "БУБУКА" | Способ и система контроля за воспроизведением медиа-контента, включающего объекты интеллектуальных прав |
CN107038242B (zh) * | 2017-04-24 | 2020-02-07 | 杭州趣链科技有限公司 | 一种面向区块链全局智能合约业务数据解析方法 |
US11165589B2 (en) * | 2017-05-11 | 2021-11-02 | Shapeshift Ag | Trusted agent blockchain oracle |
CN107220767A (zh) * | 2017-05-26 | 2017-09-29 | 中山市博林树投资管理有限公司 | 一种虚拟化资源池环境下的资源共享系统 |
WO2019033074A1 (en) * | 2017-08-11 | 2019-02-14 | Dragonchain, Inc. | SYSTEMS AND METHODS OF INTERACTION WITH DISTRIBUTED REGISTERS |
JP6987594B2 (ja) * | 2017-10-16 | 2022-01-05 | 株式会社日立製作所 | アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置 |
US10095888B1 (en) * | 2018-06-04 | 2018-10-09 | Capital One Services, Llc | Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system |
CN108717466A (zh) * | 2018-06-05 | 2018-10-30 | 中国平安人寿保险股份有限公司 | 征信数据存储方法、装置、计算机设备及存储介质 |
US10915366B2 (en) * | 2018-09-28 | 2021-02-09 | Intel Corporation | Secure edge-cloud function as a service |
KR102193533B1 (ko) | 2018-11-27 | 2020-12-23 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 블록체인 네트워크에서의 FaaS 플랫폼 |
-
2018
- 2018-11-27 KR KR1020197011389A patent/KR102193533B1/ko active IP Right Grant
- 2018-11-27 CN CN201880003972.2A patent/CN110622192B/zh active Active
- 2018-11-27 EP EP18865365.3A patent/EP3552166B1/en active Active
- 2018-11-27 AU AU2018348323A patent/AU2018348323C1/en active Active
- 2018-11-27 ES ES18865365T patent/ES2880455T3/es active Active
- 2018-11-27 JP JP2019521361A patent/JP6756914B2/ja active Active
- 2018-11-27 MX MX2019004667A patent/MX2019004667A/es unknown
- 2018-11-27 CA CA3041223A patent/CA3041223C/en active Active
- 2018-11-27 SG SG11201903493YA patent/SG11201903493YA/en unknown
- 2018-11-27 WO PCT/CN2018/117637 patent/WO2019072282A2/en active Application Filing
- 2018-11-27 PL PL18865365T patent/PL3552166T3/pl unknown
- 2018-11-27 RU RU2019111902A patent/RU2744322C2/ru active
- 2018-11-27 BR BR112019007939-4A patent/BR112019007939B1/pt active IP Right Grant
-
2019
- 2019-04-17 ZA ZA2019/02490A patent/ZA201902490B/en unknown
- 2019-04-22 US US16/390,088 patent/US10671380B2/en active Active
- 2019-04-22 PH PH12019500872A patent/PH12019500872B1/en unknown
- 2019-08-05 TW TW108127723A patent/TWI706647B/zh active
-
2020
- 2020-03-30 US US16/834,559 patent/US10824419B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112019007939B1 (pt) | Método implementado por computador, meio legível por computador e sistema para implementar um método | |
JP6727435B2 (ja) | ブロックチェーンネットワーク用テストプラットフォーム | |
KR102151893B1 (ko) | 탈중앙화 결정을 사용하는 블록체인 스마트 계약 업데이트 | |
US11770238B2 (en) | Decentralized computation system architecture based on node specialization | |
JP7341225B2 (ja) | マルチテナント環境における非集中型台帳による高度なスマートコントラクト | |
JP2022501711A (ja) | マルチテナントブロックチェーンネットワークにおける軽量ノード | |
KR20200066254A (ko) | 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법 | |
BR112019007995A2 (pt) | “método implementado por computador, meio legível por computador e sistema para implementar um método | |
CN109862102A (zh) | 一种分布式数据多副本并发控制系统、服务器及方法 | |
US12099520B2 (en) | Minimizing read and update conflict errors in blockchains | |
Vallejo Seade | Asset tokenization in real estate through the means of token standards available on the ethereum blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B25A | Requested transfer of rights approved |
Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD. (KY) |
|
B25A | Requested transfer of rights approved |
Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY) |
|
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/11/2018, OBSERVADAS AS CONDICOES LEGAIS. |