ES2809204T3 - Método y aparato de procesamiento de datos en cadena de bloques - Google Patents

Método y aparato de procesamiento de datos en cadena de bloques Download PDF

Info

Publication number
ES2809204T3
ES2809204T3 ES18733987T ES18733987T ES2809204T3 ES 2809204 T3 ES2809204 T3 ES 2809204T3 ES 18733987 T ES18733987 T ES 18733987T ES 18733987 T ES18733987 T ES 18733987T ES 2809204 T3 ES2809204 T3 ES 2809204T3
Authority
ES
Spain
Prior art keywords
preprocessing block
consensus
ready
parameter
validation
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES18733987T
Other languages
English (en)
Inventor
Shifeng Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Application granted granted Critical
Publication of ES2809204T3 publication Critical patent/ES2809204T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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]
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Advance Control (AREA)
  • Detergent Compositions (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

Un método de procesamiento de datos realizado por un nodo de la cadena de bloques que comprende un primer hilo de ejecución y un segundo hilo de ejecución, estando el nodo de la cadena de bloques configurado para utilizar el primer hilo de ejecución para realizar un procesamiento de consenso sobre bloques de preprocesamiento listos para la validación y el segundo hilo de ejecución para realizar un procesamiento de datos sobre bloques de preprocesamiento validados, comprendiendo el método: preconfigurar un procesador para realizar una operación implicada en una etapa de presentación de servicios; obtener (S101) un bloque de preprocesamiento listo para la validación; validar (S101), utilizando el primer hilo de ejecución, el bloque de preprocesamiento durante una etapa de consenso de servicios; si se determina que el bloque de preprocesamiento está validado, comenzar (S102) a validar, utilizando el primer hilo de ejecución, un siguiente bloque de preprocesamiento listo para la validación; y realizar (S102), utilizando el segundo hilo de ejecución en paralelo con la etapa de consenso de servicios, el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado durante la etapa de presentación de servicios.

Description

DESCRIPCIÓN
Método y aparato de procesamiento de datos en cadena de bloques
Campo técnico
La presente solicitud se refiere al campo de las tecnologías informáticas y, en particular, a un método y un aparato de procesamiento de datos.
Antecedentes
Con el continuo desarrollo de las tecnologías informáticas, se ha ampliado el ámbito de aplicación de las tecnologías de cadena de bloques. Actualmente, muchos modelos de servicios se han vuelto más eficaces y seguros debido a la introducción de las tecnologías de cadena de bloques, de forma que prestan un servicio más eficaz a los usuarios.
En las aplicaciones prácticas, los procesos de ejecución de servicios relacionados con las tecnologías de cadena de bloques se pueden dividir a grandes rasgos en tres procesos:
1. Etapa de tratamiento de servicios: En esta etapa, un nodo de la cadena de bloques puede recibir datos de servicio listos para ser procesados (que también se pueden denominar datos de transacción) enviados por un usuario mediante un terminal o un cliente, y almacenar los datos de servicio después de verificar los datos de servicio. Ciertamente, en esta etapa, el nodo de la cadena de bloques también puede recibir datos de servicio listos para ser procesados que son transmitidos por otro nodo de la cadena de bloques, y almacenar los datos de servicio de la manera registrada anteriormente.
2. Etapa de consenso de servicios: En esta etapa, si el nodo de la cadena de bloques se utiliza como nodo maestro que inicia el consenso, el nodo de la cadena de bloques puede obtener una parte de los datos de servicio a partir de los datos de servicio almacenados, empaquetar la parte de los datos de servicio en un bloque de preprocesamiento y transmitir el bloque de preprocesamiento al otro nodo de la cadena de bloques, de forma que valide el bloque de preprocesamiento. Después de recibir el bloque de preprocesamiento, el otro nodo de la cadena de bloques en una red de consenso puede realizar una verificación de consenso sobre los datos de servicio en el bloque de preprocesamiento en función de los datos de servicio almacenados. Ciertamente, si el nodo de la cadena de bloques no es un nodo maestro, el nodo de la cadena de bloques puede recibir un bloque de preprocesamiento que es transmitido por el nodo maestro, y realizar la verificación de consenso sobre una solicitud de servicio en el bloque de preprocesamiento utilizando una solicitud de servicio almacenada en una memoria del nodo de la cadena de bloques.
3. Etapa de presentación de servicios: En esta etapa, después de determinar que el bloque de preprocesamiento procesado en la etapa de consenso de servicios está validado, el nodo de la cadena de bloques puede almacenar los datos de servicio del bloque de preprocesamiento en una cadena de bloques. Además, el nodo de la cadena de bloques puede almacenar los datos de servicio en una base de datos determinada y liberar los datos de servicio del bloque de preprocesamiento del espacio de almacenamiento del nodo de la cadena de bloques.
En la tecnología existente, para una misma parte de los datos de servicio, el nodo de la cadena de bloques normalmente debe completar primero la etapa de consenso de servicios antes de entrar en la etapa de presentación de servicios, y el nodo de la cadena de bloques puede validar un siguiente bloque de preprocesamiento listo para la validación sólo después de completar la etapa de presentación de servicios.
Sin embargo, en la tecnología existente, la etapa de consenso de servicios y la etapa de presentación de servicios en un proceso de procesamiento de datos de servicio se realizan en serie. El nodo de la cadena de bloques puede iniciar una etapa de consenso de servicios del siguiente procesamiento de datos de servicio después de completar una etapa de presentación de servicios del procesamiento de datos de servicio actual. Como resultado, el intervalo de tiempo entre el procesamiento de datos de servicio aumenta inevitablemente y se reduce la eficiencia del procesamiento de servicio de un sistema completo.
El documento US 2017/149819 A1 describe el procesamiento en una cadena de bloques que es capaz de ser paralelizada o implementada de una manera multihilo. De manera similar, el documento US 2017/083860 A1 describe el procesamiento en cadena de bloques que es adecuado para la paralelización.
Resumen
La forma de realización de la presente solicitud proporciona un método de procesamiento de datos, de forma que resuelva el problema actual de la baja eficiencia del procesamiento de servicios en las tecnologías de cadena de bloques.
Una forma de realización de la presente solicitud proporciona un método de procesamiento de datos que incluye: obtener, mediante un nodo de la cadena de bloques, un bloque de preprocesamiento listo para la validación, y validar el bloque de preprocesamiento; y si se determina que el bloque de preprocesamiento está validado, comenzar a validar un siguiente bloque de preprocesamiento listo para la validación, y realizar el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado en paralelo.
Una forma de realización de la presente solicitud proporciona un aparato de procesamiento de datos, de forma que resuelva el problema actual de la eficiencia relativamente baja del consenso de servicios.
Una forma de realización de la presente solicitud proporciona un aparato de procesamiento de datos que incluye: un módulo de adquisición, configurado para obtener un bloque de preprocesamiento listo para la validación y validar el bloque de preprocesamiento; y un módulo de procesamiento, configurado para: si se determina que el bloque de preprocesamiento está validado, comenzar a validar un siguiente bloque de preprocesamiento listo para la validación y realizar el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado en paralelo.
Una forma de realización de la presente solicitud proporciona un aparato de procesamiento de datos, de forma que resuelva el problema actual de la eficiencia relativamente baja del consenso de servicios.
Una forma de realización de la presente solicitud proporciona un aparato de procesamiento de datos, que incluye una memoria y al menos un procesador, en el que la memoria almacena un programa, y el procesador o los procesadores se configuran para realizar las siguientes etapas: obtener un bloque de preprocesamiento listo para la validación y validar el bloque de preprocesamiento; y si se determina que el bloque de preprocesamiento está validado, comenzar a validar un siguiente bloque de preprocesamiento listo para la validación y comenzar a realizar el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado en paralelo.
Una o más de las soluciones técnicas descritas utilizadas en las formas de realización de la presente solicitud pueden lograr los siguientes efectos beneficiosos:
En las formas de realización de la presente solicitud, después de determinar que el bloque de preprocesamiento obtenido está validado, el nodo de la cadena de bloques comienza a validar el siguiente bloque de preprocesamiento listo para la validación mediante procesamiento en paralelo, y realiza un procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado. Es decir, el nodo de la cadena de bloques implementa el procesamiento de datos de servicio en paralelo en una etapa de consenso de servicios y una etapa de presentación de servicios. El nodo de la cadena de bloques no sólo puede realizar el procesamiento de datos de una parte de los datos de servicio en la etapa de presentación de servicios, sino que también realiza el procesamiento de consenso de la otra parte de los datos de servicio en la etapa de consenso de servicios. Por consiguiente, se puede acortar un intervalo de tiempo entre procesamientos de consenso en la etapa de consenso de servicios, de forma que se mejora eficazmente la eficiencia del procesamiento de datos de servicio de un sistema.
Breve descripción de los dibujos
Los dibujos descritos en este caso se utilizan para comprender mejor la presente solicitud y constituyen una parte de la presente solicitud. Las formas de realización esquemáticas de la presente solicitud y las descripciones que se utilizan para explicar la presente solicitud, no constituyen una limitación inadecuada de la presente solicitud. En los dibujos:
La FIG 1 es un diagrama esquemático que ilustra un proceso de procesamiento de datos, de acuerdo con una forma de realización de la presente solicitud;
La FIG 2 es un diagrama esquemático que ilustra el procesamiento de datos realizado por un nodo de la cadena de bloques, de acuerdo con una forma de realización de la presente solicitud;
La FIG 3 es un diagrama esquemático que ilustra un aparato de procesamiento de datos, de acuerdo con una forma de realización de la presente solicitud; y
La FIG. 4 es un diagrama de flujo que ilustra un ejemplo de un método implementado por ordenador para mejorar la eficiencia de procesamiento de las tecnologías de cadena de bloques utilizando el procesamiento de datos de servicio en paralelo, de acuerdo con una implementación de la presente descripción.
Descripción de las formas de realización
Para que un experto en la técnica comprenda mejor las soluciones técnicas de la presente solicitud, a continuación, se describen de forma clara y completa las soluciones técnicas de las formas de realización de la presente solicitud con referencia a los dibujos adjuntos de la presente solicitud. Aparentemente, las formas de realización descritas son simplemente una parte más que todas las formas de realización de la presente solicitud. Todas las demás formas de realización obtenidas por un experto en la técnica en función de las formas de realización de la presente solicitud sin esfuerzos creativos entrarán dentro del ámbito de protección de la presente solicitud.
La FIG 1 es un diagrama esquemático que ilustra un proceso de procesamiento de datos, de acuerdo con una forma de realización de la presente solicitud; El proceso de procesamiento de datos incluye las siguientes etapas.
5101. Un nodo de la cadena de bloques obtiene un bloque de preprocesamiento listo para la validación, y valida el bloque de preprocesamiento.
En esta forma de realización de la presente solicitud, el nodo de la cadena de bloques puede obtener, en una etapa de consenso de servicios, un bloque de preprocesamiento en la actual ronda de consenso (en este caso, un bloque de preprocesamiento obtenido actualmente se denomina bloque de preprocesamiento obtenido en el consenso actual). El bloque de preprocesamiento se puede generar por el nodo de la cadena de bloques en función de los datos de servicio almacenados por el nodo de la cadena de bloques, o se puede obtener de otro nodo de la cadena de bloques.
5102. Si se determina que el bloque de preprocesamiento está validado, comienza a validar un siguiente bloque de preprocesamiento listo para la validación, y realiza el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado en paralelo.
Después de determinar que la verificación por consenso de un bloque de preprocesamiento listo para la validación actual tiene éxito, el nodo de la cadena de bloques descrito puede realizar, por medio de un procesamiento en paralelo, el procesamiento de datos en una etapa de presentación de servicios en el bloque de preprocesamiento validado. Por consiguiente, cuando el procesamiento de consenso en la etapa de consenso de servicios se realiza en un siguiente bloque de preprocesamiento, el procesamiento de datos en la etapa de presentación de servicios se puede realizar de forma eficaz y sincronizada sobre el bloque de preprocesamiento validado.
Se puede observar que, en esta forma de realización de la presente solicitud y en el proceso de procesamiento de datos de servicio, un nodo de consenso de servicio realiza de forma sincronizada el procesamiento de consenso en la etapa de consenso de servicios y el procesamiento de datos en la etapa de presentación de servicios. Es decir, se supone que hay al menos dos bloques de preprocesamiento listos para la validación. Por consiguiente, en función de las soluciones técnicas proporcionadas en la presente solicitud, cuando el procesamiento de datos se realiza en un bloque de preprocesamiento validado en la etapa de presentación de servicios, el procesamiento de consenso se puede realizar de forma sincronizada en un bloque de preprocesamiento con consenso fallido en la etapa de consenso de servicios.
Se debe señalar que, para el bloque de preprocesamiento listo para la validación actual, se determina que cuando se realiza el procesamiento de consenso en el bloque de preprocesamiento listo para la validación actual. El procesamiento de consenso comienza a realizarse en el siguiente bloque de preprocesamiento listo para la validación, y se obtienen los parámetros de procesamiento de un bloque de preprocesamiento validado actual. Por consiguiente, un procesador (que se puede denominar posteriormente como procesador predeterminado) configurado para aplicar el procesamiento de datos en una etapa de presentación de servicios en un proceso de procesamiento de datos de servicio realiza, en función de los parámetros de procesamiento, el procesamiento de datos en el bloque de preprocesamiento validado actual.
Por ejemplo, al comenzar a realizar el procesamiento de consenso en el siguiente bloque de preprocesamiento listo para la validación, el procesador predeterminado realiza, en función de un parámetro de procesamiento generado, el procesamiento de datos en el bloque de preprocesamiento validado actual. En este caso, se puede entender que el procesamiento de consenso y el procesamiento de datos se realizan respectivamente en el siguiente bloque de preprocesamiento listo para la validación y en el actual bloque de preprocesamiento validado en paralelo, de modo que se acorta de forma efectiva un intervalo de tiempo entre el procesamiento de consenso realizado en el actual bloque de preprocesamiento listo para la validación y el procesamiento de consenso realizado en el siguiente bloque de preprocesamiento listo para la validación.
En otro ejemplo, al comenzar a realizar el procesamiento de consenso en el siguiente bloque de preprocesamiento listo para la validación, el procesador predeterminado realiza el procesamiento de datos en el bloque de preprocesamiento validado actual, y a continuación almacena el bloque de preprocesamiento validado actual en una cola predeterminada para la espera. El procesador predeterminado realiza sucesivamente, en función de una regla (por ejemplo, en función de una secuencia de tiempo de finalización de consenso), el procesamiento de datos en los bloques de preprocesamiento validados almacenados en la cola. En este caso, se puede entender que el procesamiento de consenso del bloque de preprocesamiento listo para la validación actual y el procesamiento de datos del bloque de preprocesamiento se completan de forma sincronizada.
Por ejemplo, se supone que hay tres bloques de preprocesamiento: A, B y C, y los tres bloques de preprocesamiento se envían sucesivamente al nodo de la cadena de bloques en una secuencia alfabética para lograr el consenso.
Después de determinar que un bloque de preprocesamiento A está validado, el nodo de la cadena de bloques puede realizar el procesamiento de datos en el bloque de preprocesamiento A utilizando el procesador predeterminado. Además, el nodo de la cadena de bloques puede validar un bloque de preprocesamiento B. Después de determinar que el bloque de preprocesamiento B está validado y encontrar que el procesamiento de datos realizado en el bloque de preprocesamiento A no se completa, el nodo de la cadena de bloques puede almacenar el bloque de preprocesamiento B validado en una cola predeterminada para esperar, y continuar validando un bloque de preprocesamiento C. Cuando se determina que el procesamiento de datos realizado en el bloque de preprocesamiento A se completa, el nodo de la cadena de bloques puede extraer el bloque de preprocesamiento B a partir de la cola predeterminada, de forma que se realice el procesamiento de datos sobre el bloque de preprocesamiento B utilizando el procesador predeterminado.
Por consiguiente, para cada bloque de preprocesamiento, el procesamiento de consenso y el procesamiento de datos del bloque de preprocesamiento se completan de forma sincronizada. Para los diferentes bloques de preprocesamiento, el procesamiento de consenso de un bloque de preprocesamiento y el procesamiento de datos de otro bloque de preprocesamiento validado se pueden realizar de forma sincronizada.
Después de que el nodo de la cadena de bloques determina que la verificación de consenso del bloque de preprocesamiento listo para la validación actual tiene éxito, esta forma de realización de la presente solicitud incluye, pero no se limita a, la realización de los dos tipos de operaciones siguientes:
1. Operación de primer tipo: Determinar un parámetro de procesamiento correspondiente al bloque de preprocesamiento validado actual. El parámetro de procesamiento incluye un parámetro utilizado para procesar los datos de servicio en el bloque de preprocesamiento, de modo que el procesador predeterminado pueda procesar el bloque de preprocesamiento en función del parámetro de procesamiento, completando de este modo una operación conexa en la etapa de presentación de servicios. A continuación, se describe en detalle la operación de primer tipo.
El parámetro de procesamiento puede incluir, pero no se limita a, un parámetro de almacenamiento, un parámetro de liberación, un parámetro de eliminación y un parámetro de co-cadena. Sin embargo, lo anterior no es más que un simple ejemplo utilizado para describir algunos parámetros del parámetro de procesamiento. En la aplicación práctica, el parámetro de procesamiento puede incluir además otros parámetros, y esto se puede determinar en función de una operación específica realizada por el nodo de la cadena de bloques en la etapa de presentación de servicios.
Por ejemplo, el parámetro de liberación se utiliza para dar instrucciones para liberar un bloque de preprocesamiento validado del espacio de almacenamiento.
El parámetro de almacenamiento se utiliza para dar instrucciones para almacenar los datos de servicio de un bloque de preprocesamiento validado en una ubicación determinada. Se determinan diferentes parámetros de almacenamiento para diferentes bloques de preprocesamiento. El parámetro de almacenamiento incluye una ubicación de almacenamiento.
Se dan instrucciones al parámetro de eliminación para suprimir un mensaje (por ejemplo, un mensaje de prepreparación, un mensaje de preparación y un mensaje de acuse de recibo en el consenso PBFT) generado por un bloque de preprocesamiento validado en una etapa de consenso de servicios para reducir la presión de almacenamiento.
El parámetro de co-cadena se utiliza para dar instrucciones para co-cadenar, en una forma de bloque en función de un hash de encabezamiento de un bloque anterior en un bloque de preprocesamiento, el bloque de preprocesamiento a una cadena de bloques en la que se encuentra el bloque anterior.
Preferiblemente, en esta forma de realización de la presente solicitud, al validar el siguiente bloque de preprocesamiento listo para la validación adyacente, el nodo de la cadena de bloques puede seguir procesando los datos de servicio en el bloque de preprocesamiento validado actual en paralelo utilizando el procesador predeterminado.
Se supone que en la tecnología existente se puede entender que el nodo de la cadena de bloques completa una etapa de consenso de servicios y una etapa de presentación de servicios en un proceso de procesamiento de datos de servicio utilizando un mismo hilo de ejecución. El nodo de la cadena de bloques debe completar primero la etapa de consenso de servicios en este proceso de procesamiento de datos de servicio utilizando el hilo de ejecución, y a continuación realiza la etapa de presentación de servicios en este proceso de procesamiento de datos de servicio utilizando el hilo de ejecución. Aparentemente, en la tecnología existente, el nodo de la cadena de bloques realiza la etapa de consenso de servicios y la etapa de presentación de servicios en el proceso de procesamiento de datos de servicio en serie. Como resultado, se aumenta un intervalo de tiempo entre el procesamiento de los datos de servicio adyacentes y se reduce la eficiencia del procesamiento de los datos de servicio.
Para resolver eficazmente el problema descrito, en esta forma de realización de la presente solicitud, el nodo de la cadena de bloques preconfigura un procesador (el procesador puede funcionar por medio de un procesamiento asíncrono, y no se impone en este caso ninguna limitación específica). El procesador se puede configurar para realizar una operación implicada en la etapa de presentación de servicios. Es decir, en esta forma de realización de la presente solicitud, el nodo de la cadena de bloques puede aplicar respectivamente el procesamiento de consenso en la etapa de consenso de servicios y el procesamiento de datos en la etapa de presentación de servicios en el proceso de procesamiento de datos de servicio utilizando dos hilos de ejecución. Un hilo de ejecución se utiliza para realizar el procesamiento de consenso en un bloque de preprocesamiento listo para la validación, y el otro hilo de ejecución se utiliza para realizar el procesamiento de datos en un bloque de preprocesamiento validado. Por consiguiente, para un mismo bloque de preprocesamiento, el procesamiento de consenso y el procesamiento de datos se completan de forma sincronizada.
De este modo, cuando el nodo de la cadena de bloques realiza, utilizando el procesador, la operación implicada en la etapa de presentación de servicios, el nodo de la cadena de bloques puede comenzar, sin verse afectado, a validar el siguiente bloque de preprocesamiento listo para la validación adyacente, es decir, comenzar a realizar el siguiente consenso, de forma que se acorta enormemente un intervalo de tiempo entre consensos adyacentes, mejorando de este modo la eficiencia del consenso.
En esta forma de realización de la presente solicitud, todos los parámetros de procesamiento determinados en el consenso actual se pueden obtener utilizando los parámetros de procesamiento determinados en el consenso anterior.
El parámetro de almacenamiento se utiliza como ejemplo para la descripción. Después de determinar que el bloque de preprocesamiento listo para la validación actual está validado, el nodo de la cadena de bloques puede determinar, en función de un parámetro de almacenamiento del bloque de preprocesamiento validado actual, un parámetro de almacenamiento de un siguiente bloque de preprocesamiento listo para la validación adyacente, y almacenar el parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente.
Por ejemplo, se supone que el parámetro de almacenamiento correspondiente al bloque de preprocesamiento validado actual (que también se puede entender como un parámetro de almacenamiento correspondiente al consenso actual) define que los datos de servicio en el bloque de preprocesamiento validado actual se deben almacenar en una tabla a en una base de datos de tipo relacional A. Por consiguiente, el nodo de la cadena de bloques puede determinar, en función de una secuencia alfabética de cada tabla en la base de datos de tipo relacional A, que el parámetro de almacenamiento correspondiente al siguiente bloque de preprocesamiento validado adyacente es: almacenar, en una tabla b en la base de datos de tipo relacional A, datos de servicio en un bloque de preprocesamiento cuyo consenso actual (es decir, el siguiente consenso adyacente mencionado anteriormente) tiene éxito.
El nodo de la cadena de bloques puede almacenar un determinado parámetro de almacenamiento del próximo consenso. Por consiguiente, cuando se determina que el siguiente bloque de preprocesamiento listo para la validación está validado, el procesador predeterminado puede determinar, en función del parámetro de almacenamiento obtenido, una tabla y una base de datos en la que se deben almacenar los datos de servicio del bloque de preprocesamiento validado.
Preferiblemente, en esta forma de realización de la presente solicitud, después de determinar que el bloque de preprocesamiento listo para la validación actual está validado, el nodo de la cadena de bloques también puede determinar, en función del bloque de preprocesamiento y el parámetro de almacenamiento del bloque de preprocesamiento, un parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente, y almacenar el parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente.
En concreto, si la ubicación de almacenamiento en el parámetro de almacenamiento existe en forma de un puntero base. Una ubicación señalada por el puntero base es una ubicación de almacenamiento de datos de servicio en un bloque de preprocesamiento. Después de determinar que el bloque de preprocesamiento listo para la validación actual está validado, el nodo de la cadena de bloques puede utilizar una ubicación actual del puntero base como punto de inicio, desplazar una ubicación del puntero base en función de un tamaño del bloque de preprocesamiento listo para la validación actual, y determinar que una nueva ubicación del puntero base es un parámetro de almacenamiento correspondiente al siguiente consenso, que es el parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente.
Por ejemplo, se supone que un parámetro de procesamiento de cada consenso incluye un parámetro de almacenamiento en forma de un puntero base. El puntero de base (es decir, el parámetro de almacenamiento) apunta a una ubicación de almacenamiento específica de los datos de servicio. Un valor inicial del puntero base se puede fijar en 0. Después de cada consenso, el nodo de la cadena de bloques puede determinar, en función de un tamaño de un bloque de preprocesamiento validado y un puntero base en un parámetro de procesamiento correspondiente al consenso actual, un valor específico del puntero base en un parámetro de procesamiento correspondiente al siguiente consenso adyacente. Durante el primer consenso, el nodo de la cadena de bloques determina que un bloque de preprocesamiento validado es de 1024 bytes, de modo que el nodo de la cadena de bloques puede determinar, en función del tamaño determinado del bloque de preprocesamiento y el valor inicial 0 del puntero base, que un puntero base en un parámetro de procesamiento correspondiente al segundo consenso es de 1024 bytes, y almacenar el puntero base. En consecuencia, en el segundo consenso, el nodo de la cadena de bloques puede almacenar, utilizando el procesador, los datos de servicio de un bloque de preprocesamiento validado en una ubicación de almacenamiento correspondiente al puntero base de 1024 bytes.
En el segundo consenso, el nodo de la cadena de bloques determina que el bloque de preprocesamiento validado es de 10 bytes, de modo que el nodo de la cadena de bloques puede determinar, en función del tamaño determinado del bloque de preprocesamiento validado y el puntero base de 1024 bytes en el parámetro de procesamiento correspondiente al consenso anterior (es decir, el primer consenso), que un puntero base en un parámetro de procesamiento correspondiente al tercer consenso es de 1034 bytes, y almacenar el puntero base. En consecuencia, en el tercer consenso, el nodo de la cadena de bloques puede almacenar, utilizando el procesador, los datos de servicio de un bloque de preprocesamiento validado en una ubicación de almacenamiento correspondiente al puntero base de 1034 bytes, y se puede deducir el consenso posterior.
Se debe observar que, en esta forma de realización de la presente solicitud, el parámetro de almacenamiento de los parámetros de procesamiento correspondientes al próximo consenso se puede determinar en función de un tamaño del bloque de preprocesamiento validado actual, además de otra información sobre el bloque de preprocesamiento. La información que se utilizará para determinar el parámetro de almacenamiento se puede determinar por un ingeniero de operación y mantenimiento del nodo de la cadena de bloques. Los detalles no se describen de forma repetida en este caso.
Se debe observar que, para diferentes parámetros de los parámetros de procesamiento, una operación realizada por el nodo de la cadena de bloques en la etapa de presentación de servicios determina si estos parámetros se deben modificar en consecuencia después de cada consenso. Por ejemplo, para el parámetro de almacenamiento descrito, como los datos de servicio en un bloque de preprocesamiento implicado en cada consenso no se pueden almacenar en una misma ubicación de almacenamiento, el parámetro de almacenamiento se debe modificar en consecuencia después de cada consenso. Para el parámetro de co-cadena descrito, independientemente del consenso relacionado con un bloque de preprocesamiento, todos los bloques de preprocesamiento se deben almacenar en una cadena de bloques en forma de bloque una vez que se logre el consenso en una red de consenso. Es decir, independientemente de un bloque de preprocesamiento, todos los procesadores deben realizar una operación de co-cadena sobre el bloque de preprocesamiento una vez que el bloque de preprocesamiento se valida. Por consiguiente, después de cada consenso, el parámetro de la co-cadena no se tiene que modificar en consecuencia. Para cada consenso, el parámetro de co-cadena puede ser constante.
Preferiblemente, en esta forma de realización de la presente solicitud, el nodo de la cadena de bloques puede almacenar el parámetro de procesamiento obtenido del próximo consenso en la cola predeterminada. Por ejemplo, un parámetro de almacenamiento de un bloque de preprocesamiento que se somete al siguiente consenso de servicio adyacente se almacena en la cola predeterminada.
De este modo, el procesador puede obtener el parámetro de procesamiento de la cola predeterminada (es decir, obtener el parámetro de procesamiento del bloque de preprocesamiento validado) para almacenar, en función del parámetro de almacenamiento de los parámetros de procesamiento, los datos de servicio en el bloque de preprocesamiento validado correspondiente al parámetro de almacenamiento.
La cola predeterminada mencionada en este caso puede ser una cola tipo primera entrada primera salida (FIFO), o puede ser una cola de otro tipo. No se impone ninguna limitación específica en este caso. El procesador puede obtener un parámetro de procesamiento almacenado en la cola FIFO y determinar, a partir del bloque de preprocesamiento validado almacenado en función del parámetro de almacenamiento de los parámetros de procesamiento, un bloque de preprocesamiento correspondiente al parámetro de almacenamiento, de forma que almacene los datos de servicio del bloque de preprocesamiento en función del parámetro de almacenamiento.
En concreto, el procesador puede obtener el parámetro de almacenamiento a partir de la cola FIFO descrita, y a continuación puede determinar adicionalmente un bloque de preprocesamiento listo para el proceso que corresponda al parámetro de almacenamiento. Por ejemplo, cuando se valida el bloque de preprocesamiento listo para la validación actual, el nodo de la cadena de bloques genera un parámetro de almacenamiento del bloque de preprocesamiento y determina una correspondencia entre el bloque de preprocesamiento y el parámetro de almacenamiento. Por consiguiente, el procesador puede determinar, en función de la correspondencia, el bloque de preprocesamiento listo para el proceso correspondiente al parámetro de almacenamiento. En otro ejemplo, cuando se valida el bloque de preprocesamiento listo para la validación actual, el nodo de la cadena de bloques genera un parámetro de almacenamiento del bloque de preprocesamiento, determina una primera vez que se genera el parámetro de almacenamiento, determina una segunda vez que se valida el bloque de preprocesamiento listo para la validación actual y establece una correspondencia entre la primera y la segunda vez. Por consiguiente, el procesador puede buscar, en función del tiempo de generación del parámetro de almacenamiento, un bloque de preprocesamiento correspondiente a un tiempo de finalización del procesamiento de consenso que satisfaga una condición determinada en el tiempo de generación. Se puede determinar que el bloque de preprocesamiento encontrado es el bloque de preprocesamiento listo para el proceso correspondiente al parámetro de almacenamiento. En otro ejemplo, el procesador obtiene, a partir de la cola FIFO, un parámetro de almacenamiento en la primera fila de una salida de la cola. Por consiguiente, el procesador busca un bloque de preprocesamiento validado con una ubicación de almacenamiento en la cabecera a partir del espacio de almacenamiento del nodo de la cadena de bloques, y determina que el bloque de preprocesamiento es un bloque de preprocesamiento correspondiente al parámetro de almacenamiento.
Después de determinar el bloque de preprocesamiento listo para el proceso correspondiente al parámetro de almacenamiento, el procesador puede almacenar, en función del parámetro de almacenamiento, los datos de servicio del bloque de preprocesamiento listo para el proceso en una ubicación de almacenamiento determinada por el parámetro de almacenamiento.
Se debe observar que, en esta forma de realización de la presente solicitud, además de utilizar la cola FIFO, el nodo de la cadena de bloques puede almacenar además cada parámetro de procesamiento utilizando otra cola, por ejemplo, una cola de doble terminación. Los detalles no se describen de forma repetida en este caso.
El procesador puede almacenar, en función del parámetro de almacenamiento en los parámetros de procesamiento obtenidos, los datos de servicio del bloque de preprocesamiento listo para el proceso correspondiente al parámetro de almacenamiento. Además, el procesador puede realizar además otra operación en el bloque de preprocesamiento listo para el proceso en función de otro parámetro de los parámetros de procesamiento.
Por ejemplo, el procesador puede liberar los datos de servicio en el bloque de preprocesamiento listo para el proceso a partir del espacio de almacenamiento en función del parámetro de liberación de los parámetros de procesamiento. En otro ejemplo, el procesador puede suprimir, en función del parámetro de eliminación en los parámetros de procesamiento obtenidos, un mensaje de prepreparación, un mensaje de preparación, un mensaje de acuse de recibo, etc., generado en la etapa de consenso de servicios en el consenso actual, de forma que ahorre el espacio de almacenamiento del nodo de la cadena de bloques. Ciertamente, el procesador puede realizar además otra operación en función de otro parámetro de los parámetros de procesamiento, y los detalles no se describen de forma repetida en este caso.
2. Funcionamiento de segundo tipo: Actualizar, en función de un parámetro de consenso correspondiente al consenso actual, un parámetro de consenso correspondiente al próximo consenso. Es decir, el nodo de la cadena de bloques puede determinar un parámetro de consenso correspondiente al bloque de preprocesamiento validado actual y obtener, en función del parámetro de consenso determinado, un parámetro de consenso correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente.
Se debe observar que, en esta forma de realización de la presente solicitud, después de determinar que la verificación por consenso de un bloque de preprocesamiento que necesita ser validada en la negación actual está validada, el nodo de la cadena de bloques debe obtener y almacenar, en función de un parámetro de procesamiento correspondiente al consenso actual, un parámetro de procesamiento correspondiente al siguiente consenso. Además, el nodo de la cadena de bloques puede actualizar adicionalmente, en función del parámetro de consenso correspondiente al consenso actual, el parámetro de consenso correspondiente al siguiente consenso. Es decir, el nodo de la cadena de bloques puede determinar el parámetro de consenso correspondiente al bloque de preprocesamiento validado actual y obtener, en función del parámetro de consenso determinado, el parámetro de consenso correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente.
El parámetro de consenso mencionado en este caso se puede entender como información de atributos correspondiente a un consenso único. Por ejemplo, el consenso PBFT se utiliza como un ejemplo para la descripción. En un proceso de consenso PBFT, el consenso único suele corresponder a un número de vista v, y el número de vista v se utiliza para identificar este consenso de manera única. En el consenso único, independientemente del nodo de la cadena de bloques de una red de consenso que se utilice como nodo maestro, un hash de encabezamiento de un bloque anterior en un bloque de preprocesamiento generado por el nodo de la cadena de bloques suele ser un hash de encabezamiento de un último bloque actual de la cadena de bloques. El número de vista v y el hash de encabezamiento del bloque anterior mencionado en este caso se pueden denominar parámetros de consenso correspondientes al consenso actual.
Ciertamente, además del número de vista v descrita y el hash de encabezamiento del bloque anterior, el parámetro de consenso puede incluir más información. Para las diferentes maneras de consenso, hay una diferencia específica en el contenido del parámetro de consenso. No se describen los detalles.
Después de determinar que la verificación del consenso del bloque de preprocesamiento listo para la validación actual tiene éxito, el nodo de la cadena de bloques puede determinar además el parámetro de consenso correspondiente al consenso actual para obtener un parámetro de consenso correspondiente al siguiente consenso mediante la actualización del parámetro de consenso, es decir, para obtener el parámetro de consenso correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente.
Se sigue utilizando como ejemplo la manera de consenso PBFT. Se supone que el parámetro de consenso correspondiente al consenso actual incluye el número de vista v y el hash de encabezamiento del bloque anterior. El número de vista v es 16, y el hash de encabezamiento del bloque anterior es 0929d9sldom23oix239xed. Después de determinar que la verificación del consenso del bloque de preprocesamiento listo para la validación actual tiene éxito, el nodo de la cadena de bloques puede actualizar el número de vista 16 a 17, y actualizar, a 679xx9a9a8dfa23389xx34 en función de un hash de encabezamiento del bloque de preprocesamiento de 679xx9a9a8dfa23389xx34, un hash de encabezamiento de un bloque para el siguiente consenso. De este modo, el parámetro de consenso correspondiente al siguiente consenso es: el número de vista v es 17, y el hash de encabezamiento del bloque anterior es 679xx9a9a8dfa23389xx34.
El nodo de la cadena de bloques puede obtener, en función del parámetro de consenso correspondiente al consenso actual, el parámetro de consenso correspondiente al siguiente consenso. De este modo, el nodo de la cadena de bloques puede comenzar, en función del parámetro de consenso obtenido correspondiente al siguiente consenso, a validar el siguiente bloque de preprocesamiento listo para la validación adyacente. El parámetro de consenso mencionado en este caso se puede almacenar en una memoria, se puede almacenar en una base de datos correspondiente al nodo de la cadena de bloques o, ciertamente, puede existir de manera variable global.
Se debe observar que, en esta forma de realización de la presente solicitud, el parámetro de consenso también se puede almacenar en la cola predeterminada correspondiente al parámetro de procesamiento. De este modo, un procesador configurado para realizar el procesamiento de consenso puede obtener un parámetro de consenso a partir de la cola predeterminada e iniciar un nuevo procesamiento de consenso en función del parámetro de consenso. Un procesador configurado para realizar el procesamiento de datos obtiene un parámetro de procesamiento a partir de la cola predeterminada, y comienza, en función del parámetro de procesamiento obtenido, a realizar el procesamiento de datos sobre los datos de servicio en un bloque de preprocesamiento correspondiente al parámetro de procesamiento.
Por ejemplo, se supone que el procesador obtiene, a partir de la cola FIFO, un parámetro de procesamiento y un parámetro de consenso correspondiente al parámetro de procesamiento, y el parámetro de consenso incluye el número de vista v. De este modo, el procesador puede determinar, a partir del espacio de almacenamiento del nodo de la cadena de bloques, un bloque de preprocesamiento listo para el proceso correspondiente al número de vista v, de forma que procese el bloque de preprocesamiento listo para el proceso en función del parámetro de procesamiento obtenido.
Ciertamente, en esta forma de realización de la presente solicitud, el parámetro de procesamiento no puede existir en la cola predeterminada descrita. Por ejemplo, el parámetro de procesamiento se puede almacenar en la memoria del nodo de la cadena de bloques, se puede almacenar en una base de datos correspondiente al nodo de la cadena de bloques o se puede almacenar en otra ubicación del nodo de la cadena de bloques. Los detalles no se describen de forma repetida en este caso.
Del método anterior se desprende que, después de determinar que el bloque de preprocesamiento obtenido está validado, el nodo de la cadena de bloques comienza a validar el siguiente bloque de preprocesamiento listo para la validación por medio de un procesamiento en paralelo, y procesa los datos de servicio en el bloque de preprocesamiento validado. Es decir, el nodo de la cadena de bloques implementa el procesamiento de datos de servicio en paralelo en una etapa de consenso de servicios y una etapa de presentación de servicios. El nodo de la cadena de bloques no sólo puede realizar el procesamiento de datos de una parte de los datos de servicio en la etapa de presentación de servicios, sino que también realiza el procesamiento de consenso de la otra parte de los datos de servicio en la etapa de consenso de servicios. Por consiguiente, se puede acortar un intervalo de tiempo entre procesamientos de consenso adyacentes en la etapa de consenso de servicios, de forma que se mejore eficazmente la eficiencia del procesamiento de datos de servicio de un sistema.
Según se muestra en la FIG 2, para describir con más detalle el método de procesamiento de datos mencionado en la presente solicitud, a continuación, se describen brevemente y en detalle todos los procesos implicados en el método de procesamiento de datos.
La FIG 2 es un diagrama esquemático que ilustra el procesamiento de datos realizado por un nodo de la cadena de bloques, de acuerdo con una forma de realización de la presente solicitud;
En una etapa de tratamiento de servicios, un usuario puede enviar datos de servicio a un nodo de la cadena de bloques utilizando un cliente instalado en un terminal, y el nodo de la cadena de bloques puede verificar los datos de servicio recibidos y almacenar los datos de servicio verificados en el espacio de almacenamiento correspondiente al nodo de la cadena de bloques.
En una etapa de consenso de servicios, el nodo de la cadena de bloques puede obtener un bloque de preprocesamiento listo para la validación actual. Si el nodo de la cadena de bloques se utiliza como un nodo maestro que inicia el consenso actual, el nodo de la cadena de bloques puede obtener una parte de los datos de servicio a partir de su espacio de almacenamiento y empaquetar la parte de los datos de servicio en un bloque de preprocesamiento. En esta situación, el nodo de la cadena de bloques obtiene un bloque de preprocesamiento que se debe validar en el consenso actual. Además, el nodo de la cadena de bloques debe transmitir el bloque de preprocesamiento a otro nodo de la cadena de bloques en una red de consenso, de modo que el otro nodo de la cadena de bloques realice la verificación de consenso en el bloque de preprocesamiento.
Si el nodo de la cadena de bloques no es un nodo maestro que inicia el consenso actual, el nodo de la cadena de bloques puede obtener, del nodo maestro que inicia el consenso actual, un bloque de preprocesamiento que se debe validar en este consenso de servicio, y a continuación realizar la verificación del consenso sobre el bloque de preprocesamiento.
Después de determinar que la verificación del consenso del bloque de preprocesamiento tiene éxito, el nodo de la cadena de bloques puede obtener, por medio de la actualización en función de un parámetro de consenso correspondiente al consenso actual (es decir, un parámetro de consenso correspondiente al bloque de preprocesamiento), un parámetro de consenso correspondiente al siguiente consenso (es decir, un parámetro de consenso correspondiente a un siguiente bloque de preprocesamiento listo para la validación adyacente), para realizar el siguiente consenso. Además, el nodo de la cadena de bloques puede obtener adicionalmente, en función del bloque de preprocesamiento y un parámetro de procesamiento correspondiente al consenso actual (es decir, un parámetro de procesamiento correspondiente a un bloque de preprocesamiento validado actual), un parámetro de procesamiento correspondiente al siguiente consenso (es decir, un parámetro de procesamiento correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente), y almacenar en una cola FIFO el parámetro de procesamiento obtenido correspondiente al siguiente consenso.
Al obtener el parámetro de consenso y el parámetro de procesamiento correspondiente al siguiente consenso adyacente, el nodo de la cadena de bloques puede comenzar a realizar una etapa de consenso de servicios en el siguiente consenso adyacente, es decir, comenzar a validar el siguiente bloque de preprocesamiento listo para la validación. Además, al comenzar a realizar la etapa de consenso de servicios en el siguiente consenso adyacente, el nodo de la cadena de bloques puede realizar una etapa de presentación de servicios en el consenso actual en paralelo utilizando un procesador.
Es decir, el nodo de la cadena de bloques envía una operación implicada en la etapa de presentación de servicios al procesador para que la complete, y el nodo de la cadena de bloques puede realizar el siguiente consenso adyacente, de forma que implemente el procesamiento en paralelo de una etapa de consenso de servicios y una etapa de presentación de servicios en un consenso único. Por consiguiente, se acorta el intervalo de tiempo entre consensos adyacentes, de forma que se mejora la eficiencia del consenso.
El procesador puede obtener, a partir de la cola FIFO, el parámetro de procesamiento correspondiente al consenso actual, y a continuación almacenar el bloque de preprocesamiento validado actual en una cadena de bloques en forma de bloque en función de un parámetro de co-cadena de los parámetros de procesamiento. El procesador puede liberar, en función de un parámetro de sí o no y un parámetro de almacenamiento de los parámetros de procesamiento, los datos de servicio del bloque de preprocesamiento a partir del espacio de almacenamiento de la cadena de bloques, y almacenar los datos de servicio liberados en una ubicación de almacenamiento correspondiente en función de una memoria descriptiva en el parámetro de almacenamiento. El procesador puede suprimir, en función de un parámetro de eliminación de este atributo de procesamiento, por ejemplo, un mensaje de prepreparación, un mensaje de preparación o un mensaje de acuse de recibo de consenso PBFT generado en la etapa de consenso de servicios, de forma que se ahorre el espacio de almacenamiento del nodo de la cadena de bloques.
Lo anterior es el método de procesamiento de datos proporcionado en una forma de realización de la presente solicitud. Según se muestra en la FIG. 3, en función de una misma idea, una forma de realización de la presente solicitud proporciona además un aparato de procesamiento de datos.
La FIG 3 es un diagrama esquemático que ilustra un aparato de procesamiento de datos, de acuerdo con una forma de realización de la presente solicitud. El aparato incluye: un módulo de adquisición 301, configurado para obtener un bloque de preprocesamiento listo para la validación y validar el bloque de preprocesamiento; y un módulo de procesamiento 302, configurado para: si se determina que el bloque de preprocesamiento está validado, comenzar a validar un siguiente bloque de preprocesamiento listo para la validación y realizar el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado en paralelo.
El módulo de procesamiento 302 realiza el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado en paralelo utilizando un procesador predeterminado.
Para el bloque de preprocesamiento validado, el módulo de procesamiento 302 realiza las siguientes operaciones: invocar a un procesador para obtener un parámetro de almacenamiento, en el que el parámetro de almacenamiento incluye una ubicación de almacenamiento; determinar, en función del parámetro de almacenamiento, un bloque de preprocesamiento listo para el proceso correspondiente al parámetro de almacenamiento; y almacenar en la ubicación de almacenamiento los datos de servicio del bloque de preprocesamiento listo para el proceso determinado.
Después de que se determine que el bloque de preprocesamiento está validado, el módulo de adquisición 301 determina, en función del bloque de preprocesamiento y el parámetro de almacenamiento del bloque de preprocesamiento, un parámetro de almacenamiento de un siguiente bloque de preprocesamiento listo para la validación adyacente, y almacena el parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente.
El módulo de adquisición 301 almacena los parámetros de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente en una cola tipo primera entrada primera salida (FIFO).
El módulo de procesamiento 302 invoca al procesador para obtener el parámetro de almacenamiento a partir de la cola FIFO.
Si se determina que el bloque de preprocesamiento está validado, el módulo de adquisición 301 determina un parámetro de consenso correspondiente al bloque de preprocesamiento y obtiene, en función del parámetro de consenso determinado correspondiente al bloque de preprocesamiento, un parámetro de consenso correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente, en el que el parámetro de consenso se utiliza para dar instrucciones a un nodo de la cadena de bloques para que valide el bloque de preprocesamiento listo para la validación.
Cuando se obtiene el parámetro de consenso correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente, el módulo de procesamiento 302 comienza, en función del parámetro de consenso obtenido, a validar el siguiente bloque de preprocesamiento listo para la validación adyacente.
En función de la misma idea, una forma de realización de la presente solicitud proporciona además otro aparato de procesamiento de datos. El aparato incluye en concreto: una memoria y al menos un procesador, en el que la memoria almacena un programa, y el al menos un procesador se configura para realizar las siguientes etapas: obtener un bloque de preprocesamiento listo para la validación, y validar el bloque de preprocesamiento; y si se determina que el bloque de preprocesamiento está validado, comenzar a validar un siguiente bloque de preprocesamiento listo para la validación, y realizar el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado en paralelo.
Para una operación específica realizada por el procesador utilizando el programa almacenado en la memoria, se puede hacer referencia al contenido registrado en la forma de realización descrita. Los detalles no se repiten en este caso
En la forma de realización de la presente solicitud, después de determinar que el bloque de preprocesamiento obtenido está validado, el nodo de la cadena de bloques puede comenzar a validar el siguiente bloque de preprocesamiento listo para la validación, de forma que realice en paralelo el procesamiento de los datos de servicio en el bloque de preprocesamiento validado. Después de determinar que el bloque de preprocesamiento obtenido está validado, el nodo de la cadena de bloques comienza a validar el siguiente bloque de preprocesamiento listo para la validación por medio de un procesamiento en paralelo, y procesa los datos de servicio en el bloque de preprocesamiento validado. Es decir, el nodo de la cadena de bloques implementa el procesamiento de datos de servicio en paralelo en una etapa de consenso de servicios y una etapa de presentación de servicios. El nodo de la cadena de bloques no sólo puede realizar el procesamiento de datos de una parte de los datos de servicio en la etapa de presentación de servicios, sino que también realiza el procesamiento de consenso de la otra parte de los datos de servicio en la etapa de consenso de servicios. Por consiguiente, se puede acortar un intervalo de tiempo entre procesamientos de consenso en la etapa de consenso de servicios, de forma que se mejora eficazmente la eficiencia del procesamiento de datos de servicio de un sistema.
En el decenio de 1990 se puede distinguir claramente si la mejora de la tecnología es una mejora de hardware (por ejemplo, la mejora de la estructura de un circuito, tal como un diodo, un transistor o un conmutador) o una mejora de software (la mejora de un método de procedimiento). Sin embargo, a medida que las tecnologías se desarrollan, la mejora de muchos procedimientos de métodos actuales se puede considerar como una mejora directa de la estructura de un circuito de hardware. Un diseñador suele programar un procedimiento de método mejorado a un circuito de hardware para obtener una estructura de circuito de hardware correspondiente. Por consiguiente, un módulo de entidad de hardware puede mejorar un procedimiento de método. Por ejemplo, un dispositivo lógico programable (PLD) (por ejemplo, una matriz de puertas programables en campo (FPGA)) es un circuito integrado de este tipo, y una función lógica del dispositivo lógico programable se determina por un usuario mediante la programación del dispositivo. El diseñador realiza la programación para "integrar" un sistema digital a un PLD sin solicitar al fabricante del chip que diseñe y produzca un chip de circuito integrado de aplicación específica. Además, la programación se lleva a cabo principalmente modificando el software del "compilador lógico" en lugar de fabricar manualmente un chip de circuito integrado. Esto es similar a un compilador de software utilizado para desarrollar y componer un programa. Sin embargo, el código original obtenido antes de la compilación también se escribe en un lenguaje de programación específico, y este se denomina lenguaje de descripción de hardware (HDL). Sin embargo, existen varios HDL, tal como un ABEL (Lenguaje de expresión booleana avanzado), un AHDL (Lenguaje de descripción de hardware Altera), Confluence, un CUPL (Lenguaje de programación de la Universidad de Cornell), HDCal, un JHDL (Lenguaje de descripción de hardware Java), Lava, Lola, MyHDL, PALASM, y un RHDL (Lenguaje de descripción de hardware Ruby). Actualmente, un VHDL (Lenguaje de descripción de hardware de circuitos integrados de muy alta velocidad) y Verilog son los más populares.
Un experto en la técnica también debería entender que, la programación lógica sólo se debe realizar en el procedimiento del método utilizando los varios lenguajes de descripción de hardware descritos, y los varios lenguajes de descripción de hardware se programan en un circuito integrado, de modo que se puede obtener fácilmente un circuito de hardware que implemente el procedimiento del método lógico.
Un controlador se puede implementar de cualquier manera apropiada. Por ejemplo, el controlador puede utilizar un microprocesador o un procesador, y puede almacenar formas de un medio legible por ordenador, una puerta lógica, un conmutador, un circuito integrado de aplicación específica (ASIC), un controlador lógico programable y un microcontrolador incorporado que sean de código de programa legible por ordenador (por ejemplo, software o hardware) que se pueda ejecutar por el procesador (micro). Los ejemplos de controlador incluyen, pero no se limitan a, los siguientes microcontroladores: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, o Silicone Labs C8051F320. También se puede implementar un controlador de memoria como una parte de la lógica de control de la memoria. Un experto en la técnica también sabe que, además de implementar el controlador de una manera pura de código de programa legible por ordenador, la programación lógica se puede realizar completamente utilizando la etapa del método, de modo que el controlador implemente una misma función en forma de una puerta lógica, un conmutador, un circuito integrado de aplicación específica, un controlador lógico programable, un microcontrolador incorporado, etc. Por consiguiente, el controlador se puede considerar como un componente de hardware, y un aparato para implementar diversas funciones en el controlador también se puede considerar como una estructura en un componente de hardware. Como alternativa, un aparato configurado para implementar varias funciones se puede considerar como un módulo de software o una estructura en un componente de hardware que puede implementar el método.
El sistema, aparato, módulo o unidad descritos en las formas de realización descritas se pueden implementar en concreto mediante un chip de cálculo o una entidad, o implementar mediante un producto con una función. Un dispositivo de implementación típico es un ordenador. En concreto, el ordenador puede ser, por ejemplo, un ordenador personal, un ordenador portátil, un teléfono celular, un teléfono con cámara, un teléfono inteligente, un asistente digital personal, un reproductor multimedia, un dispositivo de navegación, un dispositivo de correo electrónico, una consola de juegos, un ordenador tableta o un dispositivo para llevar puesto, o una combinación de cualquiera de estos dispositivos.
Para facilitar la descripción, el aparato descrito se describe dividiendo las funciones en varias unidades. Ciertamente, cuando se implementa la presente solicitud, las funciones de cada unidad se pueden implementar en una o más piezas de software y/o hardware.
Un experto en la técnica debe entender que las formas de realización de la presente invención se pueden proporcionar como un método, un sistema o un producto de programa informático. Por consiguiente, la presente invención puede utilizar una forma de formas de realización sólo de hardware, formas de realización sólo de software, o formas de realización con una combinación de software y hardware. Además, la presente invención puede utilizar una forma de producto de programa informático que se implementa en uno o más medios de almacenamiento utilizables en ordenador (incluyendo, pero no limitado a una memoria de disco, un CD-ROM, una memoria óptica, etc.) que incluyen un código de programa utilizable en ordenador.
La presente invención se describe con referencia a los diagramas de flujo y/o diagramas de bloques del método, el dispositivo (sistema), y el producto de programa informático de acuerdo con las formas de realización de la presente invención. Se debe entender que las instrucciones de programa informático se pueden utilizar para implementar cada proceso y/o cada bloque de los diagramas de flujo y/o los diagramas de bloques y una combinación de un proceso y/o un bloque en los diagramas de flujo y/o los diagramas de bloques. Estas instrucciones de programa informático se pueden proporcionar para que un ordenador de propósito general, un ordenador dedicado, un procesador incorporado o un procesador de cualquier otro dispositivo de procesamiento de datos programable para generar una máquina, de modo que las instrucciones ejecutadas por un ordenador o un procesador de cualquier otro dispositivo de procesamiento de datos programable generen un aparato para implementar una función específica en uno o más procesos de los diagramas de flujo o en uno o más bloques de los diagramas de bloques.
Estas instrucciones de programa informático se pueden almacenar en una memoria legible por ordenador que puede dar instrucciones al ordenador o a cualquier otro dispositivo programable de procesamiento de datos para que funcione de una manera específica, de modo que las instrucciones almacenadas en la memoria legible por ordenador generen un artefacto que incluya un aparato de instrucción. El aparato de instrucción implementa una función específica en uno o más procesos de los diagramas de flujo y/o en uno o más bloques de los diagramas de bloques.
Estas instrucciones de programa informático se pueden cargar en un ordenador o en otro dispositivo programable de procesamiento de datos, de modo que se realicen una serie de operaciones y etapas en el ordenador o el otro dispositivo programable, generando de este modo un procesamiento implementado por ordenador. Por consiguiente, las instrucciones ejecutadas en el ordenador o el otro dispositivo programable proporcionan etapas para implementar una función específica en uno o más procesos de los diagramas de flujo o en uno o más bloques de los diagramas de bloques.
En una configuración típica, el dispositivo informático incluye uno o más procesadores (CPU), una interfaz de entrada/salida, una interfaz de red y una memoria.
La memoria puede incluir una forma de una memoria volátil, una memoria de acceso aleatorio (RAM) y/o una memoria no volátil, etc., en un medio legible por ordenador, tal como una memoria de sólo lectura (ROM) o una memoria flash (RAM flash). La memoria es un ejemplo de medio legible por ordenador.
El medio legible por ordenador incluye medios volátiles y no volátiles, extraíbles y no extraíbles, y puede almacenar información utilizando cualquier método o tecnología. La información puede ser una instrucción legible por ordenador, una estructura de datos, un módulo de programa u otros datos. Un medio de almacenamiento informático incluye, pero no se limita a, una memoria de acceso aleatorio de parámetros (PRAM), una memoria de acceso aleatorio estática (SRAM), una memoria de acceso aleatorio dinámica (DRAM), una memoria de acceso aleatorio (RAM) de otro tipo, una memoria de sólo lectura (ROM), una memoria de sólo lectura programable y borrable eléctricamente (EEPROM), una memoria flash u otra tecnología de memoria, una memoria de sólo lectura de disco compacto (CD-ROM), un disco versátil digital (DVD) u otro almacenamiento óptico, una cinta magnética, un almacenamiento de disco magnético, otro dispositivo de almacenamiento magnético o cualquier otro medio de no transmisión. El medio de almacenamiento informático se puede utilizar para almacenar información a la que se puede acceder mediante el dispositivo informático. Según se describe en esta memoria descriptiva, el medio legible del ordenador no incluye medios transitorios, por ejemplo, una señal de datos modulada y un portador.
Se debe observar además que los términos "incluye", "contiene" o cualquier otra variante tienen por objeto abarcar la inclusión no exclusiva, de modo que un proceso, un método, un artículo o un dispositivo que incluye una serie de elementos no sólo incluye estos mismos elementos, sino que también incluye otros elementos que no están expresamente enumerados, o incluye además elementos inherentes a dicho proceso, método, artículo o dispositivo. Un elemento precedido de "incluye un..." no excluye, sin más limitaciones, la existencia de otros elementos idénticos en el proceso, método, artículo o dispositivo que incluye el elemento.
Un experto en la técnica debe entender que las formas de realización de la presente invención se pueden proporcionar como un método, un sistema o un producto de programa informático. Por consiguiente, la presente solicitud puede utilizar una forma de formas de realización sólo de hardware, formas de realización sólo de software, o formas de realización con una combinación de software y hardware. Además, la presente aplicación puede utilizar una forma de producto de programa informático que se implementa en uno o más medios de almacenamiento utilizables en ordenador (incluyendo, pero no limitado a una memoria de disco, un CD-ROM, una memoria óptica, etc.) que incluyen un código de programa utilizable en ordenador.
La presente solicitud se puede describir en contextos comunes de instrucciones ejecutables de ordenador ejecutadas por un ordenador, tal como un módulo de programa. Por lo general, el módulo de programa incluye una rutina, un programa, un objeto, un componente, una estructura de datos, etc., que ejecuta una tarea específica o implementa un tipo de datos abstractos específicos. La presente solicitud también se puede aplicar en entornos informáticos distribuidos. En estos entornos informáticos distribuidos, las tareas se ejecutan mediante dispositivos de procesamiento remoto que se conectan mediante una red de comunicaciones. En los entornos informáticos distribuidos, el módulo de programa se puede situar en medios de almacenamiento informático locales y remotos que incluyen dispositivos de almacenamiento.
Las formas de realización en esta memoria descriptiva se describen todas de manera progresiva; para las mismas o partes similares de las formas de realización, se puede hacer referencia a estas formas de realización, y cada forma de realización se centra en una diferencia con respecto a otras formas de realización. En particular, la forma de realización de un sistema es básicamente similar a la forma de realización de un método y, por lo tanto, se describe brevemente; en cuanto a las partes conexas, se puede hacer referencia a descripciones parciales en la forma de realización del método.
Las descripciones anteriores son meramente formas de realización de la presente solicitud y no tienen por objeto limitar la presente solicitud. Para un experto en la técnica, la presente solicitud puede tener varias modificaciones y cambios. La invención se define mediante las reivindicaciones adjuntas.
La FIG 4 es un diagrama de flujo que ilustra un ejemplo de un método implementado por ordenador 400 para mejorar la eficiencia del procesamiento de las tecnologías de cadena de bloques utilizando el procesamiento de datos de servicio en paralelo, de acuerdo con una implementación de la presente descripción. Para claridad de la presentación, en la descripción que sigue se describe en general el método 400 en el contexto de las demás figuras de esta descripción. Sin embargo, se entenderá que el método 400 se puede realizar, por ejemplo, por cualquier sistema, entorno, software y hardware, o una combinación de sistemas, entornos, software y hardware, según proceda. En algunas implementaciones, varias etapas del método 400 se pueden ejecutar en paralelo, en combinación, en bucles o en cualquier orden.
En 402, se obtiene un bloque de preprocesamiento listo para la validación en una ronda de consenso actual mediante un nodo de la cadena de bloques y en una etapa de consenso de servicios. En algunas implementaciones, obtener el bloque de preprocesamiento listo para la validación incluye el nodo de la cadena de bloques que genera el bloque de preprocesamiento listo para la validación en función de los datos de servicio almacenados por el nodo de la cadena de bloques o obtener el bloque de preprocesamiento listo para la validación a partir de otro nodo de la cadena de bloques. De 402, el método 400 pasa a 404.
En 404, se valida el bloque de preprocesamiento listo para la validación. De 404, el método 400 pasa a 406.
En 406 se determina si el bloque de preprocesamiento listo para la validación está validado. Si se determina que el bloque de preprocesamiento listo para la validación no está validado, el método 400 vuelve a 404. De lo contrario, si se determina que el bloque de preprocesamiento listo para la validación está validado, el método 400 continua, en paralelo, tanto a 408 como a 410.
En 408, se inicia la validación en un siguiente bloque de preprocesamiento listo para la validación. En algunas implementaciones, después de que se determina que el bloque de preprocesamiento listo para la validación está validado: 1) Se determina, en función del bloque de preprocesamiento listo para la validación y el parámetro de almacenamiento del bloque de preprocesamiento listo para la validación, un parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente; y 2) se almacena el parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente. En algunas implementaciones, si se determina que el bloque de preprocesamiento listo para la validación está validado: 1) Se determina un parámetro de consenso correspondiente al bloque de preprocesamiento listo para la validación; y 2) se obtiene, en función del parámetro de consenso, de un parámetro de consenso correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente, en el que el parámetro de consenso se utiliza para dar instrucciones al nodo de la cadena de bloques para que valide el siguiente bloque de preprocesamiento listo para la validación adyacente. En algunas implementaciones la validación se inicia en el siguiente bloque de preprocesamiento listo para la validación adyacente cuando se obtiene el parámetro de consenso correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente.
En 410, el procesamiento de datos en paralelo se realiza sobre los datos de servicio almacenados en el bloque de preprocesamiento validado listo para la validación. En algunas implementaciones, el procesamiento de datos en paralelo se realiza sobre los datos de servicio almacenados en el bloque de preprocesamiento listo para la validación validado utilizando un procesador predeterminado. En algunas implementaciones, el procesamiento de datos en paralelo utilizando el procesador predeterminado incluye, para el bloque de preprocesamiento validado listo para la validación: 1) invocar a un procesador para obtener un parámetro de almacenamiento que comprenda una ubicación de almacenamiento; 2) determinar, en función del parámetro de almacenamiento, un bloque de preprocesamiento listo para el proceso correspondiente al parámetro de almacenamiento; y 3) almacenar, en la ubicación de almacenamiento, los datos de servicio del bloque de preprocesamiento listo para el proceso.
Las implementaciones de la materia de estudio descrita en esta memoria descriptiva se pueden implementar de forma que se produzcan ventajas o efectos técnicos particulares. Por ejemplo, las implementaciones de la materia de estudio descrita permiten mejorar la eficiencia del procesamiento de las tecnologías de cadena de bloques utilizando el procesamiento de datos de servicio en paralelo. A su vez, el procesamiento más eficiente puede contribuir a mejorar la seguridad general de los datos. El procesamiento de datos de servicio en paralelo descrito permite también una utilización más eficiente de los recursos informáticos (por ejemplo, los ciclos de procesamiento y la utilización de la memoria), así como un procesamiento más rápido. Por lo menos estas acciones pueden reducir al mínimo o impedir el desperdicio de los recursos informáticos disponibles con respecto a las transacciones basadas en cadena de bloques. En algunos casos, la velocidad de las transacciones en la red puede aumentar debido a un procesamiento más eficiente de la cadena de bloques.
En algunas implementaciones, los datos de la cadena de bloques se pueden enviar entre dispositivos informáticos e incluir información gráfica (por ejemplo, para utilizar en una interfaz gráfica de usuario). En estas implementaciones, los elementos de una interfaz gráfica de usuario que se ejecutan en uno o más dispositivos informáticos se pueden colocar de manera que sean menos molestos para un usuario. Por ejemplo, los elementos se pueden colocar de una manera que oculten la menor cantidad de datos y eviten cubrir cualquier elemento crítico o de uso frecuente de la interfaz gráfica de usuario.
Las formas de realización y las operaciones descritas en esta memoria descriptiva se pueden implementar en circuitos electrónicos digitales, o en software, firmware o hardware de ordenador, incluyendo las estructuras descritas en esta memoria descriptiva o en combinaciones de una o más de ellas. Las operaciones se pueden implementar como operaciones realizadas por un aparato de procesamiento de datos sobre datos almacenados en uno o más dispositivos de almacenamiento legibles por ordenador o recibidos desde otras fuentes. Un aparato de procesamiento de datos, un ordenador o un dispositivo informático puede abarcar aparatos, dispositivos y máquinas para el procesamiento de datos, incluidos, por ejemplo, un procesador programable, un ordenador, un sistema en un chip, o múltiples, o combinaciones, de los anteriores. El aparato puede incluir circuitos lógicos para fines especiales, por ejemplo, una unidad central de procesamiento (CPU), una matriz de puertas programables en campo (FPGA) o un circuito integrado de aplicación específica (ASIC). El aparato también puede incluir código que cree un entorno de ejecución para el programa informático en cuestión, por ejemplo, código que constituya el firmware del procesador, una pila de protocolos, un sistema de gestión de bases de datos, un sistema operativo (por ejemplo, un sistema operativo o una combinación de sistemas operativos), un entorno de tiempo de ejecución multiplataforma, una máquina virtual o una combinación de uno o más de ellos. El entorno de aparatos y ejecución puede producir diversas infraestructuras de modelos informáticos diferentes, tales como servicios web, infraestructuras informáticas distribuidas y en cuadrícula.
Un programa informático (también conocido, por ejemplo, como un programa, un software, un software de aplicación, un módulo de software, una unidad de software, un script o código) se puede escribir en cualquier forma de lenguaje de programación, incluidos los lenguajes compilados o interpretados, los lenguajes declarativos o de procedimiento, y se puede implementar en cualquier forma, incluso como programa autónomo o como módulo, componente, subrutina, objeto u otra unidad adecuada para su utilización en un entorno informático. Un programa se puede almacenar en una parte de un archivo que contenga otros programas o datos (por ejemplo, uno o más scripts almacenados en un documento de lenguaje de marcado), en un único archivo dedicado al programa en cuestión, o en múltiples archivos coordinados (por ejemplo, archivos que almacenen uno o más módulos, subprogramas o partes de código). Un programa informático se puede ejecutar en un ordenador o en múltiples ordenadores situados en un mismo lugar o distribuidos en múltiples lugares e interconectados por una red de comunicación.
Los procesadores para la ejecución de un programa informático incluyen, a título de ejemplo, tanto microprocesadores de propósito general como de propósito especial, y uno o más procesadores de cualquier tipo de ordenador digital. Por lo general, un procesador recibirá instrucciones y datos a partir de una memoria de sólo lectura o de una memoria de acceso aleatorio o de ambas. Los elementos esenciales de un ordenador son un procesador para realizar acciones de acuerdo con las instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. Por lo general, un ordenador también incluirá, o se acoplará de forma operativa para recibir datos, o transferir datos o ambos, a uno o más dispositivos de almacenamiento en masa para almacenar datos. Un ordenador se puede incorporar en otro dispositivo, por ejemplo, un dispositivo móvil, un asistente digital personal (PDA), una consola de juegos, un receptor del sistema de posicionamiento global (GPS) o un dispositivo de almacenamiento portátil. Entre los dispositivos adecuados para almacenar instrucciones y datos de programas informáticos se encuentran la memoria no volátil, los dispositivos de memoria y medios, incluyendo, a modo de ejemplo, los dispositivos de memoria semiconductores, los discos magnéticos y los discos magnético-ópticos. El procesador y la memoria se pueden complementar con circuitos lógicos de propósito especial o incorporados a ellos.
Los dispositivos móviles pueden incluir teléfonos, equipos de usuario (UE), teléfonos móviles (por ejemplo, teléfonos inteligentes), tabletas, dispositivos para llevar puestos (por ejemplo, relojes y gafas inteligentes), dispositivos implantados dentro del cuerpo humano (por ejemplo, biosensores, implantes cocleares) u otros tipos de dispositivos móviles. Los dispositivos móviles se pueden comunicar de forma inalámbrica (por ejemplo, utilizando señales de radiofrecuencia (RF)) a diversas redes de comunicación (descritas a continuación). Los dispositivos móviles pueden incluir detectores para determinar las características del entorno actual del dispositivo móvil. Los detectores pueden incluir cámaras, micrófonos, detectores de proximidad, detectores GPS, detectores de movimiento, acelerómetros, detectores de luz ambiental, detectores de humedad, giroscopios, brújulas, barómetros, detectores de huellas dactilares, sistemas de reconocimiento facial, detectores de RF (por ejemplo, Wi-Fi y radios celulares), detectores térmicos u otros tipos de detectores. Por ejemplo, las cámaras pueden incluir una cámara orientada hacia delante o hacia atrás con lentes móviles o fijas, un flash, un detector de imagen y un procesador de imagen. La cámara puede ser una cámara de megapíxeles capaz de capturar detalles para el reconocimiento facial y/o del iris. La cámara, junto con un procesador de datos y la información de autenticación almacenada en la memoria o a la que se accede a distancia, puede formar un sistema de reconocimiento facial. Para la autenticación del usuario se puede utilizar el sistema de reconocimiento facial o uno o más detectores, por ejemplo, micrófonos, detectores de movimiento, acelerómetros, detectores GPS o detectores de RF.
Para facilitar la interacción con un usuario, se pueden implementar formas de realización en un ordenador que tenga un dispositivo de visualización y un dispositivo de entrada, por ejemplo, una pantalla de cristal líquido (LCD) o una pantalla de diodos emisores de luz orgánica (OLED)/realidad virtual (VR)/realidad aumentada (AR) para mostrar información al usuario y una pantalla táctil, un teclado y un dispositivo señalador mediante el cual el usuario pueda proporcionar información al ordenador. También se pueden utilizar otras clases de dispositivos para facilitar la interacción con el usuario; por ejemplo, la retroalimentación proporcionada al usuario puede ser cualquier forma de retroalimentación sensorial, por ejemplo, retroalimentación visual, retroalimentación auditiva o retroalimentación táctil; y la entrada del usuario se puede recibir de cualquier forma, incluyendo la entrada acústica, de habla o táctil. Además, un ordenador puede interactuar con un usuario enviando documentos a un dispositivo que utilice el usuario y recibiéndolos de él; por ejemplo, enviando páginas web a un navegador web de un dispositivo cliente del usuario en respuesta a solicitudes recibidas del navegador web.
Las formas de realización se pueden implementar utilizando dispositivos informáticos interconectados por cualquier forma o medio de comunicación de datos digitales inalámbrico o cableado (o una combinación de ellas), por ejemplo, una red de comunicaciones. Ejemplos de dispositivos interconectados son un cliente y un servidor generalmente distantes entre sí que suelen interactuar a través de una red de comunicación. Un cliente, por ejemplo, un dispositivo móvil, puede realizar transacciones por sí mismo, con un servidor, o a través de un servidor, por ejemplo, realizando operaciones de compra, venta, pago, donación, envío o transacciones de préstamo, o autorizando las mismas. Dichas transacciones se pueden realizar en tiempo real de tal manera que una acción y una respuesta sean temporalmente próximas; por ejemplo, una persona percibe que la acción y la respuesta se producen de manera, en esencia, simultánea, la diferencia de tiempo para una respuesta tras la acción de la persona es inferior a 1 milisegundo (ms) o inferior a 1 segundo (s), o la respuesta se produce sin demora intencional teniendo en cuenta las limitaciones de procesamiento del sistema.
Entre los ejemplos de redes de comunicación se encuentran una red de área local (LAN), una red de acceso de radio (RAN), una red de área metropolitana (MAN) y una red de área amplia (WAN). La red de comunicación puede incluir toda o una parte de Internet, otra red de comunicación o una combinación de redes de comunicación. La información se puede transmitir en la red de comunicación de acuerdo con diversos protocolos y normas, incluyendo la evolución a largo plazo (LTE), el 5Q IEEE 802, el protocolo de Internet (IP) u otros protocolos o combinaciones de protocolos. La red de comunicación puede transmitir voz, vídeo, datos biométricos o de autenticación, u otra información entre los dispositivos informáticos conectados.
Las características descritas como implementaciones separadas se pueden implementar, en combinación, en una única implementación, mientras que las características descritas como una implementación única se pueden implementar en implementaciones múltiples, por separado, o en cualquier subcombinación adecuada. Las operaciones descritas y reivindicadas en un orden determinado no se deben entender como que requieren el orden concreto, ni que se deben realizar todas las operaciones ilustradas (algunas operaciones pueden ser opcionales). Según proceda, se puede realizar la multitarea o el procesamiento en paralelo (o una combinación de multitarea y procesamiento en paralelo).

