BR112019017863A2 - Método e aparelho para gravar dados de serviço em cadeia de blocos e método para determinar subconjunto de serviços - Google Patents

Método e aparelho para gravar dados de serviço em cadeia de blocos e método para determinar subconjunto de serviços Download PDF

Info

Publication number
BR112019017863A2
BR112019017863A2 BR112019017863-5A BR112019017863A BR112019017863A2 BR 112019017863 A2 BR112019017863 A2 BR 112019017863A2 BR 112019017863 A BR112019017863 A BR 112019017863A BR 112019017863 A2 BR112019017863 A2 BR 112019017863A2
Authority
BR
Brazil
Prior art keywords
transaction
data
transaction data
subset
transactions
Prior art date
Application number
BR112019017863-5A
Other languages
English (en)
Inventor
Qiu Honglin
Original Assignee
Alibaba Group Holding Limited
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 Alibaba Group Holding Limited filed Critical Alibaba Group Holding Limited
Publication of BR112019017863A2 publication Critical patent/BR112019017863A2/pt

Links

Classifications

    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]

Abstract

o presente pedido revela um método para gravar dados de transação em uma cadeia de blocos que compreende: obter uma pluralidade de partes de dados de transação a ser gravada em um cadeia de blocos; determinar subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes; e executar os subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos. o presente pedido revela adicionalmente um aparelho para gravar dados de transação em uma cadeia de blocos e um método para determinar um subconjunto de transações. o presente pedido pode alcançar a execução em paralelo de dados de transação sem uma relação de dependência de transação, reduzindo, por meio disso, o custo exigido para aprimorar a eficiência de execução de processamento de dados e aprimorar a expansibilidade.

Description

