BR112019027873A2 - ordenamento de compromisso de transação blockchain - Google Patents

ordenamento de compromisso de transação blockchain Download PDF

Info

Publication number
BR112019027873A2
BR112019027873A2 BR112019027873-7A BR112019027873A BR112019027873A2 BR 112019027873 A2 BR112019027873 A2 BR 112019027873A2 BR 112019027873 A BR112019027873 A BR 112019027873A BR 112019027873 A2 BR112019027873 A2 BR 112019027873A2
Authority
BR
Brazil
Prior art keywords
instructions
transactions
fact
new
data
Prior art date
Application number
BR112019027873-7A
Other languages
English (en)
Other versions
BR112019027873B1 (pt
Inventor
Ruslan Ardashev
Nitin Gaur
Original Assignee
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of BR112019027873A2 publication Critical patent/BR112019027873A2/pt
Publication of BR112019027873B1 publication Critical patent/BR112019027873B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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 involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Uma função de blockchain pode incluir um ou mais de identificação de uma pluralidade de novas operações para ser cometidos para uma blockchain, determinar se qualquer uma da pluralidade de novas transações compreende uma dependência de dados com uma outra da pluralidade de novas transações e a transmissão de uma pluralidade de mensagens fornecendo validação da pluralidade das novas operações, em resposta à determinação.

Description

“ORDENAÇÃO DE COMPROMISSO DE TRANSAÇÃO BLOCKCHAIN” Campo Técnico
[0001] Este pedido em geral se refere a ordenação de transação, e mais particularmente, ordenação de compromisso de transação blockchain. Fundamentos
[0002] Um blockchain pode ser usado como uma razão pública para armazenar qualquer tipo de informação. Apesar disso, primariamente usado para transações financeiras, um blockchain pode armazenar qualquer tipo de informação, incluindo ativos (isto é, produtos, pacotes, serviços, status, etc.) no seu registro imutável. Um esquema descentralizado transfere autoridade e confia em uma rede descentralizada e permite que os seus nós continuamente e sequencialmente gravem as suas transações em um “bloco” público, criando uma “cadeia” única referida como o blockchain. Criptografia, através de códigos de hash, é usada para garantir uma autenticação de uma fonte de transação e remover a necessidade de um intermediário central.
[0003] A combinação de criptografia e tecnologia de blockchain juntos garante que nunca existe uma gravação duplicada da mesma transação. Processadores modernos podem executar instruções fora de ordem (OoO), no entanto este conceito e o que os processadores fazem são dois tópicos distintos já que os processadores sempre devem manter a ilusão arquitetônica de execução em ordem, mesmo que tudo o que seja necessário de ser realizado seja a redução das dependências de dados. Sumário
[0004] Uma concretização exemplar pode incluir uma ou mais de identificar uma pluralidade de novas transações a serem comprometidas com um blockchain, determinar se qualquer uma da pluralidade de novas transações compreende uma dependência de dados com qualquer outra da pluralidade de novas transações, e transmitir uma pluralidade de mensagens provendo validação da pluralidade de novas transações, responsivo à determinação.
[0005] Outra concretização exemplar pode incluir um aparelho que inclui um processador configurado para realizar um ou mais de identificar uma pluralidade de novas transações a serem comprometidas com um blockchain, determina se qualquer um da pluralidade de novas transações compreende uma dependência de dados com qualquer outra da pluralidade de novas transações, e um transmissor configurado para transmitir uma pluralidade de mensagens indicando para prosseguir com a validação da pluralidade de novas transações, responsivo à determinação.
[0006] Ainda outra concretização exemplar pode incluir um meio de armazenamento legível por computador não transitório configurado para armazenar instruções que quando executadas fazem com que um processador realize um ou mais de identificar uma pluralidade de novas transações a serem comprometidas com um blockchain, determinar se qualquer uma da pluralidade de novas transações compreende uma dependência de dados com qualquer outra da pluralidade de novas transações, e transmitir uma pluralidade de mensagens que indicam para prosseguir com a validação da pluralidade de novas transações, responsivo à determinação. Breve descrição dos desenhos
[0007] A FIG. 1 ilustra uma configuração de processamento de transação ilustrando as diferenças entre momento de instrução fora de ordem e momento de instrução que não está fora de ordem para transações em um blockchain de acordo com concretizações exemplares.
[0008] A FIG. 2 ilustra uma configuração de lógica de ordenação de transação de acordo com concretizações exemplares.
[0009] A FIG. 3 ilustra um diagrama de sinalização de sistema das interações entre um dispositivo de computação de ordenação de transação, um módulo de ordenação, e um blockchain de acordo com concretizações exemplares.
[00010] A FIG. 4A ilustra um diagrama de fluxo de um método exemplar de gerenciamento de ordenação de transação no blockchain de acordo com concretizações exemplares.
[00011] A FIG. 4B ilustra outro diagrama de fluxo de um método exemplar de gerenciamento de ordenação de transação no blockchain de acordo com concretizações exemplares.
[00012] A FIG. 5 ilustra um exemplo de entidade de rede configurada para sustentar uma ou mais das concretizações exemplares. Descrição detalhada
[00013] Será prontamente entendido que os presentes componentes, como geralmente descritos e ilustrados nas figuras aqui, podem ser arranjados e projetados em uma grande variedade de diferentes configurações. Assim, a seguinte descrição detalhada das concretizações de pelo menos um do um método, do aparelho, do sistema e meio legível por computador não transitório, como representado nas figuras anexas, não está intencionado a limitar o escopo do pedido como reivindicado, mas é meramente representativo das concretizações selecionadas.
[00014] Os recursos instantâneos, estruturas ou características como descritos no decorrer deste relatório podem ser combinados de qualquer maneira adequada em uma ou mais concretizações. Por exemplo, o uso das frases "concretizações exemplares", "algumas concretizações", ou outra linguagem similar, no decorrer deste relatório se refere ao fato de que um particular recurso, estrutura ou característica descrito em conexão com a concretização pode ser incluída em pelo menos uma concretização. Assim, aparências das frases "concretizações exemplares", "em algumas concretizações", "em outras concretizações", ou outra linguagem similar, no decorrer desta relatório do não necessariamente se referem todas ao mesmo grupo de concretizações, e as recursos, estruturas ou características descritas podem ser combinadas de qualquer maneira adequada em uma ou mais concretizações.
[00015] Em adição, enquanto o termo "mensagem" pode ter sido usado na descrição das concretizações, o pedido pode ser aplicado a muito tipos de dados de rede, tal como, pacote,
estrutura, datagrama, etc. O termo "mensagem" também inclui pacote, estrutura, datagrama, e quaisquer equivalentes dos mesmos. Adicionalmente, enquanto certos tipos de mensagens e sinalização podem ser representados nas concretizações exemplares elas não estão limitadas a um certo tipo de mensagem, e o pedido não está limitada a um certo tipo de sinalização.
[00016] O pedido instantâneo em uma concretização se refere ao gerenciamento de ordenação de transação blockchain, e em outra concretização se refere à identificação de transações pendentes e determinação de relações entre as transações para otimizar a ordenação de compromisso de transação.
[00017] Concretizações exemplares proveem um novo módulo para arquiteturas de rede de blockchain que vai permitir que redes de blockchain operem de maneira eficiente independentemente das dependências de dados entre transações pendentes para otimizar velocidade de rede, eficiência de processamento e outros recursos de computação. De acordo com um exemplo, um módulo de ordenação pode ser parte de um servidor de transação que recebe transações e armazena temporariamente as transações e instruções pendentes usadas para analisar as dependências de dados entre estas transações. Se nenhuma dependência de dados é identificada, então instruções prosseguem para simultaneamente direcionar instruções para a validação e o compromisso das transações pode ser realizado fora de ordem. Esta abordagem otimiza os tempos de processamento de instrução.
[00018] A FIG. 1 ilustra uma configuração de processamento de transação ilustrando as diferenças entre momento de instrução fora de ordem e momento de instrução que não está fora de ordem para transações em um blockchain de acordo com concretizações exemplares. Em referência à FIG. 1, a configuração 100 inclui exemplos de processamento de transação em ordem (sem estar fora de ordem) e processamento de transação fora de ordem. Em referência ao exemplo com as transações 112-124 (A-F), as instruções fora de ordem permitem desviar da espera por instruções anteriores para comprometer primeiramente uma transação antes de prosseguir para processar adicionais instruções. No diagrama 100, o tamanho das instruções não reflete a quantidade de instruções, já que o tamanho é meramente um indicador para ilustrar o tempo gasto naquela particular transação/instrução. As instruções “em ordem” são quase do mesmo tamanho já que elas são todas processadas em sequência em uma quantidade similar de tempo em que as instruções fora de ordem estão se sobrepondo e são assíncronas e podem variar no tempo gasto para realizar o processamento. No modelo “Fora de ordem”, as instruções para F 124 precisam esperar que instruções a partir da transação B 114 sejam completadas, já que um módulo de ordem pendente usado para processar as transações (ver a FIG. 1). Adicionalmente, dependências de dados são analisadas, e se uma dependência de dados existe entre as instruções para D 118 e F 124, um sinal é usado para esperar que todas as instruções anteriores sejam comprometidas. Neste caso, as instruções para B 114 são a última instrução a esperar antes de prosseguir para o compromisso. Na abordagem em ordem ou no momento de instrução sem estar fora de ordem, as instruções para transações A 132, B 134 e C 136 são processadas em ordem sem qualquer tipo de processamento paralelo, processamento assíncrono e/ou processamento simultâneo das transações para o compromisso. As várias transações podem ser identificadas de acordo com as suas instruções que se referem aos dados e compõem as modificações. Por exemplo, Instruções para transações A até E relacionadas com certos dados mas apenas D e F são detectadas de ter colisões de dados pelo módulo de ordem pendente.
[00019] Sem o processamento OoO, as transações são comprometidas na seguinte ordem: A, B, C, D, E, F. Aplicando suporte de gerenciamento de transação OoO, as transações são comprometidas na seguinte ordem: A, C, E, D, B, F. Transações que usam o modelo OoO podem seguir um procedimento onde um nó de mesmo nível publica o início de uma transação para níveis parceiros bem como dados circundantes, dados os quais são afetados por aquela transação. Uma transação passa por consenso pelos seus pelos seus pares e uma vez aprovada, ela é anexada localmente com o blockchain. Implementações de hash ou como as transações são especificamente ligadas com a ordem, com os resultados "globais" de um blockchain sendo os mesmos, vão variar pela implementação.
[00020] A FIG. 2 ilustra uma configuração de lógica de ordenação de transação de acordo com concretizações exemplares.
Em referência à FIG. 2, a ilustração exemplar 200 provê um módulo de ordem 212 que provê instruções comprometidas em comprometer as transações 214 com um módulo de ordem pendente
222. As instruções comprometidas 224 do módulo de ordem pendente 222 podem ser diferentes do módulo de ordem de transação original 212. Todos os outros nós 250 também são capazes de comunicar as instruções com o módulo de ordem pendente 222. O módulo de ordem pendente 222 rastreia todas as instruções pendentes e os seus estados (por exemplo, envio pendente para consenso, consenso pendente, compromisso pendente com o blockchain). Envio pendente é o estado mais prematuro, consenso pendente é o segundo, e compromisso pendente é o que alcançou o consenso e está esperando finalização.
[00021] O módulo de ordem 212 rastreia o estado de todas as instruções comprometidas anteriormente as quais já existem. Instruções iniciam um ciclo de vida com base em entrada de usuário para realizar alguma(s) ação(ões) predefinida(s) (isto é, solicitar compartilhamentos, transferir carro, comprar casa, entrar informação de hipoteca, etc.). Estes comandos então são convertidos para instruções de blockchain através de contratos inteligentes e as instruções incluem localizações de dados de leitura e/ou escrita com localizações de dados claramente definidas, as quais então são entradas para o módulo de ordem pendente 222. No módulo de ordem pendente 222, localizações de dados das instruções são analisadas para dependências de dados. Se as instruções são liberadas de prosseguir, elas são enviadas para consenso fora de ordem, retornadas fora de ordem, e são comprometidas com o blockchain sem ordem particular. Se as dependências de dados existem instruções são marcadas para esperar que todas as instruções anteriores sejam comprometidas primeiramente antes das instruções posteriores.
[00022] Existem duas categorias de dependências de dados incluindo, escrita após leitura e escrita após escrita. Instruções do tipo escrita após leitura terminam lendo dados antigos já que uma instrução mais nova foi despachada para outros nós mas ainda não foi retornada através dos mecanismos de consenso. Como um resultado, a instrução mais nova lê falsamente um valor antigo, e após esta instrução mais velha ser comprometida, a instrução mais nova pode prosseguir. Na dependência de escrita após escrita, duas instruções são despachadas em uma ordem correta, mas a instrução mais jovem/nova compromete e é escrita primeiramente, seguida pela instrução mais velha. Neste caso, irregularidades de dados vão ocorrer se ambas as instruções são escritas para a mesma localização de dados. Para lidar com as dependências de dados, instruções mais novas podem ser comandadas para esperar que as instruções mais velhas, com as quais eles conflitam, sejam comprometidas primeiramente, as quais incluem todas as seguintes instruções. Como ilustrado na FIG. 1, uma dependência de dados existe entre as instruções B 114 e F 124, ou, de maneira mais específica, a instrução F 124 lê a partir da localização de dados a qual a instrução B 114 escreve. Como um resultado, a instrução F 124 é forçada a esperar pela instrução B 114, e todas as seguintes instruções, de maneira a comprometer.
[00023] Em geral, quando dependências de dados existem, instruções são marcadas para esperar que todas as instruções anteriores sejam comprometidas antes de serem comprometidas. Se conflitos existem entre quais instruções de dados estão relacionadas com ou interagem com, tal como no exemplo entre D e F acima, então F não entra a fase de "envio pendente para o consenso" até D ter sido comprometido. Desta forma, potenciais problemas de consenso são evitados. Quando uma transação é submetida por um cliente para um nó de mesmo nível, o nó de mesmo nível permite que o módulo de ordem pendente escaneie por dependências de dados, e se nenhuma dependência de dados existe entre qualquer uma das transações que atualmente estão no estado de consenso pendente ou compromisso pendente, então a transação também é enviada de consenso e compromisso que pode ser comprometida fora de ordem. Se uma nova transação entra em conflito com qualquer uma das transações/instruções “em processamento” (os termos são usados de maneira intercambiável já que as transações incluem instruções discerníveis), esta transação então é adicionada para uma fila para esperar que todas as instruções “em processamento” para completar. Uma vez que todas as transações “em processamento” são comprometidas, as transações em fila são recuperadas para o compromisso e todo o processo vai recomeçar. Um exemplo de ordenação pode prover se A escreve para a localização 1234 e B lê a partir da localização 1234, A deve ser 'esperado por' de maneira a aceitar completamente o consenso e compromisso antes de começar em B, já que B vai ler a partir de 1234, e o consenso será baseado nos resultados do que é lido a partir de 1234. Esta consideração OoO é uma das muitas possibilidades que podem ocorrer quando existe mais do que uma transação pendente para o compromisso.
[00024] A FIG. 3 ilustra um diagrama de envio de mensagem de sistema 300 das interações entre a dispositivo de computação de ordenação de transação, um módulo de ordenação, e um blockchain de acordo com concretizações exemplares. Em referência à FIG. 3, o sistema 300 pode incluir um número de componentes ou módulos os quais podem incluir software, hardware ou uma combinação de ambos. Os componentes podem incluir um primeiro componente, tal como um servidor de transação 310, que pode ser uma máquina responsável por emitir transações, instruções ou outros sinais de comunicação. Um segundo componente, tal como um módulo de ordenação 320, pode ser um ou ambos dos módulos da FIG. 2 e pode ser parte do servidor de transação 310. O propósito do módulo de ordenação 320 é gerenciar as instruções para compromisso e gerenciamento de transação. Em operação, novas transações 312 podem ser identificadas e colocadas em fila para o processamento. As transações podem ser armazenadas junto com instruções para buscar consenso, ordenando as transações, identificando as dependências e comprometendo as transações com um terceiro componente tal como um blockchain 330. As transações são inicialmente armazenadas temporariamente com base em uma ordem que elas são recebidas 314. A ordenação e as instruções podem ditar vários procedimentos de ordenação. A próxima operação é identificar dependências de dados 316 entre as transações. As ações são identificadas a partir de cada uma das transações 318 e estas ações as quais são dependentes entre si são identificadas como tendo dependências. As instruções de ordenação ou reordenação 324 então são criadas e direcionadas 324 para o módulo de ordenação 320 então as transações podem ser comprometidas 326 e direcionadas 328 para o blockchain 330.
[00025] Em uma concretização, o primeiro componente, o segundo componente e o terceiro componente podem ser dispositivos separados tais como servidores, computadores ou outros dispositivos de computação ou podem ser um único dispositivo. Em outras concretizações, o primeiro componente e o segundo componente podem ser incluídos como, ou podem realizar como, um único dispositivo, o primeiro componente e o terceiro componente podem ser incluídos como, ou realizar como, um único dispositivo, e o segundo componente e o terceiro componente podem ser incluídos como, ou realizar como, um único dispositivo. Os componentes ou dispositivos 310, 320 e 330 podem ser conectados diretamente ou podem ser acoplados de maneira comunicável entre si, de uma maneira com fios ou sem fios, e podem residir localmente e/ou remotamente.
[00026] A FIG. 4A ilustra um diagrama de fluxo 400 de um exemplo pode incluir o gerenciamento de ordenação de transação no blockchain de acordo com concretizações exemplares.
Em referência à FIG. 4A, o exemplo pode incluir um ou mais de: identificar uma pluralidade de novas transações a serem comprometidas com um blockchain 412, determinando se qualquer uma da pluralidade de novas transações inclui uma dependência de dados com qualquer outra da pluralidade de novas transações 414, transmitir uma pluralidade de mensagens indicando para prosseguir com a validação da pluralidade de novas transações 416, responsivo à determinação de que não existem dependências de dados entre qualquer uma das novas transações.
A pluralidade de mensagens pode ser transmitida simultaneamente.
O método pode incluir armazenar temporariamente a pluralidade de novas transações de acordo com uma ordem cronológica em um módulo de ordenação incluindo memória para armazenar a pluralidade de novas transações, e comprometer uma ou mais das novas transações fora da ordem cronológica com uma ou mais outras da pluralidade de transações, responsivo à determinação de que não existem dependências de dados entre qualquer uma das novas transações.
O método também pode incluir identificar uma ou mais ações identificadas a partir da pluralidade de transações de blockchain, e criar uma ou mais instruções que correspondem com as uma ou mais ações.
O método pode prover adicionalmente o direcionamento das uma ou mais instruções para o módulo de ordenação, tal que as uma ou mais instruções incluem ler e escrever localizações de dados, e comprometer a pluralidade de transações com base nas uma ou mais instruções.
O método também pode incluir identificar uma ou mais dependências de dados dentre a pluralidade de transações, e marcar as uma ou mais instruções para esperar até um momento em que todas as instruções criadas anteriormente estejam associadas com as transações comprometidas. As dependências de dados incluem um ou mais de um mesmo produto identificado em duas ou mais transações e uma parte comum para uma subsequente transação.
[00027] A FIG. 4B ilustra outro diagrama de fluxo 450 de um exemplo que pode incluir o gerenciamento de ordenação de transação no blockchain de acordo com concretizações exemplares. O exemplo pode incluir um ou mais de: identificar uma pluralidade de novas transações a serem comprometidas com um blockchain 452, determinar se qualquer uma da pluralidade de novas transações compreende uma dependência de dados com qualquer outra da pluralidade de novas transações 454, responsivo à determinação de que pelo menos uma dependência de dados existe entre duas ou mais da pluralidade de transações, comprometendo uma transação marcada com tempo anterior das duas ou mais transações tendo a pelo menos uma dependência de dados 456, e rejeitando a transação marcada com tempo posterior das duas ou mais transações tendo a pelo menos uma dependência de dados 458.
[00028] Neste exemplo, as dependências de dados são identificadas e a ordem cronológica das transações também são identificadas. Como um resultado, quando duas ou mais transações possuem uma dependência de dados e não possuem uma marcação de tempo comum (isto é diferentes tempos de criação). A transação recebida ou em fila a mais tempo será permitida de ser comprometida e quaisquer outras transações que dividem a mesma dependência de dados será suspensa ou rejeitada evidencia pendente de recursos adicionais os quais se tornaram disponíveis para satisfazer os requisitos da transação.
[00029] As concretizações acima podem ser implementadas em hardware, em um programa de computador executado por um processador, em firmware, ou em uma combinação dos anteriores. Um programa de computador pode ser concretizado em um meio legível por computador, tal como um meio de armazenamento. Por exemplo, um programa de computador pode residir em memória de acesso aleatório ("RAM"), memória flash, memória somente de leitura ("ROM"), memória programável apagável somente de leitura ("EPROM"), memória programável apagável eletricamente somente de leitura ("EEPROM"), registradores, disco rígido, um disco removível, uma memória somente de leitura de disco compacto ("CD-ROM"), ou qualquer outra forma de meio de armazenamento conhecido no assunto.
[00030] Um meio de armazenamento exemplar pode ser acoplado com o processador tal que o processador pode ler informação a partir, e escrever informação para, o meio de armazenamento. Na alternativa, o meio de armazenamento pode ser integral para o processador. O processador e o meio de armazenamento podem residir em um circuito integrado de específico de aplicação("ASIC"). Na alternativa, o processador e o meio de armazenamento podem residir como componentes discretos. Por exemplo, a FIG. 5 ilustra um elemento exemplar de rede 500, que pode representar ou ser integrado em qualquer um dos componentes descritos acima, etc.
[00031] Como ilustrado na FIG. 5, uma memória 510 e um processador 520 podem ser componentes discretos da entidade de rede 500 que são usados para executar um aplicativo ou conjunto de operações como descrito e representado aqui. O aplicativo pode ser codificado em software em uma linguagem de computador entendida pelo processador 520, e armazenada em um meio legível por computador, tal como, uma memória 510. O meio legível por computador pode ser um meio legível por computador não transitório que inclui componentes de hardware tangíveis, tais como memória, que pode armazenar software. Adicionalmente, um módulo de software 530 pode ser outra entidade discreta que é parte da entidade de rede 500, e que contém instruções de software que podem ser executadas pelo processador 520 para efetuar uma ou mais das funções descritas aqui. Em adição aos componentes notados acima da entidade de rede 500, a entidade de rede 500 também pode ter um par de transmissor e receptor configurado para receber e transmitir sinais de comunicação (não mostrado).
[00032] Apenas de uma concretização exemplar de pelo menos um de um sistema, método, e meio legível por computador não transitório ter sido ilustrado nos desenhos anexos e descrito na descrição detalhada anterior, será entendido que o aplicativo não está limitado às concretizações descritas, mas é capaz de vários rearranjos, modificações, e substituições como definidos pelas seguintes reivindicações. Por exemplo, as capacidades do sistema das várias figuras podem ser realizadas por um ou mais dos módulos ou componentes descritos aqui ou em uma arquitetura distribuída e pode incluir um transmissor, um receptor ou um par de ambos. Por exemplo, toda ou parte do recurso realizada pelos módulos individuais, pode ser realizada através de um ou mais destes módulos. Adicionalmente, a recurso descrita aqui pode ser realizada em vários momentos e em relação aos vários eventos, internos ou externos aos módulos ou componentes. Ainda, a informação enviada entre vários módulos pode ser enviada entre os módulos através de pelo menos um de: uma rede de dados, a Internet, uma rede de voz, uma rede de Protocolo de Internet, um dispositivo sem fios, um dispositivo com fios e/ou através de pluralidade de protocolos. Ainda, as mensagens enviadas ou recebidas por qualquer um dos módulos podem ser enviadas ou recebidas diretamente e/ou através de um ou mais dos outros módulos.
[00033] Um técnico versado no assunto vai perceber que o "sistema" ou um ou mais componentes ou elementos do presente pedido podem ser incorporados como um computador pessoal, um servidor, um console, um assistente digital pessoal (PDA), um telefone celular, um dispositivo de computação do tipo tablet, um smartphone ou qualquer outro dispositivo de computação adequado, ou uma combinação de dispositivos. A apresentação das funções descritas acima como sendo realizadas por um “sistema” não está intencionada a limitar o escopo do presente pedido de qualquer modo, mas está intencionada a prover um exemplo de muitas concretizações. De fato, métodos, sistemas e aparelhos descritos aqui podem ser implementados de formas localizadas e distribuídas consistentes com a tecnologia da computação.
[00034] Deve ser notado que parte dos recursos do sistema descritas neste relatório foram apresentadas como módulos, de maneira a enfatizar mais particularmente a sua independência de implementação. Por exemplo, um módulo pode ser implementado como um circuito de hardware compreendendo arranjos de portal ou circuitos de integração de escala muito grande personalizada (VLSI), semicondutores prontos para o uso tais como chips lógicos, transistores, ou outros componentes discretos. Um módulo também pode ser implementado em dispositivos de hardware programáveis tais como arranjos de portal programável de campo, lógica de arranjo programável, dispositivos de lógica programável, unidades de processamento de gráficos, ou semelhantes.
[00035] Um módulo também pode ser implementado pelo menos parcialmente em software para a execução por vários tipos de processadores. Uma unidade identificada de código executável pode, por exemplo, compreender um ou mais blocos físicos ou lógicos de instruções de computador que podem, por exemplo, ser organizadas como um objeto, procedimento, ou função.
[00036] Não obstante, os executáveis de um módulo identificado não precisam estar localizados fisicamente juntos, mas podem compreender diferentes instruções armazenadas em diferentes localizações as quais, quando unidas de maneira lógica, compreendem o módulo e alcançam o propósito declarado para o módulo. Adicionalmente, os módulos podem ser armazenados em um meio legível por computador, que pode ser, por exemplo, um drive de disco rígido, dispositivo de flash, memória de acesso aleatório (RAM), fita, ou qualquer outro meio usado para armazenar dados.
[00037] De fato, um módulo de código executável pode ser uma única instrução, ou muitas instruções, e pode inclusive ser distribuído por vários diferentes segmentos de código, dentre diferentes programas, e por vários dispositivos de memória. Similarmente, dados operacionais podem ser identificados e ilustrados aqui dentro dos módulos, e podem ser incorporados em qualquer forma adequada e organizados dentro de qualquer tipo adequado de estrutura de dados. Os dados operacionais podem ser coletados como um único conjunto de dados. Ou podem ser distribuídos por diferentes localizações incluindo por diferentes dispositivos de armazenamento, e podem existir, pelo menos parcialmente, meramente como sinais eletrônicos em um sistema ou rede.
[00038] Será prontamente entendido que os componentes do aplicativo, como em geral descritos e ilustrados nas figuras aqui, podem ser arranjados e projetados em uma grande variedade de diferentes configurações. Assim, a descrição detalhada das concretizações não está intencionada a limitar o escopo do pedido como reivindicado, mas é meramente representativo das concretizações selecionadas do pedido.
[00039] Um técnico versado no assunto vai entender prontamente que o dito acima pode ser praticado com as etapas em uma ordem diferente, com etapas que são combinadas, com etapas que são omitidas, e/ou com elementos de hardware nas configurações que são diferentes do que aquelas as quais são descritas. Portanto, apesar de o aplicativo ter sido descrito com base nestas concretizações preferidas, pode ser aparente para os peritos na técnica que certas modificações, variações, e construções alternativas podem ser aparentes.
[00040] Enquanto concretizações preferidas do presente pedido foram descritas, deve ser entendido que as concretizações descritas aqui são apenas ilustrativas e o escopo do pedido, em uma concretização, deve ser definido pelas reivindicações anexas quando consideradas com uma gama completa de equivalentes e modificações (por exemplo, protocolos, dispositivos de hardware, plataformas de software etc.) do mesmo.

Claims (9)

REIVINDICAÇÕES
1. Método caracterizado pelo fato de que compreende: identificar uma pluralidade de novas transações sejam comprometidas com um blockchain; determinar se qualquer um da pluralidade de novas transações compreende uma dependência de dados com uma outra da pluralidade de novas transações; e transmitir uma pluralidade de mensagens fornecendo validação da pluralidade das novas operações, em resposta à determinação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a pluralidade de mensagens é transmitida simultaneamente.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: gerar um armazenamento temporário da pluralidade de novas transações de acordo com uma ordem cronológica de um módulo de ordens compreendendo memória para armazenar uma pluralidade de novas transações; e cometer uma ou mais das novas operações para fora da ordem cronológica, com um ou mais da pluralidade de novas operações, em resposta à determinação.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que compreende ainda: identificar uma ou mais ações identificadas a partir da pluralidade de novas operações comprometidas com a blockchain; e criar uma ou mais instruções correspondentes ao um ou mais ações.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende ainda: encaminhar a uma ou mais instruções para o módulo de ordenação, em que uma ou mais instruções compreendem ler e gravar localização de dados; e comprometer a pluralidade de novas operações com base em uma ou mais instruções.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que compreende ainda: identificar uma ou mais dependências de dados entre a pluralidade de novas transações; e marcar uma ou mais instruções para esperar até um momento em que todas as instruções previamente criadas são associadas com operações compromissadas.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que a uma ou mais dependências de dados compreendem um ou mais do mesmo produto identificado em duas ou mais operações e uma parte comum para uma operação subsequente.
8. Aparelho caracterizado pelo fato de que compreende meios adaptados para realizar todas as etapas do método de acordo com qualquer reivindicação anterior relativa a método.
9. Programa de computador caracterizado pelo fato de que compreende instruções para realizar todas as etapas do método de acordo com qualquer reivindicação anterior referente a método, quando o referido programa de computador é executado em um sistema de computador.
BR112019027873-7A 2017-06-26 2018-06-18 Método, meio de armazenamento não-transitório legível por computador e aparelho de ordenação de compromisso de transação blockchain. BR112019027873B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/633,357 2017-06-26
US15/633,357 US10679210B2 (en) 2017-06-26 2017-06-26 Blockchain transaction commitment ordering
PCT/EP2018/066146 WO2019002004A1 (en) 2017-06-26 2018-06-18 ORDERING TRANSACTION COMMITMENT BY BLOCK CHAIN

Publications (2)

Publication Number Publication Date
BR112019027873A2 true BR112019027873A2 (pt) 2020-07-07
BR112019027873B1 BR112019027873B1 (pt) 2021-12-21

Family

ID=62636221

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019027873-7A BR112019027873B1 (pt) 2017-06-26 2018-06-18 Método, meio de armazenamento não-transitório legível por computador e aparelho de ordenação de compromisso de transação blockchain.

Country Status (4)

Country Link
US (1) US10679210B2 (pt)
CN (1) CN110741342B (pt)
BR (1) BR112019027873B1 (pt)
WO (1) WO2019002004A1 (pt)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102130062B1 (ko) * 2018-09-18 2020-07-03 엔에이치엔 주식회사 블록체인 네트워크의 노드들 간의 합의를 이루는 방법 및 블록체인 시스템
US20200142693A1 (en) * 2018-11-07 2020-05-07 International Business Machines Corporation Transparent code processing
RU2731417C1 (ru) * 2018-12-28 2020-09-02 Алибаба Груп Холдинг Лимитед Параллельное выполнение транзакций в сети цепочек блоков на основе белых списков смарт-контрактов
RU2738826C1 (ru) 2018-12-28 2020-12-17 Алибаба Груп Холдинг Лимитед Параллельное выполнение транзакций в сети блокчейнов
CN110321219A (zh) * 2019-05-06 2019-10-11 百度在线网络技术(北京)有限公司 一种事务请求的并行执行方法、装置、设备和介质
US11586614B2 (en) 2019-07-30 2023-02-21 Oracle International Corporation Native persistent store support for blockchains
CN113435885A (zh) * 2019-08-30 2021-09-24 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
US11640391B2 (en) 2019-09-11 2023-05-02 Oracle International Corporation Supporting blockchain collections in a database
CN110597466B (zh) * 2019-09-16 2021-10-26 腾讯科技(深圳)有限公司 区块链节点的控制方法、装置、存储介质和计算机设备
CN111506783B (zh) * 2020-04-08 2023-12-22 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CN111640020B (zh) * 2020-05-22 2023-09-19 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
WO2022010289A1 (ko) * 2020-07-10 2022-01-13 주식회사 미디움 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법
US11875178B2 (en) * 2020-07-30 2024-01-16 Oracle International Corporation Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems
CN112256476B (zh) * 2020-09-27 2024-04-16 陕西医链区块链集团有限公司 基于区块链的数据操作方法、装置、设备及介质
CN112287400A (zh) * 2020-09-29 2021-01-29 卓尔智联(武汉)研究院有限公司 超级账本中的交易排序方法、装置和计算机设备
US11356506B2 (en) 2020-10-01 2022-06-07 Bank Of America Corporation System for optimizing data acceptance and data storage in a distributed computing network
US11743327B2 (en) * 2021-02-05 2023-08-29 International Business Machines Corporation Topological ordering of blockchain associated proposals
US11494347B1 (en) 2021-05-05 2022-11-08 Oracle International Corporation Efficient update-anywhere replication of queue operations on a replicated message queue
RU210695U1 (ru) * 2022-02-18 2022-04-27 Общество с ограниченной ответственностью "Сектор Энерго" Траверса сборная изоляционная
US20230342151A1 (en) * 2022-04-26 2023-10-26 Xilinx, Inc. Blockchain machine compute acceleration engine with out-of-order support
CN114979148B (zh) * 2022-06-16 2023-07-14 中国联合网络通信集团有限公司 数据传输方法、装置及计算机可读存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US5655096A (en) * 1990-10-12 1997-08-05 Branigin; Michael H. Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution
FR2751106B1 (fr) * 1996-07-11 1999-01-08 Alsthom Cge Alcatel Methode de planification de transactions distribuees
US6061449A (en) 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
US6988183B1 (en) 1998-06-26 2006-01-17 Derek Chi-Lan Wong Methods for increasing instruction-level parallelism in microprocessors and digital system
US9875510B1 (en) * 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
US10484168B2 (en) * 2015-03-02 2019-11-19 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
CA2986164C (en) 2015-05-26 2021-11-30 T0.Com, Inc. Obfuscation of intent in transactions using cryptographic techniques
EP3329440A1 (en) * 2015-07-31 2018-06-06 British Telecommunications public limited company Controlled resource provisioning in distributed computing environments
EP3335367A4 (en) * 2015-08-11 2019-02-06 Stollman, Jeff SYSTEM AND METHODS FOR ENSURING THE INTEGRITY OF GOODS AND A SUPPLY CHAIN
US10937023B2 (en) * 2015-10-15 2021-03-02 Paypal, Inc. Crypto currency chargeback system
US10230756B2 (en) * 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
WO2017098519A1 (en) * 2015-12-08 2017-06-15 Tallysticks Limited A system and method for automated financial transaction validation, processing and settlement using blockchain smart contracts
US11625785B2 (en) * 2017-06-05 2023-04-11 Chicago Mercantile Exchange Inc. Secure electronic tokens in an electronic tokening system

Also Published As

Publication number Publication date
BR112019027873B1 (pt) 2021-12-21
CN110741342A (zh) 2020-01-31
US20180374086A1 (en) 2018-12-27
WO2019002004A1 (en) 2019-01-03
US10679210B2 (en) 2020-06-09
CN110741342B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
BR112019027873A2 (pt) ordenamento de compromisso de transação blockchain
US10972282B2 (en) Distributed logging of application events in a blockchain
US10606738B2 (en) Application testing on a blockchain
CN110597925B (zh) 一种基于区块链的跨链数据处理方法及装置
CN107577427B (zh) 用于区块链系统的数据迁移方法、设备和存储介质
CN111344706B (zh) 管理区块链上的交易的方法和系统
US11769150B2 (en) Transaction scheduling for block space on a blockchain
CN109964215B (zh) 具有环形缓冲区镜像的远程直接存储器访问数据通信中的流控制
US9600393B2 (en) Testing of application service versions on live data
CN112055023A (zh) 基于预言机的访问请求处理方法、装置、设备和介质
US20200026427A1 (en) System and method for handling data storage on storage devices
WO2019237615A1 (zh) 区块链应用系统
CN109657167B (zh) 数据采集方法、装置、服务器及存储介质
CN112583805A (zh) 基于区块链的数据处理方法、装置、电子设备及存储介质
CN103488606A (zh) 基于节点控制器的请求响应方法和装置
CN114666103B (zh) 可信度量装置、设备、系统及可信身份认证方法
TWM638100U (zh) 區塊鏈合約交易的驗證系統
KR20190126992A (ko) 블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법
US20230101077A1 (en) Verification device, verification system, verification method, and computer readable medium
US8392621B2 (en) Managing dataflow in a temporary memory
TWI817863B (zh) 區塊鏈合約交易的驗證系統及其方法
US10083217B2 (en) Method and system for upgrading a set of replicated state machine processes
US11947942B2 (en) Application artifact registration
US9489336B2 (en) Method and system for record access in a distributed system
JP2021174326A (ja) システム、通信デバイス、プログラム、及び通信方法

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
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 18/06/2018, OBSERVADAS AS CONDICOES LEGAIS.