Claims (11)

REIVINDICACIONES
1. Un método de procesamiento de datos realizado por un nodo de la cadena de bloques que comprende un primer hilo de ejecución y un segundo hilo de ejecución, estando el nodo de la cadena de bloques configurado para utilizar el primer hilo de ejecución para realizar un procesamiento de consenso sobre bloques de preprocesamiento listos para la validación y el segundo hilo de ejecución para realizar un procesamiento de datos sobre bloques de preprocesamiento validados, comprendiendo el método:
preconfigurar un procesador para realizar una operación implicada en una etapa de presentación de servicios;
obtener (S101) un bloque de preprocesamiento listo para la validación;
validar (S101), utilizando el primer hilo de ejecución, el bloque de preprocesamiento durante una etapa de consenso de servicios;
si se determina que el bloque de preprocesamiento está validado, comenzar (S102) a validar, utilizando el primer hilo de ejecución, un siguiente bloque de preprocesamiento listo para la validación; y
realizar (S102), utilizando el segundo hilo de ejecución en paralelo con la etapa de consenso de servicios, el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado durante la etapa de presentación de servicios.
2. El método de la reivindicación 1, en donde la ejecución (S102), en paralelo, del procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado comprende en concreto:
realizar el procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado en paralelo utilizando un procesador predeterminado.
3. El método de la reivindicación 2, en donde la realización del procesamiento de datos sobre los datos de servicio en el bloque de preprocesamiento validado utilizando un procesador predeterminado, comprende en concreto:
para el bloque de preprocesamiento validado, realizar las siguientes operaciones: invocar un procesador para obtener un parámetro de almacenamiento, en donde el parámetro de almacenamiento comprende una ubicación de almacenamiento; y
determinar, en función del parámetro de almacenamiento, un bloque de preprocesamiento listo para el proceso correspondiente al parámetro de almacenamiento, y almacenar los datos de servicio del bloque de preprocesamiento listo para el proceso determinado en la ubicación de almacenamiento.
4. El método de una cualquiera de las reivindicaciones 1 a 3, en donde el método comprende, además:
después de que se determine que el bloque de preprocesamiento está validado, determinar, en función del bloque de preprocesamiento y el parámetro de almacenamiento del bloque de preprocesamiento, un parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente, y almacenar el parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente.
5. El método de la reivindicación 4, en donde el almacenamiento del parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente comprende en concreto:
almacenar el parámetro de almacenamiento del siguiente bloque de preprocesamiento listo para la validación adyacente en una cola tipo primera entrada primera salida (FIFO).
6. El método de la reivindicación 5, que comprende las características de la reivindicación 3, en donde se invoca a un procesador para obtener un parámetro de almacenamiento, comprende en concreto:
invocar al procesador para obtener el parámetro de almacenamiento a partir de la cola FIFO.
7. El método de una cualquiera de las reivindicaciones 1 a 6, en donde el método comprende, además:
si se determina que el bloque de preprocesamiento está validado, determinar un parámetro de consenso correspondiente al bloque de preprocesamiento y obtener, en función del parámetro de consenso determinado correspondiente al bloque de preprocesamiento, un parámetro de consenso correspondiente a un siguiente bloque de preprocesamiento listo para la validación adyacente, en donde el parámetro de consenso se utiliza para dar instrucciones al nodo de la cadena de bloques para que valide el bloque de preprocesamiento listo para la validación.
8. El método de la reivindicación 7, en donde el inicio para validar un próximo bloque de preprocesamiento listo para la validación comprende:
cuando se obtiene el parámetro de consenso correspondiente al siguiente bloque de preprocesamiento listo para la validación adyacente, comenzar, en función del parámetro de consenso obtenido, a validar el siguiente bloque de preprocesamiento listo para la validación adyacente.
9. El método de una cualquiera de las reivindicaciones precedentes 1 a 8, en donde la operación implicada en la etapa de presentación de servicios determina si se deben modificar uno o más parámetros de varios parámetros de procesamiento después de cada etapa de consenso.
10. El método de la reivindicación 9, en donde los varios parámetros de procesamiento se determinan en una etapa de consenso anterior.
11. Un aparato que comprende varios módulos (301, 302) configurados para realizar el método de una cualquiera de las reivindicaciones 1 a 10.
ES18733987T 2017-05-31 2018-05-31 Método y aparato de procesamiento de datos en cadena de bloques Active ES2809204T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710397591.4A CN107402824B (zh) 2017-05-31 2017-05-31 一种数据处理的方法及装置
PCT/US2018/035478 WO2018222927A1 (en) 2017-05-31 2018-05-31 Blockchain data processing method and apparatus