“MÉTODO E APARELHO PARA GRAVAR DADOS DE SERVIÇO EM CADEIA DE BLOCOS E MÉTODO PARA DETERMINAR SUBCONJUNTO DE SERVIÇOS”
CAMPO DA TÉCNICA
[001] O presente pedido se refere ao campo de tecnologias da informação e, em particular, a um método e a um aparelho para gravar dados de transação em uma cadeia de blocos e a um método para determinar um subconjunto de transações de dados de transação de cadeia de blocos.
ANTECEDENTES
[002] Com o desenvolvimento de tecnologias da informação, tecnologias de cadeia de blocos (chamadas também de rede de conta corrente distribuída) têm sido usadas extensivamente em inúmeros campos, como contratos inteligentes, transações de títulos, comércio eletrônico, Internet das Coisas, comunicações sociais, armazenamento de arquivo, prova de existência, verificação de identidade e coleta de recursos de capital, devidos a vantagens, como descentralização, abertura e transparência, imutabilidade e credibilidade.
[003] Em um exemplo, as tecnologias de cadeia de blocos são um tipo de tecnologias de base de dados descentralizados e distribuídos. Cada parte de dados em uma cadeia de blocos será difundida para todos os nós de cadeia de blocos de toda a rede e cada nó mantém a quantidade completa de dados que é consistente entre si. As tecnologias de cadeia de blocos exigem que todos os nós mantenham o mesmo estado, incluindo o estado de base de dados e similares. Para garantir a consistência no estado de base de dados, exige-se que transações de cadeia de blocos sejam uma sequência ordenada que é consistente para todos os nós, e todos os nós executam transações em tal sequência para concluir a verificação de transação, implementação, inclusão de dados na cadeia, etc. Adotando o aplicativo de cadeia de blocos de Ethereum como um exemplo, um carimbo de data e hora é
Petição 870190083900, de 27/08/2019, pág. 8/67
2/35 criado quando cada transação é recebida, as transações são gravadas em um conjunto de transações, e as transações são classificadas de acordo com os carimbos de data e hora; durante a mineração, as transações são executadas de acordo com a sequência de carimbos de data e hora de transação e as informações de conta após a execução de cada transação são atualizadas em uma base de dados, alcançando, por meio disso, a atualização do estado de conta de base de dados.
[004] Nas tecnologias atuais, para garantir consistência no estado de base de dados, os dados precisam ser processados de acordo com uma série de carimbos de data e hora de recepção de transação (que podem ser construídos à medida que os dados de transação são gravados em uma cadeia de blocos). Portanto, limita-se que apenas uma única máquina possa realizar a execução, causando o desempenho e a eficiência de gravação de uma base de dados a serem limitados pelo desempenho da uma única máquina. Para aprimorar o desempenho e a eficiência de gravação, as propriedades físicas, como CPU, de uma única máquina devem ser aprimoradas, como aumentar o número central de CPU, o que não leva a um custo alto, mas limita também a expansibilidade.
SUMÁRIO
[005] As modalidades do presente pedido fornecem um método e um aparelho para gravar dados de transação em uma cadeia de blocos, que são destinados a reduzir o custo exigido para aprimorar a eficiência de execução de processamento de dados e aprimorar a expansibilidade.
[006] As modalidades do presente pedido fornecem adicionalmente um método para determinar um subconjunto de transações de dados de transação de cadeia de blocos, que é destinado a dividir razoavelmente os dados de transação, reduzindo, por meio disso, o custo exigido para aprimorar a eficiência de execução de processamento de dados e aprimorar a expansibilidade.
Petição 870190083900, de 27/08/2019, pág. 9/67
3/35
[007] As modalidades do presente pedido empregam as soluções técnicas a seguir:
[008]De acordo com um primeiro aspecto, o método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido compreende:
[009] obter uma pluralidade de partes de dados de transação a serem executadas;
[010] determinar subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes; e
[011] executar subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos.
[012] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação compreende:
[013] determinar os subconjuntos de transações aos quais os dados de transação pertencem de acordo com os atributos de dados dos dados de transação, em que um atributo de dados tem uma relação correspondente a um tipo de transação e/ou faixa de alteração de dados dos dados de transação, e o atributo de dados é usado para refletir um relação de dependência de transação dos dados de transação.
[014] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, a execução dos
Petição 870190083900, de 27/08/2019, pág. 10/67
4/35 subconjuntos de transações em paralelo compreende:
[015] executar os subconjuntos de transações em paralelo com o uso de linha de execução múltipla ou um agrupamento de máquinas.
[016] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, há uma relação correspondente entre os dados de transação e os carimbos de data e hora, e a execução dos subconjuntos de transações compreende:
[017] executar dados de transação compreendidos nos subconjuntos de transações em série de acordo com uma ordem temporal correspondente aos carimbos de data e hora.
[018] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação dos dados de transação compreende:
[019] de acordo com os tipos de transação dos dados de transação, inserir dados de transação de um mesmo tipo de transação no mesmo subconjunto de transações, e dividir dados de transação de tipos diferentes de transação em subconjuntos de transações diferentes.
[020] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com as faixas de alteração de dados dos dados de transação compreende:
[021] de acordo com as faixas de alteração de dados dos dados de transação, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem em um mesmo subconjunto de transações, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de transações diferentes.
Petição 870190083900, de 27/08/2019, pág. 11/67
5/35
[022] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, de acordo com as faixas de alteração de dados dos dados de transação, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem em um mesmo conjunto de transações, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de transações diferentes compreende:
[023] percorrer as faixas de alteração de dados dos dados de transação;
[024] se a faixa de alteração de dados de primeira parte de dados de transação sobrepor a faixa de alteração de dados de um primeiro subconjunto de transações, adicionar a primeira parte de dados de transação ao primeiro subconjunto de transações; e
[025] se a faixa de alteração de dados da primeira parte de dados de transação não sobrepor a faixa de alteração de dados do primeiro subconjunto de transações, criar um segundo subconjunto de transações que compreende a primeira parte de dados de transação;
[026]em que a primeira parte de dados de transação é qualquer uma das partes de dados de transação, o primeiro subconjunto de transações é qualquer um dos subconjuntos de transações e o segundo subconjunto de transações é diferente do primeiro subconjunto de transações.
[027] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, a faixa de alteração de dados do subconjunto de transações é determinada para ser uma união de faixas de alteração de dados de dados de transação compreendida no subconjunto de transações.
[028] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, há uma relação correspondente entre os dados de transação e os carimbos de data e hora, e as
Petição 870190083900, de 27/08/2019, pág. 12/67
6/35 faixas de alteração de dados de deslocamento dos dados de transação compreende:
[029] percorrer uma ordem temporal correspondente aos carimbos de data e hora de acordo com os carimbos de data e hora dos dados de transação.
[030] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e faixas de alteração de dados dos dados de transação compreende:
[031] determinar um subconjunto de nível I aos qual os dados de transação pertencem de acordo com os tipos de transação dos dados de transação; e
[032] determinar um subconjunto de nível II ao qual os dados de transação no subconjunto de nível I pertencem de acordo com as faixas de alteração de dados dos dados de transação, e usar o subconjunto de nível II como um dos subconjuntos de transações, em que o subconjunto de nível II é um subconjunto do subconjunto de nível I.
[033] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, a determinação de um subconjunto de nível I ao qual os dados de transação pertencem de acordo com os tipos de transação dos dados de transação compreendem:
[034] de acordo com os tipos de transação dos dados de transação, inserir dados de transação de um mesmo tipo de transação em um mesmo subconjunto de nível I, e dividir dados de transação de tipos diferentes de transação em subconjuntos de nível I diferentes.
[035] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, a determinação de um subconjunto de nível II ao qual os dados de transação no subconjunto de nível I pertencem de acordo com as faixas de alteração de dados dos dados de
Petição 870190083900, de 27/08/2019, pág. 13/67
7/35 transação compreende:
[036] de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem em um mesmo subconjunto de nível II, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de nível II diferentes.
[037] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem no mesmo subconjunto de nível II, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de nível II diferentes compreende:
[038] percorrer faixas de alteração de dados de dados de transação em um primeiro subconjunto de nível I;
[039] se a faixa de alteração de dados de uma segunda parte de dados de transação sobrepor a faixa de alteração de dados de um primeiro subconjunto de nível II, adicionar a segunda parte de dados de transação ao primeiro subconjunto de nível II; e
[040]se a faixa de alteração de dados da segunda parte de dados de transação não sobrepor a faixa de alteração de dados do primeiro subconjunto de nível II, criar um segundo subconjunto de nível II que compreende os segundos dados de transação;
[041] em que o primeiro subconjunto de nível I é qualquer subconjunto de nível I nos subconjuntos de nível I, a segunda parte de dados de transação é qualquer parte dos dados de transação no primeiro subconjunto de nível I, o primeiro subconjunto de nível II é qualquer subconjunto de nível II no primeiro subconjunto de
Petição 870190083900, de 27/08/2019, pág. 14/67
8/35 nível I e o segundo subconjunto de nível II é diferente do primeiro subconjunto de nível II.
[042] De preferência, no método para gravar dados de transação em uma cadeia de blocos fornecido pelas modalidades do presente pedido, uma pluralidade de partes de dados de transação a ser executada é obtida para formar um conjunto de transações a ser executado compreendendo os dados de transação, e o conjunto de transações é determinado uma quantidade de processamento de dados predefinida e/ou tempo de dados de transação predefinido.
[043] De acordo com um segundo aspecto, as modalidades do presente pedido fornecem adicionalmente um outro método para gravar dados de transação em uma cadeia de blocos que compreende:
[044]obter uma pluralidade de partes de dados de transação a ser gravada em uma cadeia de blocos;
[045] determinar os primeiros dados de transação sem uma relação de dependência de transação de acordo com as faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os primeiros dados de transação; e
[046] executar os primeiros dados de transação em paralelo, e gravar um resultado de execução na cadeia de blocos.
[047] De preferência, no método para gravar dados de transação em uma cadeia de blocos descrito acima, a determinação dos primeiros dados de transação sem uma relação de dependência de transação de acordo com as faixas de alteração de dados dos dados de transação compreende:
[048] de acordo com as faixas de alteração de dados dos dados de transação, determinar dados de transação com uma faixa de alteração de dados que não se sobrepõem uma outra faixa de alteração de dados de qualquer outra parte de dados de transação como os primeiros dados de transação não têm relação de
Petição 870190083900, de 27/08/2019, pág. 15/67
9/35 dependência de transação.
[049] De acordo com um terceiro aspecto, as modalidades do presente pedido adicionalmente fornecem um aparelho para gravar dados de transação em uma cadeia de blocos que compreende:
[050] um módulo de obtenção configurado para obter uma pluralidade de partes de dados de transação a ser gravada em uma cadeia de blocos;
[051] um módulo de determinação de subconjunto de transações configurado para determinar um subconjunto de transações ao qual os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes; e
[052] um módulo de execução de dados configurado para executar os subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos.
[053] De acordo com um quarto aspecto, as modalidades do presente pedido fornecem adicionalmente um método para determinar um subconjunto de transações de dados de transação de cadeia de blocos, compreendendo, após uma pluralidade de partes de dados de transação a ser gravada em uma cadeia de blocos ser obtida, determinar subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação para executar os subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes.
[054] De preferência, no método para determinar um subconjunto de transações fornecido pelas modalidades do presente pedido, a determinação de
Petição 870190083900, de 27/08/2019, pág. 16/67
10/35 subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação compreende:
[055] determinar os subconjuntos de transações aos quais os dados de transação pertencem de acordo com os atributos de dados dos dados de transação, em que um atributo de dados tem uma relação correspondente ao tipo de transação e/ou faixa de alteração de dados dos dados de transação, e o atributo de dados é usado para refletir uma relação de dependência de transação dos dados de transação.
[056] De preferência, no método para determinar um subconjunto de transações fornecido pelas modalidades do presente pedido, a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação dos dados de transação compreende:
[057] de acordo com os tipos de transação dos dados de transação, inserir dados de transação de um mesmo tipo de transação em um mesmo conjunto de transações, e dividir dados de transação de tipos diferentes de transação em subconjuntos de transações diferentes; ou
[058] a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com as faixas de alteração de dados dos dados de transação compreende:
[059] de acordo com as faixas de alteração de dados dos dados de transação, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem em um mesmo conjunto de transações, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de transações diferentes.
[060] De preferência, no método para determinar um subconjunto de transações fornecidos pelas modalidades do presente pedido, a determinação de
Petição 870190083900, de 27/08/2019, pág. 17/67
11/35 subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e faixas de alteração de dados dos dados de transação compreende:
[061] determinar um subconjunto de nível I ao qual os dados de transação pertencem de acordo com os tipos de transação dos dados de transação; e
[062] determinar um subconjunto de nível II ao qual os dados de transação no subconjunto de nível I pertencem de acordo com as faixas de alteração de dados dos dados de transação, e usar o subconjunto de nível II como um dos subconjuntos de transações, em que o subconjunto de nível II é um subconjunto do subconjunto de nível I.
[063] A pelo menos solução técnica descrita acima empregada pelas modalidades do presente pedido pode alcançar os efeitos vantajosos a seguir:
[064] Nas modalidades do presente pedido, após os dados de transação a serem gravados em uma cadeia de blocos serem obtidos, se há uma relação de dependência de transação entre os dados de transação pode ser determinado de acordo com os tipos de transação ou a faixa de alteração de dados dos dados de transação e, então, os dados de transação podem ser divididos em subconjuntos de transações diferentes de acordo com a situação de dependência de transação entre os dados de transação. Uma vez que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes, os subconjuntos de transações diferentes podem ser executados em paralelo sem afetar a consistência no estado de base de dados. De acordo com as soluções fornecidas pelas modalidades do presente pedido, executar dados de transação sem uma relação de dependência de transação em paralelo não apenas garante a consistência no estado de base de dados, mas aprimora também a eficiência de execução de processamento de dados sem depender de aprimoramentos do desempenho de máquinas individuais. Portanto, os requisitos de desempenho para
Petição 870190083900, de 27/08/2019, pág. 18/67
12/35 máquinas individuais podem ser diminuídos, o que favorece uma economia de custo e leva a uma melhor expansibilidade.
BREVE DESCRIÇÃO DOS DESENHOS
[065] Os desenhos anexos a serem descritos no documento são usados para fornecer um melhor entendimento do presente pedido e constituem partes do presente pedido. As modalidades exemplificativas do presente pedido e a descrição das modalidades exemplificativas são usadas para descrever o presente pedido e não constituem limitações impróprias ao presente pedido. Nos desenhos anexos:
[066] A Figura 1 é um fluxograma de um método para gravar dados de transação em uma cadeia de blocos de acordo com algumas modalidades do presente pedido;
[067] A Figura 2 é um fluxograma de um segundo método para gravar dados de transação em uma cadeia de blocos de acordo com algumas modalidades do presente pedido;
[068] A Figura 3 é um fluxograma de um terceiro método para gravar dados de transação em uma cadeia de blocos de acordo com algumas modalidades do presente pedido;
[069] A Figura 4 é um diagrama esquemático de um cenário de aplicação exemplificative do método para gravar dados de transação em uma cadeia de blocos de acordo com algumas modalidades do presente pedido;
[070] A Figura 5 é um diagrama estrutural esquemático de um aparelho para gravar dados de transação em uma cadeia de blocos de acordo com algumas modalidades do presente pedido.
DESCRIÇÃO DETALHADA
[071] Para tornar mais claros os objetivos, as soluções técnicas e as vantagens do presente pedido, as soluções técnicas do presente pedido serão descritas clara e completamente abaixo com referência às modalidades e aos
Petição 870190083900, de 27/08/2019, pág. 19/67
13/35 desenhos anexos do presente pedido. É óbvio que as modalidades descritas são meramente algumas, mas não todas as modalidades do presente pedido. Com base nas modalidades do presente pedido, todas as outras modalidades obteníveis por um elemento de habilidade comum na técnica sem esforço criativo devem estar dentro do escopo do presente pedido.
[072] As soluções técnicas fornecidas nas modalidades do presente pedido serão descritas em detalhe abaixo com referência aos desenhos anexos.
MODALIDADE 1
[073] A Figura 1 ilustra um método para gravar dados de transação em uma cadeia de blocos de acordo com algumas modalidades do presente pedido que compreende:
[074] S101: obter uma pluralidade de partes de dados de transação a ser gravada em uma cadeia de blocos;
[075] S102: determinar subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes; e
[076] S103: executar os subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos.
[077] Na modalidade descrita acima, após a etapa S101 ser executada para obter dados de transação a serem gravados em uma cadeia de blocos, se há uma relação de dependência de transação entre os dados de transação pode ser determinado de acordo com os tipos de transação ou faixa de alteração de dados dos dados de transação e, então, os dados de transação podem ser divididos em subconjuntos de transações diferentes de acordo com a situação de dependência de transação entre os dados de transação. Uma vez que não há relação de
Petição 870190083900, de 27/08/2019, pág. 20/67
14/35 dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes, os subconjuntos de transações diferentes podem ser executados em paralelo sem afetar a consistência no estado de base de dados. De acordo com as soluções fornecidas pelas modalidades do presente pedido, a maneira na qual os dados de transação em um subconjunto de transações são executados em paralelo pode aprimorar a eficiência de execução de processamento de dados sem depender de aprimoramentos do desempenho de máquinas individuais. Portanto, os requisitos de desempenho para máquinas individuais podem ser diminuídos, o que favorece uma economia de custo e leva a uma melhor expansibilidade.
[078] Após uma pluralidade de partes de dados de transação ser obtida após a etapa S101 ser executada na presente modalidade, um conjunto de transações a ser executado compreendendo os dados de transação a serem executados pode ser formado, e o conjunto de transações pode ser determinado por uma quantidade de processamento de dados predefinida e/ou tempo de dados de transação predefinido. Em um exemplo, dados de transação a serem executados no mesmo lote podem ser determinados pela pré-definição de uma quantidade de processamento de dados, e um valor exemplificative da quantidade de processamento de dados predefinida pode ser determinado de acordo com uma quantidade de dados permitida a ser gravada em uma cadeia de blocos. Por exemplo, uma quantidade de dados de transação permitida a ser gravada em uma cadeia de blocos é 1.000 e, então, a quantidade de processamento de dados predefinida pode ser definida para ser menos que 1.000, por exemplo, 800, com a finalidade de atender ao requisito. Em uma implementação exemplificativa, toda vez que um servidor recebe 800 partes de dados de transação, o servidor pode formar um conjunto de transações a ser executado para processamento posterior. Quando o conjunto de transações a ser executado é determinado, dados de transação a serem executados no mesmo lote
Petição 870190083900, de 27/08/2019, pág. 21/67
15/35 podem ser determinados pela pré-definição de dados de transação time. Por exemplo, o tempo de dados de transação predefinido é definido para ser 1 s e, então, os dados de transação a serem executados no mesmo lote são dados de transação gerados em paralelo dentro de 1 s.
[079] Quando a etapa S103 é executada, uma vez que os dados de transação foram divididos em uma pluralidade de subconjuntos de transações sem uma relação de dependência de transação, os subconjuntos de transações podem ser executados em paralelo com o uso de linha de execução múltipla ou um agrupamento de máquinas, que não apenas atende o requisito para consistência no estado de base de dados, mas alcança também o objetivo de aprimoramento dos eficiência de execução de dados. Dessa maneira, a eficiência de execução de dados pode ser aprimorada sem depender de aprimoramentos do desempenho de máquinas individuais. Portanto, os requisitos de desempenho para máquinas individuais podem ser diminuídos, o que favorece uma economia de custo e leva a uma melhor expansibilidade pelo uso da maneira de agrupamento de máquinas.
[080] Em um outro exemplo, quando os subconjuntos de transações que compreendem os dados de transação são executados, não há relação de dependência de transação entre os dados de transação divididos em subconjuntos de transações diferentes, enquanto há uma relação de dependência de transação entre os dados de transação inseridos no mesmo conjunto de transações. Portanto, subconjuntos de transações diferentes podem ser executados em paralelo para aprimorar a eficiência de execução de dados, enquanto dados de transação no mesmo conjunto de transações podem ser executados em série para garantir a consistência no estado de base de dados. Em um exemplo, há uma relação correspondente entre os dados de transação e os carimbos de data e hora e, então, quando um subconjunto de transações é executado, os dados de transação compreendidos no subconjunto de transações são executados em série de acordo
Petição 870190083900, de 27/08/2019, pág. 22/67
16/35 com uma ordem temporal correspondente aos carimbos de data e hora. Adicionalmente, a execução de cada parte de dados de transação é realizada em uma ordem de verificação de transação, implementação de transação e inclusão de dados na cadeia para gravar finalmente um resultado de execução na cadeia de blocos.
[081] Quando a etapa S102 é executada, os subconjuntos de transações podem ser determinados em uma variedade de maneiras diferentes, desde que os dados de transação com uma relação de dependência de transação sejam separados dos dados de transação sem uma relação de dependência de transação. Em um exemplo, um subconjunto de transações ao qual os dados de transação pertencem pode ser determinado de acordo com um atributo de dados dos dados de transação, em que o atributo de dados tem uma relação correspondente a um tipo de transação e/ou faixa de alteração de dados dos dados de transação, e o atributo de dados é usado para refletir uma relação de dependência de transação dos dados de transação. Então, os dados de transação com uma relação de dependência de transação podem ser inseridos no mesmo conjunto de transações, e os dados de transação sem uma relação de dependência de transação podem ser divididos em subconjuntos de transações diferentes de acordo com o atributos de dados extraído dos dados de transação, alcançando, por meio disso, a execução em paralelo de subconjuntos de transações diferentes. Em um exemplo adicional, um atributo de dados pode ser incorporado sob forma de um campo de identificador compreendido nos dados de transação ou pode ser incorporado sob forma de informações características carregadas pelos dados de transação. Se um campo de identificador designado for compreendido pode ser determinado, ou informações características dos dados de transação podem ser extraídas e, então, se as informações características atenderem a uma presente condição podem ser determinadas, determinando, por meio disso, uma relação de dependência de transação dos dados
Petição 870190083900, de 27/08/2019, pág. 23/67
17/35 de transação de acordo com o atributo de dados.
[082] A relação de dependência de transação entre os dados de transações apresentada nas modalidades do presente pedido pode ser incorporada por associação de transação que está presente quando dados de transação diferentes são executados, por exemplo, a associação em aspectos, como ordem temporal, objeto de transação ou resultado de execução. Por exemplo, se uma execução de dados de transação com um tempo de execução posterior é dependente do resultado de execução de dados de transação com um tempo de execução anterior, ou se execuções de dados de transação diferentes impactarem o mesmo estado de dados, então, considera-se que essas duas partes de dados de transação têm uma relação de dependência de transação. Por outro lado, pode ser considerado que essas duas partes de dados de transação não têm uma relação de dependência de transação.
[083] Um processo de determinação de um subconjunto de transações será descrito em detalhe ao longo dos exemplos.
[084] (I) Determinação de um subconjunto de transações de acordo com os tipos de transação dos dados de transação
[085] Nas modalidades do presente pedido, um subconjunto de transações pode ser determinado de acordo com os tipos de transação dos dados de transação. Em um exemplo, dados de transação do mesmo tipo de transação são inseridos no mesmo conjunto de transações e dados de transação de tipos diferentes de transação são divididos em subconjuntos de transações diferentes. Uma vez que não há relação de dependência de transação entre os dados de transação de tipos diferentes de transação, o resultado de execução de dados não será afetado independentemente de uma ordem na qual os dados de transação de tipos diferentes de transação são executados. A determinação de se os dados de transação pertencem ao mesmo conjunto de transações de acordo com os tipos de
Petição 870190083900, de 27/08/2019, pág. 24/67
18/35 transação dos dados de transação pode garantir que não haja relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes, atendendo, por meio disso, a necessidade por processamento em paralelo de dados de transação em subconjuntos de transações diferentes e favorecendo o aprimoramento da eficiência de execução de processamento de dados.
[086] Por exemplo, após uma transação do tipo contrato (que pode ser chamada também de uma transação) ser executada, apenas os dados contratuais correspondentes são alterados, enquanto após uma transação do tipo transferência (que pode ser chamada também de uma transação) ser executada, os dados de saldo de conta de ambas as partes da transferência são alterados. Pode ser visto que a ordem na qual esses dois tipos de transações são executados não têm um impacto sobre o resultado de execução. Portanto, a divisão de dois tipos diferentes de transações em subconjuntos de transações diferentes pode garantir que os dados de transação pertencentes a subconjuntos de transações diferentes não tenham uma relação de dependência de transação e, assim, os subconjuntos de transações podem ser processados em paralelo sem afetar a consistência no estado de base de dados.
[087] (II) Determinação de um subconjunto de transações de acordo com as faixas de alteração de dados dos dados de transação
[088] A faixa de alteração de dados no presente pedido se refere a um objetivo para execução de dados de transação. Nas modalidades do presente pedido, de acordo com as faixas de alteração de dados dos dados de transação, dados de transação que têm faixas de alteração de dados que se sobrepõem podem ser inseridos no mesmo conjunto de transações e dados de transação que têm faixas de alteração de dados que não se sobrepõem podem ser divididos em subconjuntos de transações diferentes. Quando um subconjunto de transações é
Petição 870190083900, de 27/08/2019, pág. 25/67
19/35 determinado de acordo com as faixas de alteração de dados dos dados de transação partes diferentes de dados de transação precisam ser executadas em uma ordem na qual essas partes de dados de transação são geradas, se as faixas de dados afetadas pela execução dessas partes de dados de transação se sobreporem, de outro modo, o resultado de execução de dados será afetado. Por outro lado, se as faixas de dados ranges afetadas pela execução de partes diferentes de dados de transação não se sobreporem, uma ordem de execução dessas partes de dados de transação não afetará o resultado de processamento de dados. Portanto, a determinação de um subconjunto de transações de acordo com as faixas de alteração de dados dos dados de transação pode atender à necessidade por processamento em paralelo de subconjuntos de transações diferentes, favorecendo, por meio disso, o aprimoramento da eficiência de execução de processamento de dados.
[089] Em um exemplo, a inserção de dados de transação que têm faixas de alteração de dados que se sobrepõem no mesmo conjunto de transações e a divisão de dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de transações diferentes podem compreender:
[090] percorrer faixas de alteração de dados dos dados de transação;
[091] se a faixa de alteração de dados de primeiros dados de transação sobrepor a faixa de alteração de dados de um primeiro subconjunto de transações, adicionar os primeiros dados de transação ao primeiro subconjunto de transações; e
[092] se a faixa de alteração de dados dos primeiros dados de transação não sobrepor a faixa de alteração de dados do primeiro subconjunto de transações, criar um segundo subconjunto de transações que compreende os primeiros dados de transação;
[093] em que os primeiros dados de transação são qualquer parte de dados de transação, o primeiro subconjunto de transações é qualquer subconjunto de
Petição 870190083900, de 27/08/2019, pág. 26/67
20/35 transações nos subconjuntos de transações e o segundo subconjunto de transações é diferente do primeiro subconjunto de transações.
[094] O processo descrito acima será descrito abaixo com referência ao fluxograma mostrado na Figura 2.
[095] S1021: determinar se todas as partes de dados de transação no conjunto de transações foram percorridas, o processo termina se sim, de outro modo, o processo prossegue para executar a etapa S1022;
[096] S1022: obter qualquer parte de dados de transação TX a partir do conjunto de transações; deve ser observado que os dados de transação TX podem ser extraídos e gerados tipicamente a partir de dados de transação que não foram inseridos em um subconjunto de transações; entretanto, se os dados de transação TX extraídos já tiverem sido inseridos em um subconjunto de transações, os dados de transação TX serão inseridos no mesmo conjunto de transações após etapas posteriores serem executadas sem afetar o alcance do objetivo da técnica;
[097] S1023: computar uma faixa de alteração de dados dos dados de transação TX;
[098] S1024: determinar se a faixa de alteração de dados dos dados de transação TX sobrepor a faixa de alteração de dados de um subconjunto de transações TXB existente;
[099] S1025: se um resultado de determinação na etapa S1024 for sim, adicionar os dados de transação TX ao subconjunto de transações TXB;
[0100] S1026: se o resultado de determinação na etapa S1024 for não, criar um novo subconjunto de transações TXN, e adicionar os dados de transação TX ao subconjunto de transações TXN.
[0101] Deve ser observado que a faixa de alteração de dados de um subconjunto de transações precisa ser recalculada quando os dados de transação compreendidos no subconjunto de transações se alteram, e uma união de faixas de
Petição 870190083900, de 27/08/2019, pág. 27/67
21/35 alteração de dados de dados de transação compreendidos no subconjunto de transações pode ser usada como a faixa de alteração de dados do subconjunto de transações.
[0102] Por exemplo, o objeto de execução de uma transação do tipo contrato é um ID de contrato, e os dados contratuais correspondentes ao ID de contrato serão alterados após a execução. Então, o ID de contrato pode ser interpretado como a faixa de alteração de dados dos dados de transação. Se duas partes de dados de transação forem executadas para o mesmo ID de contrato, pode ser considerado que as faixas de alteração de dados dessas duas partes de dados de transação se sobrepõem e, então, essas duas partes de dados de transação devem ser incluídas no mesmo conjunto de transações e executadas em uma ordem determinada de acordo com os carimbos de data e hora correspondentes aos dados de transação. Se duas partes de dados de transação forem executadas para IDs de contrato diferentes, pode ser considerado que as faixas de alteração de dados dessas duas partes de dados de transação não se sobrepõem, e os dados contratuais correspondentes aos IDs de contrato diferentes serão alterados quando essas duas partes de dados de transação forem executadas. Portanto, a ordem de execução does não tem impacto sobre o resultado de execução. Essas duas partes de dados de transação podem ser incluídas em subconjuntos de transações diferentes e executadas em paralelo.
[0103] In um outro exemplo, os objetos de execução de uma transação do tipo transferência são contas de ambas as partes da transferência, e após a transação do tipo transferência ser executada, os dados de saldo de conta de ambas as partes da transferência serão alterados. Portanto, as contas de ambas as partes da transferência podem ser interpretadas como a faixa de alteração de dados dos dados de transação do tipo transferência. Considera-se que o conjunto de transações compreende as cinco partes de dados de transação a seguir:
Petição 870190083900, de 27/08/2019, pág. 28/67
22/35
[0104] dados de transação 1: transferir da conta A para a conta B, então, a faixa de alteração de dados dos dados de transação 1 pode ser expressada como (A, B);
[0105] dados de transação 2: transferir da conta B para a conta A, então, a faixa de alteração de dados dos dados de transação 2 pode ser expressada como (B, A);
[0106] dados de transação 3: transferir da conta C para a conta E, então, a faixa de alteração de dados dos dados de transação 3 pode ser expressada como (C, E);
[0107] dados de transação 4: transferir da conta F para a X, então, a faixa de alteração de dados dos dados de transação 4 pode ser expressada como (F, X);
[0108] dados de transação 5: transferir da conta X para a conta E, então, a faixa de alteração de dados dos dados de transação 5 pode ser expressada como (X, E).
[0109] Pode ser visto que as faixas de alteração de dados dos dados de transação 1 e dos dados de transação 2 se sobrepõem, as faixas de alteração de dados dos dados de transação 3 e dos dados de transação 5 se sobrepõem e as faixas de alteração de dados dos dados de transação 4 e dos dados de transação 5 se sobrepõem. Portanto, o conjunto de transações que compreende os dados de transação 1 aos dados de transação 5 podem ser divididos em subconjuntos de transações a seguir:
[0110] subconjunto de transações 1: compreendendo os dados de transação 1 e os dados de transação 2, e a faixa de alteração de dados sendo (A, B); e
[0111] subconjunto de transações 2: compreendendo os dados de transação 3, os dados de transação 4 e os dados de transação 5, e a faixa de alteração de dados sendo (C, E, F, X).
[0112] Pode ser visto que as faixas de alteração de dados do subconjunto de
Petição 870190083900, de 27/08/2019, pág. 29/67
23/35 transações 1 e do subconjunto de transações 2 não se sobrepõem, e uma execução em paralelo do subconjunto de transações 1 e do subconjunto de transações 2 não afetará um resultado de execução. Portanto, o subconjunto de transações 1 e o subconjunto de transações 2 podem ser executados em paralelo para aprimorar a eficiência de execução. Para o subconjunto de transações 1, as faixas de alteração de dados dos dados de transação 1 e dos dados de transação 2 se sobrepõem (que são até mesmo completamente idênticas), e a execução dessas duas partes de dados de transação pode depender de dados de transação antes da execução dessas duas partes de dados de transação. Portanto, uma ordem de execução precisa ser determinada de acordo com os carimbos de data e hora correspondentes a essas duas partes de dados de transação, e essas duas partes de dados de transação serão executadas em série na ordem temporal. É o mesmo para o subconjunto de transações 2. Por exemplo, pode ser determinado de acordo com os carimbos de data e hora que os dados de transação 4 de transferência da conta F para a conta X sejam executados primeiramente e, então, os dados de transação 5 de transferência da conta X para a conta E é executado. Essa ordem de execução pode nem ser em paralelo nem invertida, uma vez que é possível o fundo exigido pela transferência da conta X para a conta E quando os dados de transação 5 são executados dependa da execução dos dados de transação 4 de transferência da conta F para a conta X.
[0113] Deve ser observado que as faixas de alteração de dados de deslocamento dos dados de transação no conjunto de transações podem ser implementadas da maneira da S1022: obter qualquer parte de dados de transação conforme mostrado no exemplo na Figura 2. Alternativamente, o deslocamento pode ser implementado de acordo com a ordem temporal de geração dos dados de transação no conjunto de transações de acordo com os carimbos de data e hora dos dados de transação.
Petição 870190083900, de 27/08/2019, pág. 30/67
24/35
[0114] (III) Determinação de um subconjunto de transações de acordo com os tipos de transação e faixas de alteração de dados dos dados de transação
[0115] Nas modalidades do presente pedido, o tipo de transação e a faixa de alteração de dados podem ser combinados para determinar um subconjunto de transações em fases e níveis. Em uma implementação exemplificativa, a divisão pode ser realizada primeiramente de acordo com as faixas de alteração de dados com base nas quais uma segunda divisão pode ser realizada de acordo com os tipos de transação, ou uma ordem invertida pode ser seguida. Adotando a primeira divisão de acordo com os tipos de transação e, então a segunda divisão de acordo com as faixas de alteração de dados como um exemplo, o processo de implementação de determinação de um subconjunto de transações de acordo com os tipos de transação e faixas de alteração de dados dos dados de transação pode compreender:
[0116] Etapa S1027: determinar um subconjunto de nível I ao qual os dados de transação pertencem de acordo com os tipos de transação dos dados de transação; então determinar um subconjunto de nível II ao qual os dados de transação pertencem de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I, e usar o subconjunto de nível II como o subconjunto de transações, em que o subconjunto de nível II é um subconjunto do subconjunto de nível I.
[0117] No documento, a realização de uma primeira divisão de nível no conjunto de transações de acordo com o tipo de transação e a determinação de um subconjunto de nível I ao qual os dados de transação pertencem podem compreender adicionalmente:
[0118] de acordo com os tipos de transação dos dados de transação no conjunto de transações, inserir dados de transação do mesmo tipo de transação no mesmo subconjunto de nível I, e dividir dados de transação de tipos diferentes de
Petição 870190083900, de 27/08/2019, pág. 31/67
25/35 transação em subconjuntos de nível I diferentes.
[0119] Uma vez que há um número muito limitado de tipos de transação de dados de transação, a determinação de subconjuntos de transações que pode ser executada apenas em paralelo de acordo com os tipos de transação pode aprimorar a eficiência de execução para um grau, mas pode não alcançar um efeito satisfatório em casos em que uma grande quantidade como uma alta quantidade de dados de transação concorrentes é gerada. Portanto, com base na divisão descrita acima, os subconjuntos de nível I determinados de acordo com os tipos de transação são submetidos à segunda divisão de nível de acordo com as faixas de alteração de dados, e os subconjuntos de nível II obtidos através da segunda divisão de nível são usados como subconjuntos de transações para processamento em paralelo com a finalidade de aprimorar adicionalmente a eficiência de execução.
[0120] Em um exemplo, a determinação de um subconjunto de nível II ao qual os dados de transação pertencem de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I compreende:
[0121] de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem no mesmo subconjunto de nível II, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de nível II diferentes.
[0122] Adicionalmente, de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I, a inserção de dados de transação que têm faixas de alteração de dados que se sobrepõem no mesmo subconjunto de nível II e divisão de dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de nível II diferentes podem compreender conforme mostrado na Figura 3:
[0123] S1028: percorrer faixas de alteração de dados de dados de transação
Petição 870190083900, de 27/08/2019, pág. 32/67
26/35 em um primeiro subconjunto de nível I;
[0124]S1029: determinar se a faixa de alteração de dados de segundos dados de transação sobrepõe a faixa de alteração de dados de um primeiro subconjunto de nível II;
[0125] S1030: se a faixa de alteração de dados dos segundos dados de transação sobrepor a faixa de alteração de dados do primeiro subconjunto de nível II, adicionar os segundos dados de transação ao primeiro subconjunto de nível II; e
[0126] S1031: se a faixa de alteração de dados dos segundos dados de transação não sobrepor a faixa de alteração de dados do primeiro subconjunto de nível II, criar um segundo subconjunto de nível II que compreende os segundos dados de transação;
[0127] em que o primeiro subconjunto de nível I é qualquer subconjunto de nível I nos subconjuntos de nível I, os segundos dados de transação é qualquer parte de dados de transação no primeiro subconjunto de nível I, o primeiro subconjunto de nível II é qualquer subconjunto de nível II no primeiro subconjunto de nível I e o segundo subconjunto de nível II é diferente do primeiro subconjunto de nível II.
[0128] O processo de divisão de subconjuntos de nível II dos subconjuntos de nível I é similar ao processo e ao princípio de divisão de subconjuntos de transações de um conjunto de transações conforme descrito no n° (II), que não será elaborado aqui.
[0129] Após o processo de implementação descrito acima ser usado para divisão de subconjuntos de transações, os subconjuntos de transações podem ser executados em paralelo para concluir o processo de execução de dados de transação de cadeia de blocos para gravar o resultado de execução na cadeia de blocos. Conforme mostrado na Figura 4, um módulo de disposição de dados de transação é configurado para alcançar a divisão de subconjuntos de transações. Um
Petição 870190083900, de 27/08/2019, pág. 33/67
27/35 agrupamento de execução de dados de transação executa dados de transação em subconjuntos de transações diferentes em paralelo, executa dados de transação contidos em um subconjunto de transações em série de acordo com os carimbos de data e hora correspondentes aos dados de transação e, então, grava o resultado de execução na cadeia de blocos, garantindo, por meio disso, a consistência no estado de base de dados de cadeia de blocos, reduz o custo exigido para aprimorar a eficiência de execução e processamento de dados, e aprimora a expansibilidade. Quando o resultado de execução é gravado em um bloco da cadeia de blocos, os resultados de execução de dados de transação pelo agrupamento de execução de dados de transação podem ser compactados e, então, gravados na cadeia de blocos. Em um exemplo, um computador designado no agrupamento pode concluir a compactação de resultados de execução.
[0130] Nas tecnologias atuais, adota-se uma aplicação de Ethereum como um exemplo, os dados de transação são classificados de acordo com os carimbos de data e hora recebidos dos dados de transação quando os dados de transação são executados e, então, a execução é realizada em série na ordem temporal para atualizar as informações de conta após cada parte de dados de transação ser executada. Nas modalidades do presente pedido, após os dados de transação a serem gravados em uma cadeia de blocos (isto é, os dados de transação recebidos pela cadeia de blocos) serem obtidos, os dados de transação são classificados primeiramente de acordo com os tipos de transação e/ou faixas de alteração de dados para formar subconjuntos de transações, fazendo com que dados de transação sem uma relação de dependência de transação sejam divididos em subconjuntos de transações diferentes e dados de transação com uma relação de dependência de transação sejam inseridos no mesmo conjunto de transações. A divisão de dados de transação e a determinação de subconjuntos de transações podem ser implementadas pelo módulo de disposição de dados de transação
Petição 870190083900, de 27/08/2019, pág. 34/67
28/35 mostrado na Figura 4. Após o módulo de disposição de dados de transação concluir a divisão de dados de transação, o módulo de disposição de dados de transação pode distribuir os subconjuntos de transações para computadores no agrupamento de execução de dados de transação para processamento de dados. Cada computador no agrupamento de execução de dados de transação executa apenas dados de transação em um subconjunto de transações alocado, segue o processo de verificação, implementação e registro em uma cadeia de blocos para gravar um resultado de execução na cadeia de blocos. Em uma implementação exemplificativa, o módulo de disposição de dados de transação e o agrupamento de execução de dados de transação podem também ser interpretados conjuntamente como um agrupamento de execução de transação para implementar funções de recepção, classificação, distribuição e execução de dados de transação, compactar resultados de execução de dados de transação e gravar os resultados de execução compactados na cadeia de blocos.
MODALIDADE 2
[0131] As modalidades do presente pedido adicionalmente fornecem um outro método para gravar dados de transação em uma cadeia de blocos que compreende:
[0132] obter uma pluralidade de partes de dados de transação a ser executada;
[0133] determinar primeiros dados de transação sem uma relação de dependência de transação de acordo com as faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os primeiros dados de transação; e
[0134] executar os primeiros dados de transação em paralelo, e gravar um resultado de execução na cadeia de blocos.
[0135] Em um exemplo, quando os primeiros dados de transação são
Petição 870190083900, de 27/08/2019, pág. 35/67
29/35 determinados, dados de transação com uma faixa de alteração de dados que não sobrepõem uma outra faixa de alteração de dados de qualquer outra parte de dados de transação podem ser determinados como os primeiros dados de transação que não têm relação de dependência de transação de acordo com as faixas de alteração de dados dos dados de transação.
[0136] Considera-se que a pluralidade de partes de dados de transação
obtida seja conforme a seguir:
n° de Dados Tipo de transação Faixa de alteração de dados Observações
1 Contrato IDA A execução alterará dados de ID A
2 Contrato IDA A execução alterará dados de ID A
3 Contrato ID B A execução alterará dados de ID B
4 Contrato ID C A execução alterará dados de ID C
5 Transferência Conta X, Conta Y A execução alterará dados de Conta X e da Conta Y
6 Transferência Conta Z, Conta D A execução alterará dados de Conta Z e da Conta D
7 Transferência Conta X, Conta M A execução alterará dados de Conta X e da Conta M
8 Transferência Conta N, Conta L A execução alterará dados de Conta N e da Conta L
[0137] De acordo com as faixas de alteração de dados dos dados de transação, pode ser visto que as faixas de alteração de dados dos dados de transação 3, 4, 6 e 8 não sobrepõem a faixa de alteração de dados de quaisquer outros dados de transação. Portanto, a ordem de execução dessas partes de dados de transação não afeta a consistência no estado de base de dados. Como um resultado, a execução em paralelo dessas partes de dados de transação favorece o aprimoramento da eficiência de execução de processamento de dados, reduzindo, por meio disso, o custo exigido para aprimorar a eficiência de execução de processamento de dados e aprimorar a expansibilidade.
MODALIDADE 3
[0138] Conforme mostrado na Figura 5, um aparelho para gravar dados de
Petição 870190083900, de 27/08/2019, pág. 36/67
30/35 transação em uma cadeia de blocos de acordo com o presente pedido pode compreender:
[0139] um módulo de obtenção 101 configurado para obter uma pluralidade de partes de dados de transação a ser gravada em uma cadeia de blocos;
[0140] um módulo de determinação de subconjunto de transações 102 configurado para determinar um subconjunto de transações ao qual os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes; e
[0141] um módulo de execução de dados 103 configurado para executar os subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos.
[0142] A presente modalidade consiste em um aparelho correspondente ao método para gravar dados de transação em uma cadeia de blocos na modalidade 1. Todas as descrições da modalidade 1 são aplicáveis à presente modalidade, que não será elaborada aqui.
MODALIDADE 4
[0143] O presente pedido fornece adicionalmente um método para determinar um subconjunto de transações de dados de transação de cadeia de blocos. Os dados de transação podem ser divididos razoavelmente com o uso desse método, fazendo com que dados de transação sem uma relação de dependência de transação sejam executados em paralelo, reduzindo, por meio disso, o custo exigido para aprimorar a eficiência de execução de processamento de dados e aprimorar a expansibilidade. O método compreende:
[0144] após uma pluralidade de partes de dados de transação a ser executada ser obtida, os subconjuntos de transações aos quais dos dados de
Petição 870190083900, de 27/08/2019, pág. 37/67
31/35 transação pertencem são determinados de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação para executar os subconjuntos de transações em paralelo, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes.
[0145] Em um exemplo, a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação pode compreender:
[0146] determinar os subconjuntos de transações aos quais os dados de transação pertencem de acordo com os atributos de dados dos dados de transação, em que um atributo de dados tem uma relação correspondente a um tipo de transação e/ou faixa de alteração de dados dos dados de transação, e o atributo de dados é usado para refletir uma relação de dependência de transação dos dados de transação.
[0147] Adicionalmente, a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação dos dados de transação pode compreender: de acordo com os tipos de transação dos dados de transação, inserir dados de transação do mesmo tipo de transação no mesmo conjunto de transações, e dividir dados de transação de tipos diferentes de transação em subconjuntos de transações diferentes.
[0148] A determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com as faixas de alteração de dados dos dados de transação pode compreender: de acordo com as faixas de alteração de dados dos dados de transação, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem no mesmo conjunto de transações, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de transações diferentes.
[0149] A determinação de subconjuntos de transações aos quais os dados
Petição 870190083900, de 27/08/2019, pág. 38/67
32/35 de transação pertencem de acordo com os tipos de transação e faixas de alteração de dados dos dados de transação podem compreender adicionalmente:
[0150] determinar um subconjunto de nível I ao qual os dados de transação pertencem de acordo com os tipos de transação dos dados de transação; e
[0151] determinar um subconjunto de nível II ao qual os dados de transação pertencem de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I, e usar o subconjunto de nível II como o subconjunto de transações, em que o subconjunto de nível II é um subconjunto do subconjunto de nível I.
[0152] A implementação detalhada da presente modalidade corresponde à etapa S102 na Modalidade 1, e todas as descrições relevantes da Modalidade 1 são aplicáveis à presente modalidade, que não será elaborada aqui.
[0153] Um elemento de habilidade comum na técnica deve entender que as modalidades da presente invenção podem ser fornecidas, como um método, um sistema ou produto de programa de computador. Portanto, a presente invenção pode ser implementada, como uma modalidade de hardware completa, uma modalidade de software completa ou uma modalidade que combina software e hardware. Além disso, a presente invenção pode estar sob forma de um produto de programa de computador implementado em um ou mais meios de armazenamento úteis para computador (incluindo, mas não limitados a uma memória de disco magnético, CDROM, uma memória ótica, etc.) compreendendo códigos de programa úteis de computador.
[0154] A presente invenção é descrita com referência a fluxogramas e/ou diagramas de bloco do método, dispositivo (sistema) e produto de programa de computador de acordo com as modalidades da presente invenção. Deve ser entendido que uma instrução de programa de computador pode ser usada para implementar cada processo e/ou bloco nos fluxogramas e/ou diagramas de bloco e
Petição 870190083900, de 27/08/2019, pág. 39/67
33/35 uma combinação de processos e/ou blocos nos fluxogramas e/ou diagramas de bloco. Essas instruções de programa de computador podem ser fornecidas para um computador de propósito geral, um computador de propósito especial, um processador embutido, ou um processador de outros dispositivos de processamento de dados programáveis para gerar uma máquina, causando as instruções executadas por um computador ou um processador de outros dispositivos de processamento de dados programáveis para gerar um aparelho para implementar uma função especificada em um ou mais processos nos fluxogramas e/ou em um ou mais blocos nos diagramas de bloco.
[0155] Essas instruções de programa de computador podem armazenar também em uma memória legível por computador que pode instruir um computador ou outros dispositivos de processamento de dados programáveis a funcionar de uma maneira particular, fazendo com que as instruções armazenadas na memória legível por computador gerem um artigo fabricado que inclui um aparelho de instrução. O aparelho de instrução implementa uma função especificada em um ou mais processes nos fluxogramas e/ou em um ou mais blocos nos diagramas de bloco.
[0156] Essas instruções de programa de computador podem ser carregadas também em um computador ou outros dispositivos de processamento de dados programáveis, fazendo com que uma série de etapas operacionais seja realizada no computador ou outros dispositivos programáveis, gerando, por meio disso, processamento implementado por computador. Portanto, as instruções executadas no computador ou outros dispositivos programáveis fornecem etapas para implementar uma função especificada em um ou mais processos nos fluxogramas e/ou em um ou mais blocos nos diagramas de bloco.
[0157] Em uma configuração típica, o dispositivo de computação inclui um ou mais processadores (CPUs), interfaces de entrada/saída, interfaces de rede e uma memória.
Petição 870190083900, de 27/08/2019, pág. 40/67
34/35
[0158] A memória pode incluir meios legíveis por computador, como uma memória volátil, um Memória de Acesso Aleatório (RAM) e/ou uma memória não volátil, por exemplo, uma Memória Somente de Leitura (ROM) ou uma memória flash (RAM flash). A memória é um exemplo de um meio legível por computador.
[0159] Meios legíveis por computador incluem meios permanentes, móveis, voláteis e imóveis, que podem implementar armazenamento de informações através de qualquer método ou tecnologia. As informações podem instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. Exemplos de meios de armazenamento de computadores incluem, mas não são limitados, Memórias de Acesso Aleatório de Mudança de Fase (PRAMs), Memórias de Acesso Aleatório Estáticas (SRAMs), Memórias de Acesso Aleatório Dinâmicas (DRAMs), outros tipos de Memórias de Acesso Aleatório (RAMs), Memórias Somente de Leitura (ROMs), Memórias Somente de Leitura Programáveis Eletricamente Apagáveis (EEPROMs), memórias flash ou outras tecnologias de memória, Memórias Somente de Leitura de Disco Compacto (CD-ROMs), Discos Versáteis Digitais (DVDs) ou outras memórias óticas, cassetes, memórias de cassete e disco ou outros dispositivos de memória magnética, ou quaisquer outros meios de não transmissão, que podem ser usados para armazenar informações acessíveis a um dispositivo de computação. De acordo com as definições no relatório descritivo, os meios legíveis por computador não incluem meios transitórios (meios transitórios), como sinais de dados modulados e portadoras.
[0160] Deve ser observado adicionalmente que se pretende que os termos “incluindo”, “compreendendo” ou quaisquer outras variantes dos termos englobem uma inclusão não exclusiva, fazendo com que um processo, um método, uma mercadoria ou um dispositivo que compreende um série de elementos não compreenda apenas esses elementos, mas compreende também outros elementos que não são listados claramente, ou compreende adicionalmente elementos que são
Petição 870190083900, de 27/08/2019, pág. 41/67
35/35 inerentes ao processo, método, mercadoria ou dispositivo. Quando não há adicionalmente restrição, os elementos definidos pela declaração “compreendendo um...” não excluem um processo, método, mercadoria ou dispositivo compreendendo os elementos acima de compreender elementos idênticos adicionais.
[0161] Um elemento de habilidade comum na técnica deve entender que as modalidades do presente pedido podem ser fornecidas, como um método, um sistema ou um produto de programa de computador. Portanto, o presente pedido pode ser implementado como uma modalidade de hardware completa, uma modalidade de software completa ou uma modalidade que combina software e hardware. Além disso, o presente pedido pode estar sob forma de um produto de programa de computador implementado em um ou mais meios de armazenamento úteis para computador (incluindo, mas não limitados a, uma memória de disco magnético, CD-ROM, uma memória ótica, etc.) que compreende códigos de programa úteis de computador.
[0162] O supracitado descrito são meras modalidades do presente pedido, que não são usadas para limitar o presente pedido. Para um elemento de habilidade comum na técnica, o presente pedido pode ter várias modificações e alterações. Qualquer modificação, substituição equivalente ou aprimoramento feito dentro do espírito e princípio do presente pedido deve ser englobado pelas reivindicações do presente pedido.