Publications (1)

Publication Number Publication Date
ES2809204T3 true ES2809204T3 (es) 2021-03-03

Family

ID=60405063

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18733987T Active ES2809204T3 (es) 2017-05-31 2018-05-31 Método y aparato de procesamiento de datos en cadena de bloques

Country Status (17)

Country Link
US (2) US10686803B2 (es)
EP (2) EP3745642B1 (es)
JP (1) JP6859509B2 (es)
KR (1) KR102239589B1 (es)
CN (1) CN107402824B (es)
AU (2) AU2018278316B2 (es)
BR (1) BR112019008775B1 (es)
CA (1) CA3042470C (es)
ES (1) ES2809204T3 (es)
MX (1) MX2019005085A (es)
MY (1) MY190598A (es)
PH (1) PH12019500979A1 (es)
RU (1) RU2721402C1 (es)
SG (2) SG11201903895XA (es)
TW (1) TWI697227B (es)
WO (1) WO2018222927A1 (es)
ZA (1) ZA201902729B (es)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402824B (zh) 2017-05-31 2020-06-02 创新先进技术有限公司 一种数据处理的方法及装置
CN107579951B (zh) 2017-07-14 2020-06-19 创新先进技术有限公司 一种业务数据处理方法、业务处理方法及设备
CN108182635A (zh) * 2017-12-18 2018-06-19 深圳前海微众银行股份有限公司 区块链共识方法、系统和计算机可读存储介质
CN110083437A (zh) * 2018-01-25 2019-08-02 北京欧链科技有限公司 处理区块链事务的方法及装置
CN108600839B (zh) * 2018-05-02 2020-06-02 中广热点云科技有限公司 一种基于cbc-pbft共识机制的版权视频全网收视记录系统
CN110472971A (zh) * 2018-05-09 2019-11-19 厦门本能管家科技有限公司 一种双进程打块方法及系统
CN108776897B (zh) * 2018-06-05 2020-04-21 腾讯科技(深圳)有限公司 数据处理方法、装置、服务器及计算机可读存储介质
US11323530B2 (en) * 2018-06-06 2022-05-03 International Business Machines Corporation Proxy agents and proxy ledgers on a blockchain
CN108846659B (zh) * 2018-06-13 2021-09-14 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
CN109002297B (zh) * 2018-07-16 2020-08-11 百度在线网络技术(北京)有限公司 共识机制的部署方法、装置、设备和存储介质
CN110795227B (zh) * 2018-08-03 2022-07-19 北京天能博信息科技有限公司 一种区块链的数据处理方法及相关设备
CN109376020B (zh) * 2018-09-18 2021-02-12 中国银行股份有限公司 多区块链交互并发下的数据处理方法、装置及存储介质
CN109523260A (zh) * 2018-11-28 2019-03-26 段红 一种动态节点选举的高并发共识机制
CN109714398B (zh) * 2018-12-11 2021-09-21 新华三技术有限公司 数据存储方法和装置
US20200202337A1 (en) * 2018-12-20 2020-06-25 Lukka, Inc. Gain and loss computation for cryptocurrency transactions
CN109714412B (zh) * 2018-12-25 2021-08-10 深圳前海微众银行股份有限公司 区块同步方法、装置、设备及计算机可读存储介质
KR102170345B1 (ko) * 2019-03-18 2020-10-28 알리바바 그룹 홀딩 리미티드 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법
US11398895B2 (en) 2019-03-26 2022-07-26 International Business Machines Corporation Information management in a decentralized database including a fast path service
US11418322B2 (en) * 2019-03-26 2022-08-16 International Business Machines Corporation Information management in a decentralized database including a fast path service
US11269858B2 (en) 2019-03-26 2022-03-08 International Business Machines Corporation Information management in a decentralized database including a fast path service
CN110020859B (zh) * 2019-03-28 2022-03-11 杭州秘猿科技有限公司 一种并行执行的区块链共识方法、装置及电子设备
CN109948799B (zh) * 2019-04-03 2023-12-08 陕西医链区块链集团有限公司 一种区块链的动态随机森林共识机制
WO2019120333A2 (en) 2019-04-12 2019-06-27 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
JP6827564B2 (ja) 2019-04-12 2021-02-10 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 分散型台帳システムにおけるトランザクションのパラレル実行の実施
CN110046896B (zh) * 2019-04-26 2022-03-01 腾讯科技(深圳)有限公司 一种区块处理方法和节点以及系统
US10970858B2 (en) * 2019-05-15 2021-04-06 International Business Machines Corporation Augmented reality for monitoring objects to decrease cross contamination between different regions
US11423016B2 (en) * 2019-06-26 2022-08-23 Indian Institute Of Technology Bombay Method for scaling computation in blockchain by delaying transaction execution
CN110471981A (zh) * 2019-07-05 2019-11-19 深圳壹账通智能科技有限公司 基于区块链的线上数据同步方法、装置、终端及存储介质
CN113139873A (zh) * 2019-08-30 2021-07-20 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
CN110532228B (zh) * 2019-09-02 2022-09-02 深圳市迅雷网络技术有限公司 一种区块链数据读取的方法、系统、设备及可读存储介质
CN110648136B (zh) * 2019-09-10 2022-06-03 杭州秘猿科技有限公司 共识与交易同步的并行处理方法、装置和电子设备
CN110597920B (zh) * 2019-09-26 2024-02-23 腾讯云计算(北京)有限责任公司 一种信息处理的方法及装置
CN110728578A (zh) * 2019-09-29 2020-01-24 南京金宁汇科技有限公司 区块链交易的并行执行方法、系统及存储介质
CN110855475B (zh) * 2019-10-25 2022-03-11 昆明理工大学 一种基于区块链的共识资源切片方法
KR102367570B1 (ko) * 2019-11-19 2022-02-28 한양대학교 산학협력단 블록체인에서의 병렬적 블록 처리 방법, 이를 이용하는 블록체인 노드 및 프로그램
CN111083221B (zh) * 2019-12-13 2023-08-04 北京菲林方德科技有限公司 一种交易验证方法及装置
CN111275437B (zh) * 2020-01-12 2023-05-30 杭州复杂美科技有限公司 平行链共识方法、设备和存储介质
KR102406242B1 (ko) * 2020-03-31 2022-06-10 주식회사 현신특허컨설팅 특허 중개 과정에서의 특허 명세서 관리용 블록체인 기반 패치 관리 장치
CN111368343B (zh) * 2020-03-31 2022-11-01 北京俩撇科技有限公司 一种区块链系统、数据存储方法及装置
CN111522648B (zh) 2020-07-03 2020-10-09 支付宝(杭州)信息技术有限公司 一种区块链的交易处理方法、装置及电子设备
CN112035891A (zh) * 2020-07-20 2020-12-04 江苏傲为控股有限公司 一种去中心化电子合同证明平台
WO2022093256A1 (en) * 2020-10-30 2022-05-05 Hewlett-Packard Development Company, L.P. Provisioning of computational resources
CN112487448B (zh) * 2020-11-27 2024-05-03 珠海零边界集成电路有限公司 一种加密信息处理装置、方法及计算机设备
CN112291372B (zh) * 2020-12-28 2021-04-13 腾讯科技(深圳)有限公司 区块链的异步落账方法、装置、介质及电子设备
CN112734586A (zh) * 2021-01-27 2021-04-30 国网信息通信产业集团有限公司 基于区块链的数据处理方法及系统
CN113204432A (zh) * 2021-02-03 2021-08-03 支付宝(杭州)信息技术有限公司 区块链中的交易处理方法、装置及电子设备
CN114047961A (zh) * 2021-11-15 2022-02-15 合众新能源汽车有限公司 安卓系统开机优化方法、智能终端和计算机可读介质
CN114362969B (zh) 2022-03-17 2022-06-10 北京百度网讯科技有限公司 一种基于区块链的数据验证方法、装置、设备及存储介质
CN114785803A (zh) * 2022-04-20 2022-07-22 浙江工业大学 一种适用于充电桩管理的区块链pbft共识优化方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937599B1 (en) * 1999-10-21 2005-08-30 Matsushita Electric Industrial Co., Ltd. Data source, data conversion device, inverse data conversion device, auxiliary data file generation device, reception method, medium and information aggregate
JP4578442B2 (ja) * 2006-06-19 2010-11-10 株式会社ニコンシステム 検証装置、および検証プログラム
JP4991223B2 (ja) * 2006-09-08 2012-08-01 ルネサスエレクトロニクス株式会社 データ処理装置
US7979626B2 (en) * 2008-05-13 2011-07-12 Microsoft Corporation Flash recovery employing transaction log
JP5164154B2 (ja) * 2008-05-19 2013-03-13 独立行政法人産業技術総合研究所 誤り検出機能を備える、符号化又は復号処理のための回路構成
RS61234B1 (sr) * 2013-11-19 2021-01-29 Top Galore Ltd Postupak i uređaj za rudarenje blokova
JP2016052697A (ja) * 2014-09-03 2016-04-14 インターマン株式会社 人型ロボット
EP3198539A4 (en) * 2014-09-23 2018-05-16 Spondoolies Tech Ltd. System and method for providing shared hash engines architecture for a bitcoin block chain
US10409827B2 (en) * 2014-10-31 2019-09-10 21, Inc. Digital currency mining circuitry having shared processing logic
US9436923B1 (en) * 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
JP6304076B2 (ja) * 2015-03-05 2018-04-04 ブラザー工業株式会社 情報処理装置、コンテンツ配信システム、情報処理方法、及びプログラム
JP6358658B2 (ja) * 2015-11-09 2018-07-18 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
US10230756B2 (en) * 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
US10805393B2 (en) 2015-12-02 2020-10-13 Olea Networks, Inc. System and method for data management structure using auditable delta records in a distributed environment
US10521780B1 (en) * 2015-12-16 2019-12-31 United Services Automobile Association (Usaa) Blockchain based transaction management
US10255108B2 (en) * 2016-01-26 2019-04-09 International Business Machines Corporation Parallel execution of blockchain transactions
US10362058B2 (en) 2016-05-13 2019-07-23 Vmware, Inc Secure and scalable data transfer using a hybrid blockchain-based approach
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
US10719771B2 (en) 2016-11-09 2020-07-21 Cognitive Scale, Inc. Method for cognitive information processing using a cognitive blockchain architecture
US20180158034A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
US11887115B2 (en) * 2017-04-17 2024-01-30 Jeff STOLLMAN Systems and methods to validate transactions for inclusion in electronic blockchains
CN107395353B (zh) 2017-04-24 2020-01-31 阿里巴巴集团控股有限公司 一种区块链共识方法及装置
US10896169B2 (en) * 2017-05-12 2021-01-19 International Business Machines Corporation Distributed system, computer program product and method
US11924322B2 (en) * 2017-05-16 2024-03-05 Arm Ltd. Blockchain for securing and/or managing IoT network-type infrastructure
CN107402824B (zh) 2017-05-31 2020-06-02 创新先进技术有限公司 一种数据处理的方法及装置
CN107396180A (zh) 2017-08-29 2017-11-24 北京小米移动软件有限公司 基于移动终端的视频制作方法及装置
US11139979B2 (en) * 2017-12-18 2021-10-05 Koninklijke Kpn N.V. Primary and secondary blockchain device
US10250381B1 (en) * 2018-02-22 2019-04-02 Capital One Services, Llc Content validation using blockchain
RU181439U1 (ru) 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети

Also Published As

Publication number Publication date
EP3520052A1 (en) 2019-08-07
BR112019008775A2 (pt) 2020-02-04
BR112019008775B1 (pt) 2021-08-17
CN107402824B (zh) 2020-06-02
EP3745642C0 (en) 2023-07-05
EP3520052B1 (en) 2020-07-22
TW201904229A (zh) 2019-01-16
TWI697227B (zh) 2020-06-21
AU2018278316A1 (en) 2019-05-23
KR102239589B1 (ko) 2021-04-15
AU2020289748A1 (en) 2021-01-21
PH12019500979A1 (en) 2020-01-20
KR20190067195A (ko) 2019-06-14
US20180351732A1 (en) 2018-12-06
CN107402824A (zh) 2017-11-28
AU2018278316B2 (en) 2020-10-08
JP2020503728A (ja) 2020-01-30
US20190215151A1 (en) 2019-07-11
SG10202105569SA (en) 2021-07-29
US10785231B2 (en) 2020-09-22
RU2721402C1 (ru) 2020-05-19
WO2018222927A1 (en) 2018-12-06
CA3042470C (en) 2021-05-04
JP6859509B2 (ja) 2021-04-14
CA3042470A1 (en) 2018-12-06
US10686803B2 (en) 2020-06-16
MX2019005085A (es) 2019-08-12
MY190598A (en) 2022-04-27
SG11201903895XA (en) 2019-05-30
ZA201902729B (en) 2020-05-27
EP3745642B1 (en) 2023-07-05
EP3745642A1 (en) 2020-12-02

Similar Documents

Publication Publication Date Title
ES2809204T3 (es) Método y aparato de procesamiento de datos en cadena de bloques
US11379803B2 (en) Blockchain-based data processing method and device
ES2809510T3 (es) Método y aparato de selección de nodos de consenso, y servidor
US10789243B2 (en) Database state determining method and device, and consistency verifying method and device
ES2809205T3 (es) Método y dispositivo de procesamiento de información de inicio de sesión
US11057493B2 (en) Multi-server node service processing and consensus method and device
US10790981B2 (en) Method and apparatus for verifying block data in a blockchain
US10789270B2 (en) Blockchain based data processing method and device
US10657151B2 (en) Method and apparatus for communication between blockchain nodes
US20190347663A1 (en) Methods and devices for sending transaction information and for consensus verification
US10929103B2 (en) Random number generation and acquisition method and device
US20200026691A1 (en) Blockchain-based data processing method and device
US11240036B2 (en) Consensus verification method, apparatus, and device