Claims (21)

1. Método para gravar dados de transação em uma cadeia de blocos CARACTERIZADO pelo fato de que compreende:
obter (S101) uma pluralidade de partes de dados de transação a ser gravada na cadeia de blocos;
determinar (S102) subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes; e executar (S103) os subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação compreende:
determinar os subconjuntos de transações aos quais os dados de transação pertencem de acordo com os atributos de dados dos dados de transação, em que um atributo de dados tem uma relação correspondente a um tipo de transação e/ou faixa de alteração de dados dos dados de transação, e o atributo de dados é usado para refletir uma relação de dependência de transação dos dados de transação.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a execução dos subconjuntos de transações em paralelo compreende:
executar os subconjuntos de transações em paralelo com o uso de linha de execução múltipla ou um agrupamento de máquinas.
Petição 870190083900, de 27/08/2019, pág. 60/67
2/8
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que há uma relação correspondente entre os dados de transação e os carimbos de data e hora, e a execução dos subconjuntos de transações compreende:
executar dados de transação compreendidos nos subconjuntos de transações em série de acordo com uma ordem temporal correspondente aos carimbos de data e hora.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação dos dados de transação compreende:
de acordo com os tipos de transação dos dados de transação, inserir dados de transação de um mesmo tipo de transação em um mesmo conjunto de transações, e dividir dados de transação de tipos diferentes de transação em subconjuntos de transações diferentes.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com as faixas de alteração de dados dos dados de transação compreende:
de acordo com as faixas de alteração de dados dos dados de transação, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem em um mesmo conjunto de transações, e dividir dados de transação que têm faixas de alteração de dados não se sobrepõem em subconjuntos de transações diferentes.
7. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que, de acordo com as faixas de alteração de dados dos dados de transação, a inserção de dados de transação que têm faixas de alteração de dados que se sobrepõem em um mesmo conjunto de transações e a divisão de dados de
Petição 870190083900, de 27/08/2019, pág. 61/67
3/8 transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de transações diferentes compreendem:
percorrer faixas de alteração de dados dos dados de transação;
se a faixa de alteração de dados de uma primeira parte de dados de transação sobrepor a faixa de alteração de dados de um primeiro subconjunto de transações, adicionar a primeira parte de dados de transação ao primeiro subconjunto de transações; e se a faixa de alteração de dados da primeira parte de dados de transação não sobrepor a faixa de alteração de dados do primeiro subconjunto de transações, criar um segundo subconjunto de transações que compreende a primeira parte de dados de transação;
em que a primeira parte de dados de transação é qualquer uma das partes de dados de transação, o primeiro subconjunto de transações é qualquer um dos subconjuntos de transações e o segundo subconjunto de transações é diferente do primeiro subconjunto de transações.
8. Método, de acordo com a reivindicação 6 ou 7, CARACTERIZADO pelo fato de que a faixa de alteração de dados do subconjunto de transações é determinada para ser uma união de faixas de alteração de dados de dados de transação compreendidos no subconjunto de transações.
9. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que há uma relação correspondente entre os dados de transação e os carimbos de data e hora, e as faixas de alteração de dados de deslocamento dos dados de transação compreende:
percorrer em uma ordem temporal correspondente aos carimbos de data e hora de acordo com os carimbos de data e hora dos dados de transação.
10. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a determinação de subconjuntos de transações aos quais os dados de
Petição 870190083900, de 27/08/2019, pág. 62/67
4/8 transação pertencem de acordo com os tipos de transação e faixas de alteração de dados dos dados de transação compreende:
determinar um subconjunto de nível I ao qual os dados de transação pertencem de acordo com os tipos de transação dos dados de transação; e determinar um subconjunto de nível II ao qual os dados de transação no subconjunto de nível I pertencem de acordo com as faixas de alteração de dados dos dados de transação, e usar o subconjunto de nível II como um dos subconjuntos de transações, em que o subconjunto de nível II é um subconjunto do subconjunto de nível I.
11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que a determinação de um subconjunto de nível I ao qual os dados de transação pertencem de acordo com os tipos de transação dos dados de transação compreende:
de acordo com os tipos de transação dos dados de transação, inserir dados de transação de um mesmo tipo de transação em um mesmo subconjunto de nível I, e dividir dados de transação de tipos diferentes de transação em subconjuntos de nível I diferentes.
12. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que a determinação de um subconjunto de nível II ao qual os dados de transação no subconjunto de nível I pertencem de acordo com as faixas de alteração de dados dos dados de transação compreende:
de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem em um mesmo subconjunto de nível II, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de nível II diferentes.
Petição 870190083900, de 27/08/2019, pág. 63/67
5/8
13. Método, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que, de acordo com as faixas de alteração de dados dos dados de transação no subconjunto de nível I, a inserção de dados de transação que têm faixas de alteração de dados que se sobrepõem no mesmo subconjunto de nível II e a divisão de dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de nível II diferentes compreende:
percorrer faixas de alteração de dados de dados de transação em um primeiro subconjunto de nível I;
se a faixa de alteração de dados de uma segunda parte de dados de transação sobrepor a faixa de alteração de dados de um primeiro subconjunto de nível II, adicionar a segunda parte de dados de transação ao primeiro subconjunto de nível II; e se a faixa de alteração de dados da segunda parte de dados de transação não sobrepor a faixa de alteração de dados do primeiro subconjunto de nível II, criar um segundo subconjunto de nível II que compreende a segunda parte de dados de transação;
em que o primeiro subconjunto de nível I é qualquer subconjunto de nível I nos subconjuntos de nível I, a segunda parte de dados de transação é qualquer parte dos dados de transação no primeiro subconjunto de nível I, o primeiro subconjunto de nível II é qualquer subconjunto de nível II no primeiro subconjunto de nível I e o segundo subconjunto de nível II é diferente do primeiro subconjunto de nível II.
14. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a pluralidade de partes de dados de transação a ser executada é obtida para formar um conjunto de transações a ser executado que compreende os dados de transação, e o conjunto de transações é determinado por uma quantidade de processamento de dados predefinida e/ou tempo de dados de transação predefinido.
Petição 870190083900, de 27/08/2019, pág. 64/67
6/8
15. Método para gravar dados de transação em uma cadeia de blocos CARACTERIZADO pelo fato de que compreende:
obter uma pluralidade de partes de dados de transação a ser gravada em uma cadeia de blocos;
determinar os primeiros dados de transação sem uma relação de dependência de transação de acordo com as faixas de alteração de dados dos dados de transação, em que não há relação de dependência de transação entre os primeiros dados de transação; e executar os primeiros dados de transação em paralelo, e gravar um resultado de execução na cadeia de blocos.
16. Método, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que a determinação dos primeiros dados de transação sem uma relação de dependência de transação de acordo com as faixas de alteração de dados dos dados de transação compreende:
de acordo com as faixas de alteração de dados dos dados de transação, determinar dados de transação com uma faixa de alteração de dados que não sobrepõe a faixa de alteração de dados de qualquer outra parte de dados de transação como os primeiros dados de transação não têm relação de dependência de transação.
17. Aparelho para gravar dados de transação em uma cadeia de blocos CARACTERIZADO pelo fato de que compreende:
um módulo de obtenção (101) configurado para obter uma pluralidade de partes de dados de transação a ser gravada em uma cadeia de blocos;
um módulo de determinação (102) de subconjunto de transações configurado para determinar um subconjunto de transações ao qual os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação, em que não há relação de dependência de
Petição 870190083900, de 27/08/2019, pág. 65/67
7/8 transação entre os dados de transação pertencentes a subconjuntos de transações diferentes; e um módulo de execução (103) de dados configurado para executar os subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos.
18. Método para determinar um subconjunto de transações de dados de transação de cadeia de blocos CARACTERIZADO pelo fato de que compreende:
após uma pluralidade de partes de dados de transação a ser gravada em uma cadeia de blocos ser obtida, determinar subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação para executar os subconjuntos de transações em paralelo, e gravar um resultado de execução na cadeia de blocos, em que não há relação de dependência de transação entre os dados de transação pertencentes a subconjuntos de transações diferentes.
19. Método, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e/ou faixas de alteração de dados dos dados de transação compreende:
determinar os subconjuntos de transações aos quais os dados de transação pertencem de acordo com os atributos de dados dos dados de transação, em que um atributo de dados tem uma relação correspondente a um tipo de transação e/ou faixa de alteração de dados dos dados de transação, e o atributo de dados é usado para refletir uma relação de dependência de transação dos dados de transação.
20. Método, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação dos dados de transação
Petição 870190083900, de 27/08/2019, pág. 66/67
8/8 compreende: de acordo com os tipos de transação dos dados de transação, inserir dados de transação de um mesmo tipo de transação em um mesmo conjunto de transações, e dividir dados de transação de tipos diferentes de transação em subconjuntos de transações diferentes; ou a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com as faixas de alteração de dados dos dados de transação compreende: de acordo com as faixas de alteração de dados dos dados de transação, inserir dados de transação que têm faixas de alteração de dados que se sobrepõem em um mesmo conjunto de transações, e dividir dados de transação que têm faixas de alteração de dados que não se sobrepõem em subconjuntos de transações diferentes.
21. Método, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que a determinação de subconjuntos de transações aos quais os dados de transação pertencem de acordo com os tipos de transação e faixas de alteração de dados dos dados de transação compreende:
determinar um subconjunto de nível I ao qual os dados de transação pertencem de acordo com os tipos de transação dos dados de transação; e determinar um subconjunto de nível II ao qual os dados de transação no subconjunto de nível I pertencem de acordo com as faixas de alteração de dados dos dados de transação, e o uso do subconjunto de nível II como um dos subconjuntos de transações, em que o subconjunto de nível II é um subconjunto do subconjunto de nível I.
BR112019017863-5A 2017-02-28 2018-02-26 Método e aparelho para gravar dados de serviço em cadeia de blocos e método para determinar subconjunto de serviços BR112019017863A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710116539.7A CN106980649B (zh) 2017-02-28 2017-02-28 写入区块链业务数据的方法和装置及业务子集合确定方法
CN201710116539.7 2017-02-28
PCT/CN2018/077286 WO2018157778A1 (zh) 2017-02-28 2018-02-26 写入区块链业务数据的方法和装置及业务子集合确定方法

Publications (1)

Publication Number Publication Date
BR112019017863A2 true BR112019017863A2 (pt) 2020-05-12

Family

ID=59339366

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019017863-5A BR112019017863A2 (pt) 2017-02-28 2018-02-26 Método e aparelho para gravar dados de serviço em cadeia de blocos e método para determinar subconjunto de serviços

Country Status (16)

Country Link
US (2) US10642643B2 (pt)
EP (1) EP3561700A4 (pt)
JP (1) JP6928104B2 (pt)
KR (1) KR102103130B1 (pt)
CN (1) CN106980649B (pt)
AU (2) AU2018228540B2 (pt)
BR (1) BR112019017863A2 (pt)
CA (1) CA3054813C (pt)
MX (1) MX2019009728A (pt)
MY (1) MY197445A (pt)
PH (1) PH12019501795A1 (pt)
RU (1) RU2744585C2 (pt)
SG (1) SG11201907212SA (pt)
TW (1) TWI660281B (pt)
WO (1) WO2018157778A1 (pt)
ZA (1) ZA201904916B (pt)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
GB201707296D0 (en) * 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
CN107423124A (zh) * 2017-07-27 2017-12-01 中链科技有限公司 一种用于对交易数据进行并行处理的方法
CN107729137B (zh) * 2017-09-04 2021-06-22 深圳壹账通智能科技有限公司 服务器、区块链验签解密的方法及存储介质
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及系统
CN107786642B (zh) * 2017-09-30 2020-04-17 上海数据交易中心有限公司 用于数据流通的区块链构建方法及装置、存储介质、服务器
CN107734021B (zh) * 2017-09-30 2020-04-07 深圳壹账通智能科技有限公司 区块链数据上传方法、系统、计算机系统及存储介质
CN107833060B (zh) * 2017-11-13 2020-12-25 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及系统
CN108322309B (zh) * 2017-12-27 2019-10-11 北京欧链科技有限公司 基于区块链的交易处理方法及装置
CN108513669A (zh) * 2017-12-29 2018-09-07 深圳前海达闼云端智能科技有限公司 基于区块链的众筹信息处理方法、装置、存储介质及电子设备
CN110083437A (zh) * 2018-01-25 2019-08-02 北京欧链科技有限公司 处理区块链事务的方法及装置
CN108471510A (zh) * 2018-01-29 2018-08-31 东莞理工学院 一种基于区块链的视频操作记录保护方法及系统
CN108564470B (zh) * 2018-04-17 2021-09-28 北京天德科技有限公司 一种区块链中并行建块的交易分发方法
CN108958925B (zh) * 2018-04-26 2023-06-20 武汉龙津科技有限公司 一种节能的工作量证明方法与系统
CN108768994B (zh) * 2018-05-22 2021-07-27 北京小米移动软件有限公司 数据匹配方法、装置及计算机可读存储介质
JP7063142B2 (ja) * 2018-06-25 2022-05-09 日本電信電話株式会社 番号管理システム、番号管理方法および番号管理装置
CN109087097B (zh) * 2018-07-26 2020-11-03 京东数字科技控股有限公司 一种更新链码同一标识的方法和装置
CN109191295A (zh) * 2018-08-15 2019-01-11 深圳市元征科技股份有限公司 一种信息处理方法及其设备
CN109325366B (zh) * 2018-08-22 2022-08-12 深圳前海微众银行股份有限公司 基于联盟链的业务处理方法、设备及计算机可读存储介质
US10860659B1 (en) * 2018-09-06 2020-12-08 Amazon Technologies, Inc. Distributed verification of digital work product
TWI698100B (zh) * 2018-09-18 2020-07-01 柯賓漢數位金融科技有限公司 多區塊鏈產生及整合方法暨區塊鏈系統
CN109493211A (zh) * 2018-09-27 2019-03-19 深圳壹账通智能科技有限公司 基于区块链的信贷数据存储方法、装置、设备及存储介质
CN109088722B (zh) * 2018-10-08 2021-10-19 深圳投时科技有限公司 区块链节点演进方法及区块链节点
CN109299195A (zh) * 2018-10-23 2019-02-01 杭州能链科技有限公司 数据处理方法、装置及存储介质
CN111782275B (zh) * 2018-10-25 2024-02-06 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
US11138597B2 (en) 2018-11-27 2021-10-05 Advanced New Technologies Co., Ltd. System and method for improving security of smart contract on blockchain
US11354727B2 (en) * 2018-11-27 2022-06-07 Advanced New Technologies Co., Ltd. System and method for improving security of smart contract on blockchain
CN111291018B (zh) * 2018-12-07 2023-06-23 北京沃东天骏信息技术有限公司 数据管理方法、装置、设备及存储介质
CN109766727B (zh) * 2018-12-25 2021-04-06 苏州朗润创新知识产权运营有限公司 智能区块网络构建方法及系统
BR112019016064A2 (pt) * 2018-12-28 2020-03-31 Alibaba Group Holding Limited Método implementado por computador, meio de armazenamento legível e sistema
MX2019009344A (es) 2018-12-28 2019-10-02 Alibaba Group Holding Ltd Ejecucion paralela de transacciones en una red de cadena de bloques con base en listas blancas de contratos inteligentes.
WO2019072311A2 (en) * 2018-12-29 2019-04-18 Alibaba Group Holding Limited PARTICIPATORY PRODUCTION BASED ON A CHAIN OF BLOCKS OF MAPPING APPLICATIONS
KR102354776B1 (ko) 2019-03-04 2022-01-25 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 트랜잭션 데이터를 처리를 위해 블록체인 시스템에 제공하기 위한 방법 및 디바이스
JP6955026B2 (ja) * 2019-03-28 2021-10-27 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 並列処理ブロックチェーントランザクションのためのシステムおよび方法
SG11201910057QA (en) 2019-04-12 2019-11-28 Alibaba Group Holding Ltd Performing parallel execution of transactions in a distributed ledger system
CN111095326B (zh) * 2019-04-12 2023-08-22 创新先进技术有限公司 用于在区块链网络中执行多个交易的方法、系统和装置
CA3060790C (en) 2019-04-12 2021-06-08 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
KR102118178B1 (ko) * 2019-04-24 2020-06-02 주식회사 데이터젠 블록체인을 위한 다중 트랜잭션 병렬 처리 방법 및 시스템
CN110209671A (zh) * 2019-05-17 2019-09-06 无锡朝阳供应链科技股份有限公司 一种分布式账本数据的存取系统及其应用
CN112001713B (zh) * 2019-05-27 2024-03-29 深圳市红砖坊技术有限公司 区块链系统以及请求处理方法和装置
US11405204B2 (en) 2019-06-15 2022-08-02 Meta Platforms, Inc Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
EP3983923A1 (en) * 2019-06-15 2022-04-20 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11249947B2 (en) 2019-06-15 2022-02-15 Facebook, Inc. Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure
US11126593B2 (en) 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11249985B2 (en) * 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
CN110570311B (zh) * 2019-09-17 2021-05-25 北京海益同展信息科技有限公司 区块链的共识方法、装置及设备
CN110659308B (zh) * 2019-09-24 2020-12-22 华润网络(深圳)有限公司 一种数据清算处理方法及装置
CN110728578A (zh) * 2019-09-29 2020-01-24 南京金宁汇科技有限公司 区块链交易的并行执行方法、系统及存储介质
CN110806923B (zh) * 2019-10-29 2023-02-24 百度在线网络技术(北京)有限公司 一种区块链任务的并行处理方法、装置、电子设备和介质
CN111126978B (zh) * 2019-12-28 2023-03-14 飞天诚信科技股份有限公司 一种区块链上快速处理事务的实现方法及装置
US11682095B2 (en) 2020-02-25 2023-06-20 Mark Coast Methods and apparatus for performing agricultural transactions
KR102461553B1 (ko) * 2020-02-28 2022-11-01 주식회사 시큐어링크 대용량 정보 공유를 위한 계층 블록체인 시스템
CN111405037A (zh) * 2020-03-13 2020-07-10 杭州复杂美科技有限公司 区块同步方法、设备和存储介质
KR102315226B1 (ko) * 2020-03-16 2021-10-20 이정우 규칙 증명 방식의 합의 알고리즘 기반 블록체인 시스템 및 그 방법
CN113779016A (zh) * 2020-07-06 2021-12-10 北京沃东天骏信息技术有限公司 数据管理的方法和装置
CN112508574A (zh) * 2021-02-03 2021-03-16 北京全息智信科技有限公司 一种区块链的并行交易执行方法、装置和电子设备

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10002019B2 (en) * 2009-05-11 2018-06-19 International Business Machines Corporation System and method for assigning a transaction to a serialized execution group based on an execution group limit for parallel processing with other execution groups
RU2554509C2 (ru) * 2010-10-06 2015-06-27 Александр Яковлевич Богданов Система и способ распределенных вычислений
US8856283B2 (en) * 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US9553982B2 (en) 2013-07-06 2017-01-24 Newvoicemedia, Ltd. System and methods for tamper proof interaction recording and timestamping
US11126627B2 (en) 2014-01-14 2021-09-21 Change Healthcare Holdings, Llc System and method for dynamic transactional data streaming
EP2961168A1 (en) * 2014-06-27 2015-12-30 Thomson Licensing Method and apparatus for predicting image samples for encoding or decoding
TWI528217B (zh) * 2014-07-02 2016-04-01 柯呈翰 於線上加上即時檔案動態標籤、加密之系統及方法
US9594644B2 (en) 2014-09-19 2017-03-14 Sybase, Inc. Converting a serial transaction schedule to a parallel transaction schedule
US9967334B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
US9967333B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Deferred configuration or instruction execution using a secure distributed transaction ledger
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
EP3394818A4 (en) 2015-12-21 2019-08-14 Kochava Inc. AUTOREGULATING TRANSACTION SYSTEM AND ASSOCIATED METHODS
US10255108B2 (en) 2016-01-26 2019-04-09 International Business Machines Corporation Parallel execution of blockchain transactions
US10108812B2 (en) 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
GB2604540B (en) 2016-02-03 2023-01-11 Luther Systems System and method for secure management of digital contracts
WO2017134281A1 (en) 2016-02-04 2017-08-10 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computer systems
US10129238B2 (en) 2016-02-10 2018-11-13 Bank Of America Corporation System for control of secure access and communication with different process data networks with separate security features
US10142312B2 (en) 2016-02-22 2018-11-27 Bank Of America Corporation System for establishing secure access for users in a process data network
US20170264428A1 (en) 2016-03-08 2017-09-14 Manifold Technology, Inc. Data storage system with blockchain technology
WO2017173399A1 (en) 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法
CA3019642C (en) 2016-04-01 2023-03-07 Jpmorgan Chase Bank, N.A. Systems and methods for providing data privacy in a private distributed ledger
GB201607476D0 (en) 2016-04-29 2016-06-15 Eitc Holdings Ltd Operating system for blockchain IOT devices
EP3455996A4 (en) 2016-05-09 2020-01-22 Nokia Technologies Oy BLOCK CHAIN-BASED RESOURCE MANAGEMENT
GB201611698D0 (en) 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
EP3472779A4 (en) 2016-07-14 2020-01-08 Digital Asset Holdings, LLC DIGITAL ASSETS PLATFORM
CN106330431A (zh) 2016-08-29 2017-01-11 北京瑞卓喜投科技发展有限公司 基于区块链技术的数据处理方法、装置及系统
CN106406896B (zh) * 2016-09-27 2020-03-17 北京天德科技有限公司 一种并行PipeLine技术的区块链建块方法
CN106682984B (zh) * 2016-10-27 2019-09-10 深圳壹账通智能科技有限公司 基于区块链的交易事务处理方法及系统
CN108427601A (zh) * 2017-02-13 2018-08-21 北京航空航天大学 一种私有链节点的集群交易处理方法
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法

Also Published As

Publication number Publication date
TWI660281B (zh) 2019-05-21
JP6928104B2 (ja) 2021-09-01
RU2744585C2 (ru) 2021-03-11
US10642643B2 (en) 2020-05-05
EP3561700A1 (en) 2019-10-30
MY197445A (en) 2023-06-19
US10664305B1 (en) 2020-05-26
TW201833796A (zh) 2018-09-16
AU2018228540B2 (en) 2020-09-03
CA3054813C (en) 2021-04-20
KR102103130B1 (ko) 2020-04-22
CN106980649A (zh) 2017-07-25
MX2019009728A (es) 2019-10-22
AU2019101606A4 (en) 2020-01-23
AU2018228540A1 (en) 2019-08-22
SG11201907212SA (en) 2019-09-27
RU2019124224A3 (pt) 2021-02-01
JP2020509495A (ja) 2020-03-26
US20200150999A1 (en) 2020-05-14
WO2018157778A1 (zh) 2018-09-07
RU2019124224A (ru) 2021-02-01
KR20190099087A (ko) 2019-08-23
PH12019501795A1 (en) 2020-03-09
US20190361731A1 (en) 2019-11-28
CA3054813A1 (en) 2018-09-07
CN106980649B (zh) 2020-07-10
ZA201904916B (en) 2020-08-26
EP3561700A4 (en) 2020-01-15

Similar Documents

Publication Publication Date Title
BR112019017863A2 (pt) Método e aparelho para gravar dados de serviço em cadeia de blocos e método para determinar subconjunto de serviços
US20210099285A1 (en) Data storage, data check, and data linkage method and apparatus
JP6940615B2 (ja) データ処理方法およびデバイス
US9811684B1 (en) Token-based storage service
US11626972B2 (en) Data processing method and apparatus
CN105718455B (zh) 一种数据查询方法及装置
CN108846749B (zh) 一种基于区块链技术的分片化的交易执行系统及方法
CN109669709A (zh) 一种区块链升级的数据迁移方法及数据迁移系统
CN109032803B (zh) 数据处理方法和装置、客户端
CN107085570A (zh) 数据处理方法、应用服务器和路由器
CN109145053B (zh) 数据处理方法和装置、客户端、服务器
CN109460406A (zh) 一种数据处理方法及装置
WO2024000897A1 (zh) 一种基于区块链的数字资产合成方法及装置
CN111522873B (zh) 区块生成方法、装置、计算机设备和存储介质
CN104598567A (zh) 一种基于Hadoop MapReduce编程框架的数据统计排重的方法
CN109032804B (zh) 数据处理方法和装置、服务器
CN114172895A (zh) 一种路由方法、装置、计算机设备及存储介质
CN108351797B (zh) 用于控制与中间目录相关联的重解析行为的方法和系统
CN107085501B (zh) 一种数据存储、数据迁移方法及装置
US20240078222A1 (en) Selective Addition of Datum to a Tree Data Structure
CN116881361A (zh) 交易的执行方法、节点和区块链系统
CN115525443A (zh) 一种数据存储方法以及相关设备
CN116243964A (zh) 一种变更需求的可行性的确定方法及装置

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)

B350 Update of information on the portal [chapter 15.35 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 6A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: REFERENTE AO DESPACHO 8.6 PUBLICADO NA RPI 2763 DE 19/12/2023.