ES2859560T3 - Método y dispositivo de procesamiento de datos - Google Patents

Método y dispositivo de procesamiento de datos Download PDF

Info

Publication number
ES2859560T3
ES2859560T3 ES18753905T ES18753905T ES2859560T3 ES 2859560 T3 ES2859560 T3 ES 2859560T3 ES 18753905 T ES18753905 T ES 18753905T ES 18753905 T ES18753905 T ES 18753905T ES 2859560 T3 ES2859560 T3 ES 2859560T3
Authority
ES
Spain
Prior art keywords
data
node
checksum
leaf
sub
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
ES18753905T
Other languages
English (en)
Inventor
Honglin Qiu
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 ES2859560T3 publication Critical patent/ES2859560T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/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/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • 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
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

Un método de procesamiento de datos, que comprende: distribuir (S601), mediante un nodo de cadena de bloques, a los servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en el nodo de cadena de bloques; distribuir (S602), mediante cada servidor en la agrupación de servidores, los datos del correspondiente nodo hoja de manera equitativa en una pluralidad de nodos sub-hoja de acuerdo con una cantidad de datos del correspondiente nodo hoja; calcular (S603) en paralelo, mediante los servidores en la agrupación de servidores, una suma de comprobación para los datos de cada uno de la correspondiente pluralidad de nodos sub-hoja; calcular (S604), mediante los servidores en la agrupación de servidores, una suma de comprobación de los datos de los nodos hoja de acuerdo con la suma de comprobación de los datos de cada nodo sub-hoja; obtener, mediante el nodo de cadena de bloques, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculadas mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de datos en el nodo de cadena de bloques.

Description

DESCRIPCIÓN
Método y dispositivo de procesamiento de datos
Campo técnico
La presente solicitud se refiere al campo de las tecnologías informáticas, y, en particular, a un método y dispositivo de procesamiento de datos.
Antecedentes
La cadena de bloques es una práctica de aplicación novedosa de las tecnologías informáticas, tales como el almacenamiento de datos distribuido, la transmisión de punto a punto, el mecanismo de consenso, algoritmo de encriptación, etc., que requiere que todos los nodos de cadena de bloques permanezcan en el mismo estado (incluyendo el estado de las bases de datos). De esta manera, cuando se produce una nueva transacción (es decir, se generan nuevos datos) en un nodo de cadena de bloques, los nuevos datos necesitan sincronizarse con todos los nodos de cadena de bloques, y todos nodos de cadena de bloques necesitan verificar los datos.
En las tecnologías actuales, se determina normalmente un método de verificación usado por los nodos de cadena de bloques en los datos a través de una suma de comprobación basada en árbol de cubo (por ejemplo, un valor de función de troceo). En un ejemplo, los datos en los nodos de cadena de bloques del tejido (una aplicación de cadena de bloques que se ha implementado) se almacenan en una estructura de árbol de Merkle, y el árbol de Merkle comprende uno o más nodos hoja (es decir, los cubos). Se usa normalmente un único dispositivo de computación (por ejemplo, un dispositivo terminal o servidor) para que los nodos de cadena de bloques obtengan una suma de comprobación (por ejemplo, un valor de función de troceo) de los datos anteriores. Por ejemplo, el dispositivo de computación atraviesa cada nodo hoja, clasifica y empalma los datos del nodo hoja en una cadena de caracteres, y calcula una suma de comprobación de la cadena de caracteres como la suma de comprobación de los datos del correspondiente nodo hoja. A continuación, basándose en la suma de comprobación de los datos de cada nodo hoja, el dispositivo de computación calcula una suma de comprobación de raíz (por ejemplo, un valor de función de troceo de raíz) del árbol de Merkle, es decir, puede verificarse una suma de comprobación de los datos en el nodo de cadena de bloques, y los datos anteriores basándose en esta suma de comprobación.
Sin embargo, puesto que se usa un único dispositivo de computación para calcular una suma de comprobación de raíz de datos en los nodos de cadena de bloques, y puesto que cada computación se completa empalmando datos de nodos hoja en una cadena de caracteres, llevará un largo tiempo que el único dispositivo de computación ejecute el proceso de computación anteriormente descrito cuando la cantidad de datos acumulativa en uno o más nodos hoja sea muy alta (por ejemplo, 10 millones de piezas de datos), lo que conduce a una eficacia de computación baja y puede incluso retardar el tiempo para la generación de bloque e impedir las operaciones normales de una cadena de bloques.
El documento WO 2016/131576 A1 desvela un método de un cliente para proporcionar un valor de función de troceo para una pieza de datos, donde el valor de función de troceo proporciona una indicación de tiempo para la pieza de datos tras la verificación.
El documento US 2016/253523 A1 desvela un sistema de autenticación basado en árbol de función troceo distribuido para registros de entrada digitales que tienen más de un nodo núcleo de nivel superior, cada uno de los cuales recibe al menos un valor más superior desde los agregadores.
El documento CN 105719185 A desvela una comparación de datos de cadena de bloques y método consenso usado para un cálculo de valor de función troceo de contenido de cada transacción.
Sumario
La invención proporciona métodos de procesamiento de datos y dispositivos de procesamiento de datos como se expone en las reivindicaciones adjuntas.
A partir de las soluciones técnicas proporcionadas mediante las realizaciones de la presente invención, puede observarse que, como los datos de los nodos hoja están distribuidos a la agrupación de servidores y a continuación como se calculan las sumas de comprobación de los datos de los nodos hoja distribuidos mediante cada servidor en la agrupación de servidores, los datos pueden distribuirse a la agrupación de servidores para la computación paralela de sumas de comprobación de los datos de los nodos hoja, reduciendo de esta manera el tiempo tomado por el proceso de computación, mejorando la eficacia de computación, y asegurando la generación normal de bloques y operaciones normales de una cadena de bloques.
Breve descripción de los dibujos
Para describir de manera más evidente las soluciones técnicas en las realizaciones de la presente solicitud o las tecnologías actuales, los dibujos adjuntos que van a usarse en la descripción de las realizaciones o las tecnologías actuales se describirán brevemente a continuación. Es obvio que los dibujos adjuntos en la descripción siguiente son simplemente algunas realizaciones de la presente solicitud. Basándose en estos dibujos adjuntos, un experto en la materia puede obtener otros dibujos relevantes sin esfuerzo creativo.
La Figura 1 es un método de procesamiento de datos de acuerdo con la presente solicitud;
La Figura 2 es un diagrama esquemático de una lógica de procesamiento de datos de acuerdo con la presente solicitud;
La Figura 3 es otro método de procesamiento de datos de acuerdo con algunas realizaciones de la presente solicitud;
La Figura 4 es otro método de procesamiento de datos más de acuerdo con algunas realizaciones de la presente solicitud;
La Figura 5 es un diagrama estructural esquemático de un sistema de procesamiento de datos de acuerdo con la presente solicitud;
La Figura 6 es otro método de procesamiento de datos más de acuerdo con algunas realizaciones de la presente solicitud;
La Figura 7 es otro método de procesamiento de datos más de acuerdo con algunas realizaciones de la presente solicitud;
La Figura 8 es un diagrama estructural esquemático de otro sistema de procesamiento de datos de acuerdo con la presente solicitud;
La Figura 9 es un dispositivo de procesamiento de datos de acuerdo con algunas realizaciones de la presente solicitud;
La Figura 10 es otro dispositivo de procesamiento de datos de acuerdo con algunas realizaciones de la presente solicitud.
Descripción detallada
Las realizaciones de la presente solicitud proporcionan un método y dispositivo de procesamiento de datos.
Para permitir que un experto en la materia comprenda mejor las soluciones técnicas de la presente solicitud, las soluciones técnicas en las realizaciones de la presente solicitud se describirán clara y completamente a continuación con referencia a los dibujos adjuntos en las realizaciones de la presente solicitud. Es obvio que las realizaciones descritas son simplemente algunas, pero no todas, las realizaciones de la presente solicitud. Basándose en las realizaciones de la presente solicitud, todas las demás formas de realización que pueda obtener un experto en la materia sin esfuerzo creativo estarán dentro del alcance de la presente solicitud.
Realización I
Como se muestra en la Figura 1, las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos. Una entidad para generar el método puede ser un nodo de cadena de bloques. El método puede comprender las siguientes etapas:
En la etapa S101, distribuir, a servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en un nodo de cadena de bloques, para que los servidores en la agrupación de servidores calculen sumas de comprobación de los datos de los nodos hoja distribuidos, respectivamente.
En este punto, el nodo hoja puede no tener sub-nodo. Un nodo de cadena de bloques normalmente comprende uno o más nodos hoja (es decir, cubos), y cada nodo hoja almacena una cantidad de datos (que pueden ser, por ejemplo, datos de transacción). Puede establecerse un correspondiente valor numérico para la cantidad de datos de cada pieza de datos almacenados en el nodo hoja. Por ejemplo, la cantidad de datos de cada pieza de datos se encuentra dentro de un intervalo de 100 KB a 5 MB, y de 1 MB en un ejemplo. La agrupación de servidores puede ser un grupo formado por una pluralidad de servidores idénticos o diferentes y puede proporcionar servicios correspondientes para una o más transacciones. La suma de comprobación puede ser una cadena de caracteres (por ejemplo, un valor numérico o un código) usada para comprobar un fichero o datos. En una aplicación de ejemplo, la suma de comprobación puede ser un valor numérico obtenido a partir de la computación usando un algoritmo de comprobación basado en un resumen de datos y similares. El algoritmo de comprobación basado en el sumario de datos puede comprender el algoritmo de comprobación de redundancia cíclica, el algoritmo de resumen de mensaje, el algoritmo de función de troceo segura, etc.
En las implementaciones, una cadena de bloques puede ser una base de datos distribuida descentralizada, que también se denomina como un libro mayor distribuido. Basándose en la tecnología de cadena de bloques, es necesaria una red distribuida formada mediante una gran cantidad de memorias de grabación de información (por ejemplo, dispositivos terminales o servidores). La propagación de cada nueva transacción puede usar la red distribuida, y de acuerdo con un protocolo de capa de red entre iguales (P2P), la información asociada con la transacción se envía directamente a todos los otros nodos de cadena de bloques a través de la red mediante un nodo de cadena de bloques individual, para asegurar que los datos almacenados en todos los nodos de cadena de bloques en la red distribuida sean consistentes. Cuando un nodo de cadena de bloques registra una nueva transacción, los datos de la nueva transacción registrada necesitan sincronizarse con otros nodos de cadena de bloques, mientras que otros nodos de cadena de bloques necesitan verificar los datos. Un proceso de verificación de ejemplo puede ser como sigue: un nodo de cadena de bloques comprende uno o más nodos hoja, y los datos en el nodo de cadena de bloques están distribuidos en los nodos hoja, en donde todos los datos en los nodos hoja comprenden indicaciones de tiempo de recepción, y puede determinarse un orden de transacciones de acuerdo con las indicaciones de tiempo. Durante la verificación, un nodo de cadena de bloques puede obtener en primer lugar nodos hoja previamente almacenados en el nodo de cadena de bloques. Para poder determinar rápidamente cuáles nodos hoja están almacenados en el nodo de cadena de bloques y un número de los nodos hoja, puede establecerse un correspondiente identificador de nodo (por ejemplo, una ID (Identidad) de nodo), tal como 5 o A8, para cada nodo hoja cuando se genera el nodo hoja. Cuando ha de obtenerse un nodo hoja, se busca el correspondiente nodo hoja mediante identificadores de nodo previamente registrados, y pueden obtenerse los datos almacenados en cada nodo hoja.
Puesto que la cantidad de datos almacenados puede ser diferente debido a impactos por factores tales como diferentes periodos de tiempo y/o diferentes áreas, la cantidad de datos acumulada en uno o más nodos hoja puede ser en consecuencia relativamente alta, mientras que la cantidad de datos en algunos otros nodos hoja puede ser relativamente pequeña. De esta manera, puede haber un desequilibrio en las cantidades de datos almacenados en los nodos hoja de un nodo de cadena de bloques. Para no impactar la generación de bloques y para reducir el tiempo para el cálculo de una suma de comprobación de datos en un nodo hoja, los datos en un nodo hoja pueden distribuirse a una pluralidad de procesadores en una agrupación de servidores para su procesamiento, y la carga de computación puede distribuirse a través de toda la agrupación de servidores, mejorando de esta manera la eficacia de computación.
Después de que el nodo de cadena de bloques obtiene datos de todos los nodos hoja, el nodo de cadena de bloques puede distribuir, en unidades de nodo hoja, los datos de los nodos hoja a los servidores en la agrupación de servidores. Por ejemplo, el número de servidores en una agrupación de servidores puede ser igual al número de nodos hoja, y a continuación el nodo de cadena de bloques puede enviar datos de un nodo hoja a cada servidor en la agrupación de servidores, provocando que cada servidor en la agrupación de servidores únicamente comprenda datos de un nodo hoja. Además de la manera de distribución anteriormente descrita, puede usarse también una pluralidad de maneras de distribución. Por ejemplo, los nodos hoja y los datos de los nodos hoja se envían a servidores en una agrupación de servidores en una forma de distribución aleatoria. De esta manera, diferentes servidores pueden recibir el mismo número o diferentes números de nodos hoja. Como otro ejemplo, los datos de nodos hoja pueden distribuirse de acuerdo con la cantidad de datos de nodos hoja. En un ejemplo, un nodo de cadena de bloques puede contar la cantidad de datos de cada nodo hoja, y a continuación distribuir de manera equitativa los datos de nodos hoja a los servidores en una agrupación de servidores. Por ejemplo, hay seis nodos hoja con una cantidad de datos de 50 MB, 20 MB, 30 MB, 40 MB, 10 MB, y 10 MB, respectivamente, y a continuación los datos del nodo hoja con una cantidad de datos de 50 MB pueden enviarse al primer servidor en la agrupación de servidores, los datos de los nodos hoja con cantidades de datos de 20 MB y 30 MB pueden enviarse al segundo servidor en la agrupación de servidores, y los datos de los nodos hoja con cantidades de datos de 40 MB, 10 MB, y 10 MB pueden enviarse al tercer servidor en la agrupación de servidores.
Después de que los servidores reciben los datos distribuidos de nodos hoja, los servidores pueden calcular una suma de comprobación de los datos recibidos de cada nodo hoja. Por ejemplo, los servidores calculan un valor MD5 de los datos recibidos de nodos hoja usando un algoritmo de resumen de mensaje (por ejemplo, el algoritmo MD5). Si un servidor recibe datos de dos nodos hoja, es decir, los datos del nodo hoja 1 y los datos del nodo hoja 2, respectivamente, el servidor puede calcular un valor MD5 de los datos del nodo hoja 1 y calcular un valor MD5 de los datos del nodo hoja 2, obteniendo de esta manera una suma de comprobación de los datos recibidos de cada nodo hoja.
En la etapa S102, obtener adicionalmente, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados por los servidores en la agrupación de servidores, una suma de comprobación de raíz de datos en el nodo de cadena de bloques.
En las implementaciones, después de que los servidores en la agrupación de servidores han calculado las sumas de comprobación de los datos de los nodos hoja, cada servidor puede enviar las sumas de comprobación de los datos de los nodos hoja calculados por el servidor al nodo de cadena de bloques. Después de que el nodo de cadena de bloques recibe sumas de comprobación de los datos de todos los nodos hoja almacenados en el nodo de cadena de bloques, el nodo de cadena de bloques puede calcular una suma de comprobación de raíz de los datos en el nodo de cadena de bloques (es decir, el estado) basándose en las sumas de comprobación de los datos de todos los nodos hoja. En este punto, cuando el nodo de cadena de bloques calcula la suma de comprobación de raíz de los datos en el nodo de cadena de bloques, puede proporcionarse una pluralidad de nodos intermedios entre los nodos hoja y el nodo raíz que corresponde a la suma de comprobación de raíz. Como se muestra en la Figura 2, A, B, C, y D son nodos hoja, y A1, a 2, A3, ..., Ap, B1, B2, B3, ..., Bq, C1, C2, C3, ..., Cr, y D1, D2, D3, ..., Dk representan datos, respectivamente. Tomando la suma de comprobación que es un valor de función de troceo como un ejemplo, el valor de función de troceo de nodo hoja A es la función de troceo (A1A2A3...Ap), el valor de función de troceo de nodo hoja B es la función de troceo (B1B2B3...Bq), el valor de función de troceo de nodo hoja C es la función de troceo (C1C2C3...Cr), y el valor de función de troceo de nodo hoja D es la función de troceo (DlD2D3...Dk). M y N son nodos intermedios, y por lo tanto, el valor de función de troceo de nodo hoja M es la función de troceo (AB), el valor de función de troceo de nodo hoja N es la función de troceo (CD). Entonces, la suma de comprobación de raíz del nodo raíz es la función de troceo (Mn ). Comparando la suma de comprobación de raíz obtenida de los datos en el nodo de cadena de bloques con la suma de comprobación de raíz anteriormente descrita mediante el nodo de cadena de bloques que envía nuevos datos de transacción, el nodo de cadena de bloques puede verificar si son válidos los nuevos datos de transacción. Si los nuevos datos de transacción son válidos, el nodo de cadena de bloques puede registrar los datos asociados con la transacción; si los nuevos datos de transacción no son válidos, el nodo de cadena de bloques puede rechazar el registro de los datos asociados con la transacción.
Debería observarse que el proceso de cálculo de suma de comprobación de raíz anteriormente descrito puede completarse también mediante la agrupación de servidores. En un ejemplo, puede proporcionarse un servidor de gestión o una agrupación de servidores de gestión en la agrupación de servidores, y el servidor de gestión o la agrupación de servidores de gestión pueden ajustar y controlar otros servidores en la agrupación de servidores. Después de que otros servidores en la agrupación de servidores han calculado las sumas de comprobación de los datos de los nodos hoja, los otros servidores pueden enviar las sumas de comprobación de los datos de los nodos hoja al servidor de gestión o a la agrupación de servidores de gestión, respectivamente. El servidor de gestión o la agrupación de servidores de gestión pueden calcular una suma de comprobación de raíz de los datos en el nodo de cadena de bloques usando el método de cálculo anteriormente descrito. El servidor de gestión o la agrupación de servidores de gestión pueden enviar la suma de comprobación de raíz obtenida de los datos en el nodo de cadena de bloques al nodo de cadena de bloques, y el nodo de cadena de bloques recibe la suma de comprobación de raíz. A continuación, el nodo de cadena de bloques puede realizar la verificación a través de la suma de comprobación de raíz. El contenido anteriormente relacionado puede referenciarse para detalles, que no se elaborará en este punto.
De esta manera, las sumas de comprobación de los datos de los nodos hoja en el nodo de cadena de bloques se obtienen a través de computación paralela mediante una pluralidad de servidores en la agrupación de servidores, haciendo que el cálculo de una suma de comprobación de raíz de los datos en el nodo de cadena de bloques sea independiente del procesamiento mediante una única máquina, mejorando de esta manera la eficacia de computación de la suma de comprobación de datos.
Las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos, que comprende: distribuir, a los servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en un nodo de cadena de bloques, para que los servidores en la agrupación de servidores calculen sumas de comprobación de los datos de los nodos hoja distribuidos, respectivamente; y obtener adicionalmente, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de los datos en el nodo de cadena de bloques. De esta manera, como los datos de los nodos hoja están distribuidos a la agrupación de servidores, y, entonces, como las sumas de comprobación de los datos de los nodos hoja distribuidos se calculan mediante cada servidor en la agrupación de servidores, los datos pueden distribuirse a la agrupación de servidores para la computación paralela de sumas de comprobación de los datos de los nodos hoja, reduciendo de esta manera el tiempo tomado por el proceso de computación, mejorando la eficacia de computación, y asegurando la generación normal de bloques y operaciones normales de una cadena de bloques.
Como se muestra en la Figura 3, las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos. Una entidad para ejecutar el método puede ser una agrupación de servidores, la agrupación de servidores puede comprender una pluralidad de servidores, y cada servidor puede calcular una suma de comprobación de datos. El método puede comprender las siguientes etapas:
En la etapa S301, recibir datos de un nodo hoja distribuidos mediante un nodo de cadena de bloques.
En las implementaciones, cuando necesitan verificarse los datos en un nodo de cadena de bloques, el nodo de cadena de bloques puede obtener datos de nodos hoja almacenados en el nodo de cadena de bloques, y puede distribuir, en unidades de nodo hoja, los datos de los nodos hoja a los servidores en la agrupación de servidores. El contenido relacionado en la etapa anteriormente descrita S101 puede referenciarse para maneras de distribución y procesos de distribución detallados, que no se elaborarán en este punto. Los servidores en la agrupación de servidores pueden recibir, respectivamente, los datos de los nodos hoja distribuidos mediante el nodo de cadena de bloques, y el contenido relacionado en la etapa anteriormente descrita S101 puede referenciarse para detalles, que no se elaborará en este punto.
En la etapa S302, calcular una suma de comprobación de los datos del nodo hoja distribuidos para obtener una suma de comprobación de raíz de los datos en el nodo de cadena de bloques.
En las implementaciones, los servidores en la agrupación de servidores pueden calcular una suma de comprobación de los datos de cada uno del nodo hoja recibido. Después de que se finaliza el cálculo, los servidores en la agrupación de servidores pueden enviar las sumas de comprobación obtenidas de los datos de los nodos hoja, respectivamente, al nodo de cadena de bloques. El nodo de cadena de bloques puede calcular adicionalmente una suma de comprobación de raíz de los datos en el nodo de cadena de bloques basándose en las sumas de comprobación de los datos de los nodos hoja devueltos por los servidores, y el contenido relacionado en la etapa anteriormente descrita S102 puede referenciarse para detalles, que no se elaborará en este punto.
En algunas otras realizaciones de la presente solicitud, la suma de comprobación de raíz de los datos en el nodo de cadena de bloques puede calcularse también mediante la agrupación de servidores. Como se ha descrito anteriormente, puede proporcionarse un servidor de gestión o una agrupación de servidores de gestión en la agrupación de servidores para realizar de manera agregada el cálculo en la suma de comprobación calculada de los datos de cada nodo hoja para obtener la suma de comprobación de raíz de los datos en el nodo de cadena de bloques. El contenido relacionado en la etapa anteriormente descrita S102 puede referenciarse para detalles, que no se elaborará en este punto.
Las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos, que comprende: distribuir, a los servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en un nodo de cadena de bloques, para que los servidores en la agrupación de servidores calculen sumas de comprobación de los datos de los nodos hoja distribuidos, respectivamente; y obtener adicionalmente, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de los datos en el nodo de cadena de bloques. De esta manera, como los datos de los nodos hoja están distribuidos a la agrupación de servidores, y, entonces, como las sumas de comprobación de los datos de los nodos hoja distribuidos se calculan mediante cada servidor en la agrupación de servidores, los datos pueden distribuirse a la agrupación de servidores para la computación paralela de sumas de comprobación de los datos de los nodos hoja, reduciendo de esta manera el tiempo tomado por el proceso de computación, mejorando la eficacia de computación, y asegurando la generación normal de bloques y operaciones normales de una cadena de bloques.
Realización II
Como se muestra en la Figura 4, las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos. El método de procesamiento de datos puede ejecutarse conjuntamente mediante un nodo de cadena de bloques y una agrupación de servidores. Las realizaciones de la presente solicitud se describirán en detalle tomando la suma de comprobación que es un valor de función de troceo como un ejemplo. Pueden ejecutarse sumas de comprobación en otras formas con referencia al contenido relacionado en las realizaciones de la presente solicitud, que no se elaborará en este punto. El método puede comprender las siguientes etapas:
En la etapa S401, de acuerdo con un número de nodos hoja prestablecidos, el nodo de cadena de bloques envía datos de un número prestablecido de nodos hoja a servidores en la agrupación de servidores, respectivamente.
En este punto, el número prestablecido puede establecerse de acuerdo con situaciones reales, tales como 5, 10, etc., que no se elaborará en las realizaciones de la presente solicitud.
En las implementaciones, cuando se verifican los datos de transacción, a menudo se emplea un mecanismo de diseño de árbol de Merkle para los datos en el nodo de cadena de bloques, para mejorar la eficacia de verificación y reducir el consumo de recursos. Para mejorar, en la mayor medida posible, la eficacia de computación para las sumas de comprobación de los datos en el nodo de cadena de bloques sin cambiar el mecanismo de diseño existente de los datos de cadena de bloques en las realizaciones de la presente solicitud, los datos del nodo de cadena de bloques en las realizaciones de la presente solicitud pueden aún usar el mecanismo de diseño del árbol de Merkle. Un árbol de Merkle puede comprender una pluralidad de nodos hoja (es decir, los cubos), e identificadores de nodo de todos los nodos hoja en el árbol de Merkle pueden registrarse en el nodo de cadena de bloques. Cuando necesitan verificarse los datos de transacción, pueden obtenerse los identificadores de nodo de todos los nodos hoja en el árbol de Merkle.
Como se muestra en la Figura 5, el nodo de cadena de bloques puede obtener datos de todos los nodos hoja basándose en identificadores de nodo de todos los nodos hoja, respectivamente, y puede obtener también el número de nodos hoja almacenados en el nodo de cadena de bloques y el número de servidores en la agrupación de servidores. De acuerdo con el número de servidores y el número de nodos hoja, el nodo de cadena de bloques puede determinar que se distribuya un número de nodos hoja a cada servidor. Por ejemplo, hay un total de 10 nodos hoja, y la agrupación de servidores tiene un total de 10 servidores. A continuación, los datos de un nodo hoja pueden enviarse a cada servidor, o los datos de un grupo de dos o cinco nodos hoja pueden enviarse a un servidor en la agrupación de servidores, respectivamente.
En el proceso en que el nodo de cadena de bloques distribuye los datos de nodos hoja a la agrupación de servidores, el nodo de cadena de bloques puede distribuir también los identificadores de nodo de los nodos hoja a los servidores en la agrupación de servidores. De acuerdo con el identificador de nodo distribuido, un servidor puede enviar un dato que obtiene una instrucción que comprende el identificador de nodo al nodo de cadena de bloques. Cuando el nodo de cadena de bloques recibe la instrucción de obtención de datos, el nodo de cadena de bloques puede extraer el identificador de nodo en la instrucción de obtención de datos, buscar los datos de un correspondiente nodo hoja a través del identificador de nodo, y enviar los datos al correspondiente servidor. De esta manera, la agrupación de servidores puede extraer los datos de correspondientes nodos hoja desde los datos de un correspondiente nodo hoja, respectivamente.
Debería observarse que, en una aplicación de ejemplo, los datos de los nodos hoja pueden distribuirse también a los servidores en la agrupación de servidores de acuerdo con cantidades de datos de los nodos hoja, o los datos de los nodos hoja pueden distribuirse también a los servidores en la agrupación de servidores de una manera aleatoria. El contenido relacionado en la etapa S101 en la realización I puede referenciarse para detalles, que no se elaborará en este punto.
En la etapa S402, la agrupación de servidores calcula sumas de comprobación de los datos de los nodos hoja distribuidos.
En la etapa S403, la agrupación de servidores envía las sumas de comprobación de los datos de los nodos hoja distribuidos al nodo de cadena de bloques.
El contenido relacionado en la realización I puede referenciarse para procesos detallados de la etapa S402 y etapa S403 anteriores, que no se elaborarán en este punto.
En la etapa S404, el nodo de cadena de bloques determina, de acuerdo con las sumas de comprobación anteriores de los nodos hoja, una suma de comprobación de raíz de un árbol de Merkle que corresponde a los nodos hoja.
En las implementaciones, después de que el nodo de cadena de bloques recibe las sumas de comprobación de los nodos hoja enviadas por los servidores en la agrupación de servidores, el nodo de cadena de bloques puede construir un correspondiente árbol de Merkle a través de los nodos hoja. Puesto que se han determinado los valores de función de troceo de los nodos hoja en el árbol de Merkle y únicamente no se ha obtenido aún el valor de función de troceo del nodo raíz del árbol de Merkle (es decir, la suma de comprobación de raíz del árbol de Merkle), el valor de función de troceo del árbol de Merkle que corresponde a los nodos hoja puede calcularse hacia arriba desde los valores de función de troceo de los nodos hoja, obteniendo de esta manera la suma de comprobación de raíz del árbol de Merkle que corresponde a los nodos hoja.
En la etapa S405, el nodo de cadena de bloques asigna la suma de comprobación de raíz del árbol de Merkle a la suma de comprobación de raíz de datos en el nodo de cadena de bloques.
En una aplicación de ejemplo, la suma de comprobación de raíz puede calcularse también mediante la agrupación de servidores, y el procesamiento puede comprender: calcular sumas de comprobación de los datos de los nodos hoja distribuidos; obtener, basándose en las sumas de comprobación de los datos de los nodos hoja distribuidos, una suma de comprobación de raíz de datos en el nodo de cadena de bloques, y enviar la suma de comprobación de raíz al nodo de cadena de bloques. El contenido relacionado en la realización I puede referenciarse para el proceso detallado, que no se elaborará en este punto.
Las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos, que comprende: distribuir, a los servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en un nodo de cadena de bloques, para que los servidores en la agrupación de servidores calculen sumas de comprobación de los datos de los nodos hoja distribuidos, respectivamente; y obtener adicionalmente, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de los datos en el nodo de cadena de bloques. De esta manera, como los datos de los nodos hoja están distribuidos a la agrupación de servidores, y, entonces, como las sumas de comprobación de los datos de los nodos hoja distribuidos se calculan mediante cada servidor en la agrupación de servidores, los datos pueden distribuirse a la agrupación de servidores para la computación paralela de sumas de comprobación de los datos de los nodos hoja, reduciendo de esta manera el tiempo tomado por el proceso de computación, mejorando la eficacia de computación, y asegurando la generación normal de bloques y operaciones normales de una cadena de bloques.
Realización III
Como se muestra en la Figura 6, las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos. El método de procesamiento de datos puede ejecutarse conjuntamente mediante un nodo de cadena de bloques y una agrupación de servidores. Las realizaciones de la presente solicitud se describirán en detalle tomando la suma de comprobación que es un valor de función de troceo como un ejemplo. Pueden ejecutarse sumas de comprobación en otras formas con referencia al contenido relacionado en las realizaciones de la presente solicitud, que no se elaborará en este punto. El método puede comprender las siguientes etapas:
En la etapa S601, el nodo de cadena de bloques distribuye datos de un nodo hoja previamente almacenados a los servidores en la agrupación de servidores.
Los contenidos relacionados en la realización I y la realización II pueden referenciarse para el proceso detallado de la etapa S601, que no se elaborarán en este punto.
En la etapa S602, la agrupación de servidores distribuye, de acuerdo con una cantidad de datos del nodo hoja, los datos del nodo hoja en nodos sub-hoja prestablecidos.
En este punto, no hay relación de asociación entre los nodos sub-hoja y el nodo hoja, tal como una relación de pertenencia, una relación subordinada, una relación de padre, o una relación de hijo. Un nodo sub-hoja puede ser un paquete de datos que comprende una o más piezas de datos, mientras que un nodo hoja (cubo) puede ser un contenedor en el árbol de Merkle para almacenamiento de datos. El número de nodos sub-hoja puede ser mayor que el número de nodos hoja. Por ejemplo, si el número de nodos hoja es 5, entonces el número de nodos sub-hoja puede ser 20.
En las implementaciones, uno o más nodos hoja entre los nodos hoja previamente almacenados en el nodo de cadena de bloques pueden tener una cantidad de datos alta (por ejemplo, que comprende un millón de piezas de datos, etc.). De esta manera, cuando los datos del nodo hoja se distribuyen a un servidor en la agrupación de servidores para calcular el valor de función de troceo del nodo hoja, el servidor necesita empalmar la gran cantidad de datos en los nodos hoja para obtener una cadena de caracteres empalmada, y a continuación calcula el valor de función de troceo de la cadena de caracteres empalmada. Este proceso aún toma una gran cantidad de tiempo, y el consumo de recursos mediante el servidor es aún alto. En vista de esto, puede prestablecerse una pluralidad de nodos sub-hoja, o puede establecerse una cantidad de datos máxima que puede alojar cada nodo sub-hoja para cada nodo sub-hoja de acuerdo con las necesidades reales, por ejemplo, 1 GB o 500 MB. Los datos del nodo hoja pueden distribuirse a la pluralidad prestablecida de nodos sub-hoja en una manera de distribución aleatoria o distribución equitativa.
Puede haber diversas maneras para implementar la etapa S602. Se proporcionará a continuación un método de procesamiento opcional, que puede comprender: ordenar los datos del nodo hoja, seleccionar secuencialmente un número prestablecido de piezas de datos desde los datos ordenados para la colocación en los nodos sub-hoja, respectivamente, y establecer correspondientes identificadores de sub-nodo para los nodos sub-hoja.
De acuerdo con la tasa de procesamiento de datos y la tasa de computación de la suma de comprobación de cada servidor en la agrupación de servidores y de acuerdo con el número de servidores en la agrupación de servidores, la agrupación de servidores puede determinar una cantidad de datos que cada servidor puede procesar mientras se asegura una eficacia de procesamiento de datos global alta (por ejemplo, superior a un umbral de eficacia establecido), y a continuación puede determinar una cantidad de datos o un número de piezas de datos que puede alojar cada nodo sub-hoja. La agrupación de servidores puede calcular la cantidad total de datos de los nodos hoja distribuidos a cada servidor. A continuación, la agrupación de servidores puede ordenar los datos de los nodos hoja distribuidos de acuerdo con indicaciones de tiempo que indican el tiempo cuando se almacenan los datos en el nodo de cadena de bloques, distribuir secuencialmente un número prestablecido de piezas de datos desde la pluralidad ordenada de piezas de datos a cada nodo sub-hoja, y establecer correspondientes identificadores de sub-nodo para los nodos sub­ hoja, respectivamente, de acuerdo con el orden de los datos, para indicar la posición de los datos de un nodo sub­ hoja en los datos de todos los nodos sub-hoja.
Por ejemplo, un nodo sub-hoja distribuido mediante un servidor en la agrupación de servidores se almacena con 50 piezas de datos, cada pieza de datos son 5 MB, y entonces la cantidad de datos son 250 MB. Si la cantidad de datos que puede alojarse mediante cada nodo sub-hoja es 25 MB, entonces 250/25 = 10, y por lo tanto, pueden obtenerse 10 nodos sub-hoja. A continuación, los nodos sub-hoja se numeran como 1-10 como identificadores de sub-nodo de acuerdo con el orden de los datos. Después del procesamiento anteriormente descrito, las posiciones de almacenamiento de las 50 piezas de datos son como sigue: Las piezas N.° 1-5 de datos en el orden se almacenan en un nodo sub-hoja numerado como 1, las piezas N.° 6-10 de datos en el orden se almacenan en un nodo sub-hoja numerado como 2, las piezas N.° 11-15 de datos en el orden se almacenan en un nodo sub-hoja numerado como 3, y así sucesivamente, obteniendo de esta manera la posición de almacenamiento de cada pieza de datos. Puesto que cada pieza de datos son 5 MB, cada nodo sub-hoja puede comprender 5 piezas de datos.
En la etapa S603, la agrupación de servidores calcula una suma de comprobación de los datos de cada nodo sub­ hoja.
En las implementaciones, después de que los servidores en la agrupación de servidores obtienen correspondientes nodos sub-hoja, los servidores pueden obtener datos almacenados en los nodos sub-hoja y a continuación calcular una suma de comprobación de cada nodo sub-hoja usando un algoritmo de comprobación prestablecido. Por ejemplo, pueden almacenarse los datos almacenados en un nodo sub-hoja, y a continuación, puede usarse SHA256 (Algoritmo de Función de Troceo Seguro 256) para los datos almacenados para calcular un valor SHA256 (es decir, el valor de función de troceo) como la suma de comprobación del nodo sub-hoja.
En la etapa S604, la agrupación de servidores calcula una suma de comprobación de los datos del nodo hoja distribuidos de acuerdo con la suma de comprobación de los datos de cada nodo sub-hoja.
En las implementaciones, después de que la agrupación de servidores obtiene la suma de comprobación de cada nodo sub-hoja, las sumas de comprobación de los nodos sub-hoja pueden ordenarse de acuerdo con el orden de los identificadores de sub-nodo. A continuación, la agrupación de servidores puede realizar de manera agregada el cálculo basándose en las sumas de comprobación de los nodos sub-hoja usando un algoritmo de comprobación prestablecido para obtener una suma de comprobación del correspondiente nodo hoja, obteniendo de esta manera una suma de comprobación de los datos del nodo hoja distribuidos mediante el nodo de cadena de bloques.
Por ejemplo, basándose en el ejemplo en la etapa S602, pueden obtenerse respectivos valores de función de troceo de los datos de 10 nodos sub-hoja a través del procesamiento en la etapa S603. Puesto que los datos de los 10 nodos sub-hoja están distribuidos desde los datos de un nodo hoja, el cálculo realizado de manera agregada mostrado en la Figura 2 puede realizarse en los valores de función de troceo obtenidos de los datos de 10 nodos sub-hoja para obtener un valor de función de troceo del correspondiente nodo hoja.
Debería observarse que pueden obtenerse también los datos de nodos sub-hoja en una manera de extracción a través de los identificadores de sub-nodo establecidos de los nodos sub-hoja. En correspondencia, el procesamiento en la etapa S604 puede ser como sigue: calcular una suma de comprobación de los datos del nodo hoja distribuidos de acuerdo con los identificadores de sub-nodo de los nodos sub-hoja y la suma de comprobación de cada nodo sub­ hoja. El contenido anteriormente relacionado puede referenciarse para el procesamiento detallado, que no se elaborará en este punto.
En la etapa S605, la agrupación de servidores envía la suma de comprobación de los datos del nodo hoja distribuidos al nodo de cadena de bloques.
En la etapa S606, el nodo de cadena de bloques determina una suma de comprobación de raíz de un árbol de Merkle que corresponde a los nodos hoja de acuerdo con las sumas de comprobación de los nodos hoja.
En las implementaciones, una suma de comprobación de raíz de datos en el nodo de cadena de bloques puede calcularse usando un algoritmo de comprobación prestablecido basándose en las sumas de comprobación de los nodos hoja. Por ejemplo, de acuerdo con las posiciones de nodos hoja que corresponden a los identificadores de nodo registrados en todos los nodos hoja en el nodo de cadena de bloques, puede obtenerse un árbol de distribución de nodo (es decir, el árbol de Merkle) formado mediante los nodos hoja, tal como A-B-C-F, A-B-E, y A-D. Cuando se obtienen las sumas de comprobación de los nodos hoja (es decir, sumas de comprobación de B+C+D+E+F), puede calcularse una suma de comprobación de raíz del árbol de Merkle de acuerdo con las sumas de comprobación de los nodos hoja, obteniendo de esta manera la suma de comprobación de raíz de los datos del nodo de cadena de bloques.
En la etapa S607, el nodo de cadena de bloques asigna la suma de comprobación de raíz del árbol de Merkle a la suma de comprobación de raíz de los datos en el nodo de cadena de bloques.
Los contenidos relacionados en la realización I y la realización II puede referenciarse para los procesos detallados de la etapa S605 y la etapa S607, que no se elaborará en este punto.
Las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos, que comprende: distribuir identificadores de nodo de nodos hoja a una agrupación de servidores, haciendo que la agrupación de servidores distribuya cada número prestablecido de piezas de datos a nodos sub-hoja de acuerdo con las cantidades de datos obtenidos almacenados en los nodos hoja en una cadena de bloques objetivo, calcular a continuación una suma de comprobación de cada nodo sub-hoja, determinar sumas de comprobación de los correspondientes nodos hoja, y proporcionar finalmente las sumas de comprobación de los nodos hoja a un nodo de cadena de bloques para calcular una suma de comprobación de los datos en el nodo de cadena de bloques. De esta manera, los datos almacenados en los nodos hoja se redistribuyen mediante la agrupación de servidores para obtener los nodos sub­ hoja, y a continuación se calculan sumas de comprobación de los nodos sub-hoja, haciendo que los datos se distribuyan de manera equitativa a la agrupación de servidores de cálculo para la computación paralela de las sumas de comprobación, reduciendo de esta manera el tiempo tomado por el proceso de computación, mejorando la eficacia de computación, y asegurando la generación normal de bloques y operaciones normales de una cadena de bloques.
Realización IV
Como se muestra en la Figura 7, las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos. El método de procesamiento de datos puede ejecutarse conjuntamente mediante un nodo de cadena de bloques y una agrupación de servidores. En este punto, la agrupación de servidores puede comprender adicionalmente una primera agrupación de servidores y una segunda agrupación de servidores, como se muestra en la Figura 8. La Figura 8 proporciona un sistema de procesamiento de datos. El sistema de procesamiento de datos puede comprender agrupaciones de servidores en dos niveles, es decir, la primera agrupación de servidores y la segunda agrupación de servidores, en donde la primera agrupación de servidores se encuentra al menos un nivel por debajo del nodo de cadena de bloques, y la segunda agrupación de servidores se encuentra al menos un nivel por debajo de la primera agrupación de servidores. La estructura jerárquica anterior podría conseguir objetivos tales como una recombinación de datos, distribución de datos, etc., para acelerar la tasa de procesamiento de datos. Las realizaciones de la presente solicitud se describirán en detalle tomando la suma de comprobación que es un valor de función de troceo como un ejemplo. Pueden ejecutarse sumas de comprobación en otras formas con referencia al contenido relacionado en las realizaciones de la presente solicitud, que no se elaborará en este punto. El método puede comprender las siguientes etapas:
En la etapa S701, el nodo de cadena de bloques obtiene un identificador de nodo de un nodo hoja previamente almacenado.
En las implementaciones, cada vez que se almacenan datos en el nodo de cadena de bloques, se genera de manera correspondiente un nodo hoja en el nodo de cadena de bloques, y también se genera un identificador de nodo del nodo hoja. De esta manera, la cadena de bloques puede comprender una pluralidad de nodos hoja, y cada nodo hoja almacena una cantidad de datos. Cada vez que se genera un identificador de nodo, puede almacenarse el identificador de nodo, y puede registrarse la posición de un nodo hoja que corresponde al identificador de nodo en todos los nodos hoja del nodo de cadena de bloques. Por ejemplo, el identificador de nodo generado es F, y la posición del nodo hoja que corresponde al identificador de nodo puede ser A-B-C-F.
En la etapa S702, el nodo de cadena de bloques envía el identificador de nodo a los servidores en la agrupación de servidores.
En las implementaciones, basándose en la estructura de sistema mostrado en la Figura 8, el nodo de cadena de bloques puede obtener datos almacenados en los nodos hoja comprendidos en el nodo de cadena de bloques, y puede dividir identificadores de nodo de los nodos hoja en un grupo o múltiples grupos de acuerdo con una regla de distribución previamente desarrollada o de una manera aleatoria. Cada grupo de los identificadores de nodo puede enviarse a un servidor en la primera agrupación de servidores.
En la etapa S703, la primera agrupación de servidores obtiene, de acuerdo con los identificadores de nodo distribuidos, datos de los nodos hoja que corresponden a los identificadores de nodo desde el nodo de cadena de bloques.
En las implementaciones, un servidor en la primera agrupación de servidores puede enviar una instrucción de obtención de datos que comprende los identificadores de nodo a un dispositivo de cadena de bloques, y a continuación obtener datos de los nodos hoja que corresponden a los identificadores de nodo desde el nodo de cadena de bloques.
En la etapa S704, la primera agrupación de servidores genera uno o más nodos sub-hoja de acuerdo con las cantidades de datos obtenidos de los nodos hoja.
En este punto, como se ha descrito anteriormente, no hay relación de asociación entre los nodos sub-hoja y el nodo hoja en las realizaciones de la presente solicitud, tal como una relación de pertenencia, una relación subordinada, una relación padre, o una relación de hijo. Un nodo sub-hoja puede ser un paquete de datos que comprende una o más piezas de datos, mientras que un nodo hoja (cubo) puede ser un contenedor en el árbol de Merkle para almacenamiento de datos.
En las implementaciones, puede prestablecerse una cantidad de datos o un número de piezas de datos que un nodo sub-hoja puede alojar, por ejemplo, 100 MB o 10 piezas. Puede calcularse la cantidad total de datos de los nodos hoja distribuidos a cada servidor en la primera agrupación de servidores, y pueden generarse uno o más nodos sub-hoja de acuerdo con la cantidad de datos o el número de piezas de datos que puede alojar cada nodo sub-hoja.
En la etapa S705, la primera agrupación de servidores ordena los datos de los nodos hoja, selecciona secuencialmente un número prestablecido de piezas de datos desde los datos ordenados para su colocación en correspondientes nodos sub-hoja, respectivamente, y establece correspondientes identificadores de sub-nodo para los nodos sub-hoja.
En las implementaciones, pueden probarse previamente las duraciones de tiempo tomadas por cualquier servidor en la primera agrupación de servidores para calcular valores de función de troceo para una y múltiples piezas de datos en una manera de prueba repetida, a partir de lo cual puede seleccionarse un número de piezas de datos que corresponde a una duración de tiempo relativamente corta y una carga de procesamiento relativamente baja en el servidor. Este número de piezas puede establecerse como el número prestablecido de piezas, por ejemplo, 30 o 50 piezas. Puesto que se proporciona cada pieza de datos con una indicación de tiempo en el proceso de almacenamiento o transacción de cadena de bloques, puede determinarse el tiempo de almacenamiento o transacción de cada pieza de datos a través de la indicación de tiempo. De esta manera, puede obtenerse la indicación de tiempo en cada pieza de datos, y puede ordenarse una pluralidad de piezas de datos de acuerdo con el orden de las indicaciones de tiempo. Un número prestablecido de piezas de datos puede seleccionarse secuencialmente desde la pluralidad ordenada de piezas de datos y distribuirse en correspondientes nodos sub-hoja, respectivamente. Para etiquetar el orden de los datos distribuidos en diferentes nodos sub-hoja, pueden establecerse identificadores de sub-nodo para correspondientes nodos sub-hoja basándose en los datos distribuidos.
Por ejemplo, el número prestablecido de piezas es tres piezas, y los datos de un nodo hoja pueden comprender A, B, C, D, E, F, G, H, y K. Después de que se ordenan los datos de acuerdo con las indicaciones de tiempo, el orden de los datos anteriores puede ser H-G-F-E-D-C-B-A-K. A continuación, pueden distribuirse tres piezas de datos H-G-F en un nodo sub-hoja, pueden distribuirse tres piezas de datos E-D-C en un nodo sub-hoja, y pueden distribuirse tres piezas de datos B-A-K en un nodo sub-hoja. Para etiquetar el orden de datos almacenados en los tres nodos sub-hoja, el identificador de sub-nodo del nodo sub-hoja donde está ubicado H-G-F puede establecerse como el sub-nodo 1, el identificador de sub-nodo del nodo sub-hoja donde está ubicado E-D-C puede establecerse como el sub-nodo 2, y el identificador de sub-nodo del nodo sub-hoja donde está ubicado B-A-K puede establecerse como el sub-nodo 3.
En la etapa S706, la primera agrupación de servidores distribuye los datos de los nodos sub-hoja a los servidores en la segunda agrupación de servidores.
En las implementaciones, pueden obtenerse los datos de índice tales como el ancho de banda actualmente restante y/o la tasa de transmisión de datos de cada servidor en la segunda agrupación de servidores, respectivamente. La capacidad de cálculo de cada servidor en la primera agrupación de servidores puede evaluarse basándose en los datos de índice obtenidos, y pueden enviarse los datos de correspondientes nodos sub-hoja a los servidores en la segunda agrupación de servidores de acuerdo con la magnitud de las capacidades de computación.
Adicionalmente, para mejorar la eficacia de computación tanto como sea posible, puede ajustarse el número de los nodos sub-hoja distribuidos a los servidores en la segunda agrupación de servidores. En un ejemplo, pueden obtenerse los datos de índice tales como el ancho de banda restante actual y/o la tasa de transmisión de datos de cada servidor en la segunda agrupación de servidores, respectivamente. La capacidad de computación de cada servidor puede evaluarse basándose en los datos de índice obtenidos, y los correspondientes nodos sub-hoja pueden distribuirse a los servidores en la segunda agrupación de servidores de acuerdo con la magnitud de las capacidades de computación. Por ejemplo, la segunda agrupación de servidores comprende cinco servidores, y dos nodos sub-hoja pueden distribuirse a cada servidor. Si se determina a través de la computación que un servidor en la segunda agrupación de servidores tiene la capacidad de computación más potente, entonces los datos de 3 de los 10 nodos sub-hoja superiores pueden enviarse a este servidor. Si se determina a través de la computación que un servidor en la segunda agrupación de servidores tiene la capacidad de computación más débil, a continuación los datos de 1 de los 10 nodos sub-hoja superiores pueden enviarse a este servidor. De la manera anteriormente descrita, el uno o más nodos sub-hoja generados pueden proporcionarse a los servidores en la segunda agrupación de servidores de una manera equilibrada.
En la etapa S707, la segunda agrupación de servidores calcula un valor de función de troceo de cada nodo sub-hoja y realimenta el valor de función de troceo a correspondientes servidores en la primera agrupación de servidores.
En las implementaciones, después de que un servidor en la segunda agrupación de servidores recibe correspondientes nodos sub-hoja, el servidor puede extraer datos en cada nodo sub-hoja y ordenar los datos de acuerdo con el orden de indicaciones de tiempo de los datos. El servidor puede obtener una cadena de caracteres formada mediante los datos ordenados y usar un algoritmo de función de troceo prestablecido para calcular un valor de función de troceo de esta cadena de caracteres, es decir, el valor de función de troceo del nodo sub-hoja. Con el método anteriormente descrito, la segunda agrupación de servidores puede obtener un valor de función de troceo de cada nodo sub-hoja, que puede a continuación enviarse, mediante correspondientes servidores, a correspondientes servidores en la primera agrupación de servidores.
En la etapa S708, la primera agrupación de servidores determina un valor de función de troceo del nodo hoja distribuido de acuerdo con el valor de función de troceo de cada nodo sub-hoja e identificadores de sub-nodo de los nodos sub­ hoja enviados mediante la segunda agrupación de servidores.
En las implementaciones, después de que los servidores en la primera agrupación de servidores reciben las sumas de comprobación de los nodos sub-hoja devueltas por la segunda agrupación de servidores, los servidores pueden obtener un identificador de sub-nodo de cada nodo sub-hoja, respectivamente. A continuación, los servidores pueden ordenar los nodos sub-hoja de acuerdo con el identificador de sub-nodo de cada nodo sub-hoja, y pueden recopilar valores de función troceo de los nodos sub-hoja ordenados para obtener un valor de función de troceo de los nodos sub-hoja. Por ejemplo, puede determinarse un orden de valores de función de troceo de los nodos sub-hoja de acuerdo con el orden de los nodos sub-hoja, y los valores de función de troceo ordenados pueden formar una cadena de caracteres. Un valor de función de troceo de la cadena de caracteres puede calcularse usando un algoritmo de función de troceo prestablecido, y el valor de función de troceo es el valor de función de troceo del correspondiente nodo hoja. Además, pueden usarse otras maneras de cálculo de valor de función de troceo para determinar el valor de función de troceo del nodo hoja. Por ejemplo, puede calcularse un promedio de valores de función de troceo de uno o más nodos sub-hoja como el valor de función de troceo del nodo hoja; como alternativa, el valor de función de troceo del nodo hoja puede obtenerse basándose en un peso de cada nodo sub-hoja y un valor de función de troceo de cada nodo sub-hoja.
En la etapa S709, la primera agrupación de servidores envía el valor de función de troceo del nodo hoja distribuido al nodo de cadena de bloques.
En la etapa S710, el nodo de cadena de bloques determina, de acuerdo con las sumas de comprobación de los nodos hoja, una suma de comprobación de raíz de un árbol de Merkle que corresponde a los nodos hoja, y asigna la suma de comprobación de raíz del árbol de Merkle a una suma de comprobación de raíz de los datos en el nodo de cadena de bloques.
Las realizaciones de la presente solicitud proporcionan un método de procesamiento de datos, que comprende: generar, de acuerdo con una cantidad de datos de nodos hoja en un nodo de cadena de bloques, uno o más nodos sub-hoja distribuidos con un número prestablecido de piezas de datos, a continuación distribuir los nodos sub-hoja a una segunda agrupación de servidores para calcular una suma de comprobación de cada nodo sub-hoja, determinar sumas de comprobación de los correspondientes nodo hoja de acuerdo con la suma de comprobación de cada nodo sub-hoja, y proporcionar finalmente las sumas de comprobación de los nodos hoja al nodo de cadena de bloques para calcular una suma de comprobación de raíz de los datos en el nodo de cadena de bloques. De esta manera, los datos almacenados en los nodos hoja se redistribuyen mediante una primera agrupación de servidores para obtener los nodos sub-hoja, y a continuación los nodos sub-hoja se distribuyen a la segunda agrupación de servidores para calcular sumas de comprobación, haciendo que los datos se distribuyan de manera equitativa a la segunda agrupación de servidores para la computación paralela de las sumas de comprobación, reduciendo de esta manera el tiempo tomado por el proceso de computación, mejorando la eficacia de computación, y asegurando la generación normal de bloques y operaciones normales de una cadena de bloques.
Realización V
Lo anteriormente descrito son los métodos de procesamiento de datos proporcionados mediante las realizaciones de la presente solicitud. Basándose en el mismo concepto, las realizaciones de la presente solicitud proporcionan adicionalmente un dispositivo de procesamiento de datos, como se muestra en la Figura 9.
El dispositivo de procesamiento de datos puede ser el nodo de cadena de bloques proporcionado en las realizaciones anteriores, y en un ejemplo, puede ser un dispositivo terminal (por ejemplo, un ordenador personal, etc.) o un servidor. El dispositivo puede comprender un módulo de distribución de datos 901 y un módulo de obtención de suma de comprobación 902 de raíz, en donde
el módulo de distribución de datos 901 está configurado para distribuir, a servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en un nodo de cadena de bloques, para que los servidores en la agrupación de servidores calculen sumas de comprobación de los datos de los nodos hoja distribuidos, respectivamente; y
el módulo de obtención de suma de comprobación de raíz 902 está configurado para obtener adicionalmente, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de los datos en el nodo de cadena de bloques.
En las realizaciones de la presente solicitud, el módulo de obtención de suma de comprobación de raíz 902 está configurado para recibir la suma de comprobación de raíz de los datos en el nodo de cadena de bloques enviados mediante los servidores en la agrupación de servidores.
En las realizaciones de la presente solicitud, el módulo de obtención de suma de comprobación de raíz 902 está configurado para determinar, de acuerdo con las sumas de comprobación de los nodos hoja, una suma de comprobación de raíz de un árbol de Merkle que corresponde a los nodos hoja; y asignar la suma de comprobación de raíz del árbol de Merkle a la suma de comprobación de raíz de los datos en el nodo de cadena de bloques.
En las realizaciones de la presente solicitud, el módulo de distribución de datos 901 está configurado para, de acuerdo con un número de nodos hoja previamente establecido en el nodo de cadena de bloques, enviar datos de un número prestablecido de nodos hoja a servidores en la agrupación de servidores, respectivamente.
En las realizaciones de la presente solicitud, la suma de comprobación es un valor de función de troceo.
Las realizaciones de la presente solicitud proporcionan un dispositivo de procesamiento de datos configurado para distribuir, a servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en un nodo de cadena de bloques, para que los servidores en la agrupación de servidores calculen sumas de comprobación de los datos de los nodos hoja distribuidos, respectivamente; y obtener adicionalmente, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de los datos en el nodo de cadena de bloques. De esta manera, como los datos de los nodos hoja están distribuidos a la agrupación de servidores, y, entonces, como las sumas de comprobación de los datos de los nodos hoja distribuidos se calculan mediante cada servidor en la agrupación de servidores, los datos pueden distribuirse a la agrupación de servidores para la computación paralela de sumas de comprobación de los datos de los nodos hoja, reduciendo de esta manera el tiempo tomado por el proceso de computación, mejorando la eficacia de computación, y asegurando la generación normal de bloques y operaciones normales de una cadena de bloques.
Realización IV
Basándose en el mismo concepto, las realizaciones de la presente solicitud proporcionan adicionalmente un dispositivo de procesamiento de datos, como se muestra en la Figura 10.
El dispositivo de procesamiento de datos puede ser la agrupación de servidores proporcionada en las realizaciones anteriores, y el dispositivo puede comprender un módulo de recepción de datos 1001 y un módulo de obtención de suma de comprobación 1002, en donde el módulo de recepción de datos 1001 está configurado para recibir datos de un nodo hoja distribuidos mediante un nodo de cadena de bloques; y el módulo de obtención de suma de comprobación 1002 está configurado para calcular una suma de comprobación de los datos del nodo hoja distribuidos para obtener una suma de comprobación de raíz de los datos en el nodo de cadena de bloques.
En las realizaciones de la presente solicitud, el dispositivo comprende adicionalmente:
un módulo de distribución de datos configurado para, de acuerdo con una cantidad de datos del nodo hoja, distribuir los datos del nodo hoja en nodos sub-hoja prestablecidos;
un módulo de cálculo configurado para calcular una suma de comprobación de los datos de cada nodo sub-hoja; y
en correspondencia, el módulo de obtención de suma de comprobación 1002 está configurado para, de acuerdo con la suma de comprobación de los datos de cada nodo sub-hoja, calcular una suma de comprobación de los datos del nodo hoja distribuidos.
En las realizaciones de la presente solicitud, el módulo de distribución de datos está configurado para ordenar los datos del nodo hoja, seleccionar secuencialmente un número prestablecido de piezas de datos desde los datos ordenados para su colocación en los nodos sub-hoja, respectivamente, y establecer correspondientes identificadores de sub-nodo para los nodos sub-hoja; y
en correspondencia, el módulo de obtención de suma de comprobación 1002 está configurado para, de acuerdo con los identificadores de sub-nodo de los nodos sub-hoja y la suma de comprobación de cada uno de los nodos sub-hoja, calcular una suma de comprobación de los datos del nodo hoja distribuidos.
En las realizaciones de la presente solicitud, el módulo de obtención de suma de comprobación 1002 está configurado para calcular la suma de comprobación de los datos del nodo hoja distribuidos, y enviar la suma de comprobación de los datos del nodo hoja distribuidos al nodo de cadena de bloques para que el nodo de cadena de bloques calcule la suma de comprobación de raíz de los datos en el nodo de cadena de bloques de acuerdo con la suma de comprobación de los datos del nodo hoja; o calcular la suma de comprobación de los datos del nodo hoja distribuidos, obtener la suma de comprobación de raíz de los datos en el nodo de cadena de bloques basándose en la suma de comprobación de los datos del nodo hoja distribuidos, y enviar la suma de comprobación de raíz al nodo de cadena de bloques.
Las realizaciones de la presente solicitud proporcionan un dispositivo de procesamiento de datos configurado para distribuir, a servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en un nodo de cadena de bloques, para que los servidores en la agrupación de servidores calculen sumas de comprobación de los datos de los nodos hoja distribuidos, respectivamente; y obtener adicionalmente, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de los datos en el nodo de cadena de bloques. De esta manera, como los datos de los nodos hoja están distribuidos a la agrupación de servidores, y, entonces, como las sumas de comprobación de los datos de los nodos hoja distribuidos se calculan mediante cada servidor en la agrupación de servidores, los datos pueden distribuirse a la agrupación de servidores para la computación paralela de sumas de comprobación de los datos de los nodos hoja, reduciendo de esta manera el tiempo tomado por el proceso de computación, mejorando la eficacia de computación, y asegurando la generación normal de bloques y operaciones normales de una cadena de bloques.
En la década de 1990, una mejora de una tecnología se puede diferenciar obviamente en una mejora de hardware (por ejemplo, una mejora de la estructura de un circuito, tal como un diodo, un transistor, un interruptor, etc.) o una mejora de software (una mejora de un flujo de un método). Sin embargo, con el desarrollo tecnológico, muchas de las mejoras actuales de los flujos de métodos pueden considerarse mejoras directas de las estructuras de los circuitos de hardware. Los diseñadores casi siempre obtienen una estructura de circuito de hardware correspondiente programando un flujo de método mejorado en un circuito de hardware. Por lo tanto, no se puede concluir que no se pueda realizar una mejora en el flujo de un método con un módulo de hardware. Por ejemplo, el dispositivo lógico programable (PLD) (por ejemplo, la matriz de puerta programable en campo (FP-GA)) es un circuito integrado tal que las funciones lógicas del circuito integrado las determina un usuario mediante la programación del dispositivo. Un diseñador programa por sí mismo para "integrar" un sistema digital en una pieza de PLD, sin necesidad de pedirle a un fabricante de chips que diseñe y fabrique un chip CI exclusivo. En la actualidad, además, este tipo de programación se ha implementado principalmente a través de software de "compilador lógico", en lugar de fabricar manualmente los chips CI. El software del compilador lógico es similar a un compilador de software utilizado para el desarrollo y la escritura de programas, mientras que se debe utilizar un lenguaje de programación particular para escribir códigos fuente antes de la compilación, que se conoce como lenguaje de descripción de hardware (HDL). No hay solo uno, sino muchos tipos de HDL, tales como ABEL (lenguaje de expresiones booleanas avanzadas), AHDL (lenguaje de descripción de hardware Altera), Confluence, CUPL (lenguaje de programación de la Universidad de Cornell), HDCal, JHDL (lenguaje de descripción de hardware Java), Lava, Lola, MyHDL, PALASM, RHDL (lenguaje de descripción de hardware Ruby), etc. El más utilizado en este momento incluye VHDL (lenguaje de descripción de hardware de circuito integrado de muy alta velocidad) y Verilog. Un experto en la técnica también debería saber que sería muy fácil obtener un circuito de hardware para implementar un flujo de método lógico utilizando los HDL anteriores para llevar a cabo una pequeña programación lógica de bits en el flujo de método y programar el flujo de método en un CI.
Un controlador puede implementarse de cualquier manera adecuada. Por ejemplo, un controlador puede estar en, por ejemplo, una forma de microprocesador o procesador, así como un medio legible por ordenador que almacena códigos de programa legibles por ordenador (por ejemplo, software o firmware) capaces de ser ejecutados por el (micro)procesador, una puerta lógica, un interruptor, un circuito integrado de aplicación específica (ASIC), un controlador lógico programable y un microcontrolador integrado. Los ejemplos del controlador incluyen, pero sin limitaciones, los siguientes microcontroladores: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 y Silicone Labs C8051F320. Un controlador de memoria puede implementarse además como parte de una lógica de control de una memoria. Un experto en la materia debería ser consciente de que, además de que un controlador está implementado de una manera de códigos de programa legibles por ordenador puros, es totalmente factible realizar programación lógica en etapas de un método para posibilitar que un controlador implemente las mismas funciones en una forma de una puerta lógica, un conmutador, un ASIC, un controlador de lógica programable, un microcontrolador embebido, etc. Por lo tanto, tal controlador puede considerarse como una parte de hardware, mientras que los dispositivos comprendidos en el controlador y configurados para conseguir diversas funciones pueden considerarse también como una estructura dentro de la parte de hardware. Como alternativa, los dispositivos configurados para lograr diversas funciones pueden incluso considerarse como módulos de software para implementar un método y una estructura dentro de una parte de hardware.
El sistema, aparato, módulo o unidad descrito en las realizaciones anteriores puede implementarse mediante un chip o entidad de ordenador, o implementarse mediante un producto que tiene una función. Un dispositivo de implementación típico es un ordenador. En un ejemplo, un ordenador puede ser, por ejemplo, un ordenador personal, un ordenador portátil, un teléfono móvil, 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, una tableta, un dispositivo portátil o una combinación de cualquier dispositivo en estos dispositivos.
Por conveniencia de la descripción, el dispositivo anterior se divide en varias unidades de acuerdo con las funciones para la descripción. Las funciones de las unidades pueden implementarse en una o más piezas de software y/o hardware cuando se implementa la presente solicitud.
Un experto en la técnica debería comprender que las realizaciones de la presente invención pueden proporcionarse como un método, un sistema o un producto de programa informático. Por lo tanto, la presente invención puede implementarse como una realización completa de hardware, una realización completa de software o una realización que combine software y hardware. Además, la presente invención puede tener la forma de un producto de programa informático implementado en uno o más medios de almacenamiento utilizables por ordenador (que incluyen, entre otros, una memoria de disco magnético, CD-ROM, una memoria óptica, etc.) que comprende códigos de programa utilizables por un ordenador.
La presente invención se describe con referencia a diagramas de flujo y/o diagramas de bloques del método, dispositivo (sistema) y producto de programa informático según las realizaciones de la presente invención. Debe entenderse que se puede utilizar una instrucción de programa informático para implementar cada proceso y/o bloque en los diagramas de flujo y/o diagramas de bloques y una combinación de procesos y/o bloques en los diagramas de flujo y/o diagramas de bloques. Estas instrucciones del programa informático pueden proporcionarse para un ordenador de uso general, un ordenador de uso especial, un procesador integrado o un procesador de otros dispositivos de procesamiento de datos programables para generar una máquina, lo que hace que las instrucciones sean ejecutadas por un ordenador o un procesador de otros dispositivos de procesamiento de datos programables para generar un aparato para implementar una función especificada en uno o más procesos en los diagramas de flujo y/o en uno o más bloques en los diagramas de bloques.
Estas instrucciones del programa informático también pueden almacenarse en una memoria legible por ordenador que puede instruir a un ordenador u otros dispositivos de procesamiento de datos programables para que funcionen de una manera particular, haciendo que las instrucciones almacenadas en la memoria legible por ordenador generen un artículo fabricado que incluye un aparato de instrucciones. El aparato de instrucciones implementa una función especificada en uno o más procesos en los diagramas de flujo y/o en uno o más bloques en los diagramas de bloques.
Estas instrucciones del programa informático también pueden cargarse en un ordenador u otros dispositivos de procesamiento de datos programables, provocando que se realicen una serie de etapas operativas en el ordenador u otros dispositivos programables, generando así un procesamiento implementado por ordenador. Por tanto, las instrucciones ejecutadas en el ordenador u otros dispositivos programables proporcionan etapas para implementar una función especificada en uno o más procesos en los diagramas de flujo y/o en uno o más bloques en los diagramas de bloques.
En una configuración típica, el dispositivo de cálculo incluye uno o más procesadores (CPU), interfaces de entrada/salida, interfaces de red y una memoria.
La memoria puede incluir medios legibles por ordenador, tal como una memoria volátil, una memoria de acceso aleatorio (RAM) y/o una memoria no volátil, por ejemplo, una memoria de sólo lectura (ROM) o una memoria RAM flash. La memoria es un ejemplo de un medio legible por ordenador.
Medios legibles por ordenador incluyen medios permanentes, volátiles, móviles e inmóviles, que pueden implementar almacenamiento de información a través de cualquier método o tecnología. La información pueden ser instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos. Los ejemplos de medios de almacenamiento de ordenadores incluyen, entre otros, memorias de acceso aleatorio de cambio de fase (PRAM), memorias de acceso aleatorio estáticas (SRAM), memorias de acceso aleatorio dinámico (DRAM), otros tipos de memorias de acceso aleatorio (RAM), memorias de solo lectura (ROM), memorias de solo lectura programables y borrables eléctricamente (EEPROM), memorias flash u otras tecnologías de memoria, memorias de disco compacto de solo lectura (CD-ROM), discos versátiles digitales (DVD) u otras memorias ópticas, casetes, memorias de casete y disco u otros dispositivos de memoria magnética, o cualquier otro medio que no sea de transmisión que pueda usarse para almacenar información accesible a un dispositivo de computación. De acuerdo con las definiciones de la memoria descriptiva, los medios legibles por ordenador no incluyen medios transitorios, tales como señales y portadoras de datos modulados.
Cabe señalar además que los términos "que incluye", "que comprende" o cualquier otra variante de los términos pretenden abarcar una inclusión no exclusiva, lo que provoca que un proceso, método, producto básico o dispositivo que comprenda una serie de elementos no solo comprendan estos elementos, sino que también comprendan otros elementos que no están claramente enumerados, o comprendan además elementos que son inherentes al proceso, método, producto básico o dispositivo. Cuando no hay ninguna restricción adicional, los elementos definidos por la declaración "que comprende uno ..." no excluyen que un proceso, método, producto básico o dispositivo que comprende los elementos anteriores comprenda además elementos idénticos adicionales.
Un experto en la técnica debería comprender que las realizaciones de la presente solicitud pueden proporcionarse como un método, un sistema o un producto de programa informático. Por lo tanto, la presente solicitud puede implementarse como una realización de hardware completa, una realización de software completa o una realización que combina software y hardware. Además, la presente solicitud puede tener la forma de un producto de programa informático implementado en uno o más medios de almacenamiento utilizables por ordenador (que incluyen, pero sin limitación, una memoria de disco magnético, CD-ROM, una memoria óptica, etc.) que comprende códigos de programa utilizables por ordenador.
La presente solicitud puede describirse en un contexto regular de una instrucción ejecutable por ordenador que es ejecutada por un ordenador, tal como un módulo de programa. Generalmente, el módulo de programa comprende una rutina, un programa, un objeto, un componente, una estructura de datos, etc., para ejecutar una tarea particular o implementar un tipo de datos abstracto particular. La presente aplicación también se puede poner en práctica en entornos informáticos distribuidos. En estos entornos informáticos distribuidos, los dispositivos de procesamiento remoto conectados a través de redes de comunicación realizan tareas. En los entornos informáticos distribuidos, un módulo de programa puede estar ubicado en un medio de almacenamiento informático local y remoto, incluidos los dispositivos de almacenamiento.
Las realizaciones en esta memoria descriptiva se describen de una manera progresiva con cada realización enfocada en las diferencias de otras realizaciones y las realizaciones pueden ser referenciadas mutuamente para partes idénticas o similares. En particular, la realización del sistema se describe de una manera relativamente simple, ya que la realización del sistema es sustancialmente similar a la realización del método. La descripción de la realización del método puede hacer referencia a las partes relacionadas.

Claims (15)

REIVINDICACIONES
1. Un método de procesamiento de datos, que comprende:
distribuir (S601), mediante un nodo de cadena de bloques, a los servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en el nodo de cadena de bloques;
distribuir (S602), mediante cada servidor en la agrupación de servidores, los datos del correspondiente nodo hoja de manera equitativa en una pluralidad de nodos sub-hoja de acuerdo con una cantidad de datos del correspondiente nodo hoja;
calcular (S603) en paralelo, mediante los servidores en la agrupación de servidores, una suma de comprobación para los datos de cada uno de la correspondiente pluralidad de nodos sub-hoja;
calcular (S604), mediante los servidores en la agrupación de servidores, una suma de comprobación de los datos de los nodos hoja de acuerdo con la suma de comprobación de los datos de cada nodo sub-hoja;
obtener, mediante el nodo de cadena de bloques, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculadas mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de datos en el nodo de cadena de bloques.
2. El método de acuerdo con la reivindicación 1, en donde la obtención, mediante el nodo de cadena de bloques, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, de una suma de comprobación de raíz de datos en el nodo de cadena de bloques comprende: recibir la suma de comprobación de raíz de los datos en el nodo de cadena de bloques enviados mediante los servidores en la agrupación de servidores.
3. El método de acuerdo con la reivindicación 1, en donde la obtención, mediante el nodo de cadena de bloques, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, de una suma de comprobación de raíz de datos en el nodo de cadena de bloques comprende:
determinar, de acuerdo con las sumas de comprobación de los nodos hoja, una suma de comprobación de raíz de un árbol de Merkle que corresponde a los nodos hoja; y
asignar la suma de comprobación de raíz del árbol de Merkle a la suma de comprobación de raíz de los datos en el nodo de cadena de bloques.
4. El método de acuerdo con una cualquiera de las reivindicaciones 1-3, en donde la distribución, mediante un nodo de cadena de bloques, a servidores en una agrupación de servidores, de datos de nodos hoja previamente almacenados en el nodo de cadena de bloques comprende:
de acuerdo con un número de los nodos hoja previamente almacenados en el nodo de cadena de bloques, enviar respectivamente datos de un número prestablecido de nodos hoja a servidores en la agrupación de servidores.
5. El método de acuerdo con una cualquiera de las reivindicaciones 1-4, en donde las sumas de comprobación son valores de función de troceo.
6. Un método de procesamiento de datos, que comprende:
recibir, mediante un servidor de una agrupación de servidores, datos de un nodo hoja distribuidos mediante un nodo de cadena de bloques; y
distribuir (S602), mediante el servidor, datos del nodo hoja de manera equitativa en una pluralidad de nodos sub­ hoja de acuerdo con una cantidad de datos del nodo hoja;
calcular (S603) en paralelo, mediante el servidor, una suma de comprobación para los datos de cada uno de la pluralidad de nodos sub-hoja;
calcular, mediante el servidor, de acuerdo con las sumas de comprobación de los datos de la pluralidad de nodos sub-hoja, una suma de comprobación de los datos del nodo hoja distribuidos para el nodo de cadena de bloques para obtener una suma de comprobación de raíz de datos en el nodo de cadena de bloques.
7. El método de acuerdo con la reivindicación 6 en donde, la distribución, mediante el servidor, de datos del nodo hoja de manera equitativa en una pluralidad de nodos sub-hoja de acuerdo con una cantidad de datos del nodo hoja, comprende:
ordenar los datos del nodo hoja;
seleccionar secuencialmente un número prestablecido de piezas de datos desde los datos almacenados para su colocación en los nodos sub-hoja; y
establecer correspondientes identificadores de sub-nodo para los nodos sub-hoja,
y en donde, de acuerdo con las sumas de comprobación de los datos de la pluralidad de nodos sub-hoja, calcular la suma de comprobación de los datos del nodo hoja distribuidos comprende:
de acuerdo con los identificadores de sub-nodo de los nodos sub-hoja y la suma de comprobación de cada uno de los nodos sub-hoja, calcular la suma de comprobación de los datos del nodo hoja distribuidos.
8. El método de acuerdo con la reivindicación 6, en donde el cálculo, de acuerdo con las sumas de comprobación de los datos de la pluralidad de nodos sub-hoja, de una suma de comprobación de los datos del nodo hoja distribuidos para obtener una suma de comprobación de raíz de datos en el nodo de cadena de bloques comprende:
calcular la suma de comprobación de los datos del nodo hoja distribuidos, y enviar la suma de comprobación de los datos del nodo hoja distribuidos al nodo de cadena de bloques para que el nodo de cadena de bloques calcule la suma de comprobación de raíz de los datos en el nodo de cadena de bloques de acuerdo con la suma de comprobación de los datos del nodo hoja; o
calcular la suma de comprobación de los datos del nodo hoja distribuidos, obtener la suma de comprobación de raíz de los datos en el nodo de cadena de bloques basándose en la suma de comprobación de los datos del nodo hoja distribuidos, y enviar la suma de comprobación de raíz al nodo de cadena de bloques.
9. Un dispositivo de procesamiento de datos, que comprende:
un módulo de distribución de datos (901) configurado para distribuir, a servidores en una agrupación de servidores, datos de nodos hoja previamente almacenados en un nodo de cadena de bloques, para que cada servidor en la agrupación de servidores distribuya los datos del correspondiente nodo hoja de manera equitativa en una pluralidad de nodos sub-hoja de acuerdo con una cantidad de datos del nodo hoja, calcular en paralelo una suma de comprobación para los datos de cada uno de la pluralidad de nodos sub-hoja, y calcular, de acuerdo con las sumas de comprobación de los datos de la pluralidad de nodos sub-hoja, una suma de comprobación de los datos del correspondiente nodo hoja, respectivamente; y
un módulo de obtención de suma de comprobación de raíz (902) configurado para obtener, de acuerdo con las sumas de comprobación de los datos de los nodos hoja calculados mediante los servidores en la agrupación de servidores, una suma de comprobación de raíz de datos en el nodo de cadena de bloques.
10. El dispositivo de acuerdo con la reivindicación 9, en donde el módulo de obtención de suma de comprobación de raíz (902) está configurado para recibir la suma de comprobación de raíz de los datos en el nodo de cadena de bloques enviados mediante los servidores en la agrupación de servidores, o, en donde el módulo de obtención de suma de comprobación de raíz está configurado para determinar, de acuerdo con las sumas de comprobación de los nodos hoja, una suma de comprobación de raíz de un árbol de Merkle que corresponde a los nodos hoja; y asignar la suma de comprobación de raíz del árbol de Merkle a la suma de comprobación de raíz de los datos en el nodo de cadena de bloques.
11. El dispositivo de acuerdo con las reivindicaciones 9 o 10, en donde el módulo de distribución de datos (901) está configurado para, de acuerdo con un número de los nodos hoja previamente almacenados en el nodo de cadena de bloques, enviar respectivamente datos de un número prestablecido de nodos hoja a servidores en la agrupación de servidores.
12. El dispositivo de acuerdo con una cualquiera de las reivindicaciones 9-11, en donde las sumas de comprobación son valores de función de troceo.
13. Un dispositivo de procesamiento de datos, que comprende:
un módulo de recepción de datos configurado para recibir datos de un nodo hoja distribuidos mediante un nodo de cadena de bloques;
un módulo de distribución de datos (1001) configurado para distribuir los datos del nodo hoja de manera equitativa en una pluralidad de nodos sub-hoja de acuerdo con una cantidad de datos del nodo hoja;
un módulo de cálculo configurado para calcular en paralelo una suma de comprobación de datos de cada nodo sub-hoja;
y
un módulo de obtención de suma de comprobación (1002) configurado para, de acuerdo con las sumas de comprobación de los datos de la pluralidad de nodos sub-hoja, calcular una suma de comprobación de los datos del nodo hoja distribuidos para obtener una suma de comprobación de raíz de datos en el nodo de cadena de bloques.
14. El dispositivo de acuerdo con la reivindicación 13,
en donde, el módulo de distribución de datos (1001) está configurado para ordenar los datos del nodo hoja, seleccionar secuencialmente un número prestablecido de piezas de datos desde los datos ordenados para su colocación en los nodos sub-hoja, y establecer correspondientes identificadores de sub-nodo para los nodos sub-hoja,
y en donde el módulo de obtención de suma de comprobación (1002) está configurado para, de acuerdo con los identificadores de sub-nodo de los nodos sub-hoja y la suma de comprobación de cada de los nodos sub-hoja, calcular la suma de comprobación de los datos del nodo hoja distribuidos.
15. El dispositivo de acuerdo con la reivindicación 13, en donde el módulo de obtención de suma de comprobación (1002) está configurado para calcular la suma de comprobación de los datos del nodo hoja distribuidos, y enviar la suma de comprobación de los datos del nodo hoja distribuidos al nodo de cadena de bloques para que el nodo de cadena de bloques calcule la suma de comprobación de raíz de los datos en el nodo de cadena de bloques de acuerdo con la suma de comprobación de los datos del nodo hoja; o
calcular la suma de comprobación de los datos del nodo hoja distribuidos, obtener la suma de comprobación de raíz de los datos en el nodo de cadena de bloques basándose en la suma de comprobación de los datos del nodo hoja distribuidos, y enviar la suma de comprobación de raíz al nodo de cadena de bloques.
ES18753905T 2017-02-17 2018-02-07 Método y dispositivo de procesamiento de datos Active ES2859560T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710085752.6A CN107040582B (zh) 2017-02-17 2017-02-17 一种数据处理方法及装置
PCT/CN2018/075571 WO2018149345A1 (zh) 2017-02-17 2018-02-07 一种数据处理方法及装置

Publications (1)

Publication Number Publication Date
ES2859560T3 true ES2859560T3 (es) 2021-10-04

Family

ID=59533525

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18753905T Active ES2859560T3 (es) 2017-02-17 2018-02-07 Método y dispositivo de procesamiento de datos

Country Status (18)

Country Link
US (2) US11392612B2 (es)
EP (1) EP3554051B1 (es)
JP (1) JP6940615B2 (es)
KR (1) KR102284972B1 (es)
CN (1) CN107040582B (es)
AU (2) AU2018221097B2 (es)
BR (1) BR112019016423B1 (es)
CA (1) CA3051065C (es)
ES (1) ES2859560T3 (es)
MX (1) MX2019009291A (es)
MY (1) MY190059A (es)
PH (1) PH12019501852A1 (es)
PL (1) PL3554051T3 (es)
RU (1) RU2724136C1 (es)
SG (1) SG11201906738SA (es)
TW (1) TWI682652B (es)
WO (1) WO2018149345A1 (es)
ZA (1) ZA201904735B (es)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107040582B (zh) 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置
CN107612973B (zh) * 2017-08-18 2020-12-11 暨南大学 用于智能移动端的区块链结构、生成方法及交易验证方法
CN107705208A (zh) * 2017-10-12 2018-02-16 南京网数信息科技有限公司 一种基于哈希树的数字资产处理方法和系统
CN107992356B (zh) * 2017-12-13 2021-09-14 深圳壹账通智能科技有限公司 区块链事务区块处理方法、电子装置及可读存储介质
CN108521328B (zh) * 2018-03-26 2020-08-28 杭州秘猿科技有限公司 一种区块链共识方法、装置及电子设备
WO2019207503A1 (en) 2018-04-27 2019-10-31 nChain Holdings Limited Partitioning a blockchain network
CN109032803B (zh) 2018-08-01 2021-02-12 创新先进技术有限公司 数据处理方法和装置、客户端
CN109359222B (zh) * 2018-08-06 2021-07-06 杭州复杂美科技有限公司 数据存储方法及系统、设备和存储介质
CN109412600A (zh) * 2018-09-03 2019-03-01 何祥果 一种基于磁性特征的标识号编码方法
WO2020056570A1 (zh) * 2018-09-18 2020-03-26 柯宾汉数位金融科技有限公司 应用分片机制的区块网的区块产生方法及区块网系统
CN109345388B (zh) * 2018-09-20 2020-09-08 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
CN109360095A (zh) * 2018-09-27 2019-02-19 深圳技术大学(筹) 一种区块链交易数据的处理方法、装置及终端设备
CN109361661B (zh) * 2018-10-08 2020-07-10 莆田市烛火信息技术有限公司 一种依附相关链算力的区块链的共识装置
US11520773B2 (en) 2018-10-09 2022-12-06 International Business Machines Corporation Blockchain notification board storing blockchain resources
US11303442B2 (en) 2018-10-09 2022-04-12 International Business Machines Corporation Blockchain notification board storing blockchain resources
US10997159B2 (en) * 2018-10-09 2021-05-04 International Business Machines Corporation Blockchain notification board storing blockchain resources
CN109658238B (zh) * 2018-10-26 2020-06-16 阿里巴巴集团控股有限公司 数据处理方法及装置
CN109754251B (zh) * 2018-12-27 2022-02-01 石更箭数据科技(上海)有限公司 一种数据处理方法及其装置、介质、终端
US20220092209A1 (en) * 2019-01-10 2022-03-24 Bitnobi, Inc. Distributed governance for sharing of big data
CN110009510A (zh) * 2019-01-22 2019-07-12 阿里巴巴集团控股有限公司 基于区块链的业务处理系统、方法、计算设备及存储介质
TWI708154B (zh) * 2019-04-24 2020-10-21 國際信任機器股份有限公司 適用於區塊鏈與鏈下間協作的驗證系統與方法
SG11202002912XA (en) * 2019-08-01 2021-03-30 Advanced New Technologies Co Ltd Shared blockchain data storage based on error correction code
CN110528600A (zh) * 2019-08-06 2019-12-03 福建工大岩土工程研究所有限公司 一种桩基检测系统及方法
CN110445684B (zh) * 2019-08-09 2021-04-02 中国信息通信研究院 一种区块链性能基准测试方法和装置
KR102163930B1 (ko) * 2019-09-30 2020-10-12 넷마블 주식회사 블록체인 보상을 통한 분산 컴파일 시스템
CN110753105B (zh) * 2019-10-17 2022-09-06 中国建设银行股份有限公司 数据传输方法、装置、系统、电子设备及存储介质
US11838400B2 (en) * 2019-11-19 2023-12-05 International Business Machines Corporation Image encoding for blockchain
TWI728571B (zh) * 2019-11-26 2021-05-21 中華電信股份有限公司 區塊鏈服務的資源管理方法及系統
CN111209336B (zh) * 2019-12-30 2020-09-15 广州博士信息技术研究院有限公司 基于区块链的数据分配方法、装置及服务器
CN111367916B (zh) * 2020-03-04 2023-03-31 浙江大华技术股份有限公司 一种数据存储方法及装置
CN111488343A (zh) * 2020-04-08 2020-08-04 北京瑞策科技有限公司 基于业务数据区块链的电商数据上链方法及装置
CN111708844B (zh) * 2020-08-24 2020-12-01 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置及设备
CN112905607B (zh) * 2021-05-07 2022-02-01 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112988908B (zh) * 2021-05-07 2021-10-15 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112988912B (zh) * 2021-05-07 2021-11-02 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112988761B (zh) * 2021-05-07 2022-04-08 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN113839989B (zh) * 2021-08-28 2022-08-05 西安交通大学 一种多节点数据处理方法
CN113765665B (zh) * 2021-11-10 2022-02-08 济南量子技术研究院 基于量子密钥的区块链网络及数据安全传输方法
CN114466004A (zh) * 2022-03-24 2022-05-10 成都新希望金融信息有限公司 一种文件传输方法、系统、电子设备及存储介质
CN114844911A (zh) * 2022-04-20 2022-08-02 网易(杭州)网络有限公司 数据存储方法、装置、电子设备及计算机可读存储介质

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
EP1654649B1 (en) 2003-08-14 2015-12-23 Oracle International Corporation On demand node and server instance allocation and de-allocation
US20070038572A1 (en) * 2005-08-09 2007-02-15 International Business Machines Corporation Method, system and computer program for metering software usage
JP2007257556A (ja) 2006-03-26 2007-10-04 Wiz Win Kk 文字入力装置
JP4767057B2 (ja) * 2006-03-27 2011-09-07 富士通株式会社 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
US8204912B2 (en) * 2006-09-08 2012-06-19 Oracle International Corporation Insertion rate aware b-tree
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US9740727B2 (en) * 2008-10-10 2017-08-22 Abb Schweiz Ag Method and a system for replicating databases
US8345707B2 (en) 2009-06-03 2013-01-01 Voxer Ip Llc Method for synchronizing data maintained at a plurality of nodes
CN101651719B (zh) * 2009-09-11 2013-06-12 广东宇天科技有限公司 通信系统、均衡服务器及数据验证方法
CA2810991C (en) 2010-09-09 2016-06-21 Nec Corporation Storage system
CN102158559B (zh) * 2011-04-18 2016-05-18 浙江工业大学 一种基于p2p网络的负载均衡的方法
TWI483138B (zh) * 2012-10-12 2015-05-01 Acer Inc 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體
CN103902617B (zh) 2012-12-28 2017-06-09 华为技术有限公司 分布式数据库同步方法和系统
US20140245020A1 (en) * 2013-02-22 2014-08-28 Guardtime Ip Holdings Limited Verification System and Method with Extra Security for Lower-Entropy Input Records
RU2609078C2 (ru) 2013-08-29 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Система управления индексацией партнерских объявлений
US9870591B2 (en) 2013-09-12 2018-01-16 Netspective Communications Llc Distributed electronic document review in a blockchain system and computerized scoring based on textual and visual feedback
EP3095044B1 (en) * 2013-11-19 2020-09-23 Top Galore Limited Block mining methods and apparatus
US9256549B2 (en) 2014-01-17 2016-02-09 Netapp, Inc. Set-associative hash table organization for efficient storage and retrieval of data in a storage system
US10664530B2 (en) 2014-03-08 2020-05-26 Microsoft Technology Licensing, Llc Control of automated tasks executed over search engine results
US20160098723A1 (en) 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
RU2580425C1 (ru) 2014-11-28 2016-04-10 Общество С Ограниченной Ответственностью "Яндекс" Способ структуризации хранящихся объектов в связи с пользователем на сервере и сервер
US9659047B2 (en) * 2014-12-03 2017-05-23 Netapp, Inc. Data deduplication utilizing extent ID database
US9547555B2 (en) * 2015-01-12 2017-01-17 Microsoft Technology Licensing, Llc Change tracking using redundancy in logical time
PT3259871T (pt) * 2015-02-20 2020-11-10 Ericsson Telefon Ab L M Método para proporcionar um valor de dispersão para uma parte de dados, dispositivo eletrónico e programa de computador
US9911007B2 (en) * 2015-02-27 2018-03-06 Guardtime IP Holdings, Ltd. Redundant fail-safe synchronization in a data authentication infrastructure
US10503445B2 (en) * 2015-03-23 2019-12-10 Netapp, Inc. Data structure store and data management
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
SG11201708000PA (en) 2015-03-31 2017-10-30 Nasdaq Inc Systems and methods of blockchain transaction recordation
US10509684B2 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Blockchain integration for scalable distributed computations
EP3281145B1 (en) * 2015-04-10 2019-11-06 Telefonaktiebolaget LM Ericsson (publ) Verification paths of leaves of a tree
US20160306373A1 (en) * 2015-04-16 2016-10-20 Fujitsu Limited Authenticated down-sampling of time-series data
JP6571375B2 (ja) * 2015-04-24 2019-09-04 国立大学法人 筑波大学 著作物保護支援装置
AU2016288644A1 (en) 2015-07-02 2018-02-22 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US9298806B1 (en) 2015-07-08 2016-03-29 Coinlab, Inc. System and method for analyzing transactions in a distributed ledger
US20170011460A1 (en) 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US20170031676A1 (en) 2015-07-27 2017-02-02 Deja Vu Security, Llc Blockchain computer data distribution
US10303887B2 (en) * 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
US10713210B2 (en) * 2015-10-13 2020-07-14 Microsoft Technology Licensing, Llc Distributed self-directed lock-free RDMA-based B-tree key-value manager
EP3362965A4 (en) 2015-10-13 2019-08-07 Transactive Grid Inc. USING A DISTRIBUTED CONSENSUS CONTROL BASED ON A BLOCK CHAIN
CN105719185B (zh) * 2016-01-22 2019-02-15 杭州复杂美科技有限公司 区块链的数据对比及共识方法
AU2017216289A1 (en) 2016-02-04 2018-09-27 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computer systems
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
KR101637868B1 (ko) * 2016-02-22 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
US10475030B2 (en) 2016-02-22 2019-11-12 Bank Of America Corporation System for implementing a distributed ledger across multiple network nodes
US20170264428A1 (en) 2016-03-08 2017-09-14 Manifold Technology, Inc. Data storage system with blockchain technology
US9985964B2 (en) 2016-03-28 2018-05-29 Black Gold Coin, Inc. Systems and methods for providing block chain-based multifactor personal identity verification
CN105868369B (zh) * 2016-03-30 2019-10-01 电子科技大学 一种基于Merkle树结构的数据模型验证系统与方法
US10204341B2 (en) 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US20170345011A1 (en) * 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
CN106126722B (zh) * 2016-06-30 2019-10-18 中国科学院计算技术研究所 一种基于验证的前缀混合树及设计方法
CN106330431A (zh) * 2016-08-29 2017-01-11 北京瑞卓喜投科技发展有限公司 基于区块链技术的数据处理方法、装置及系统
US10177908B2 (en) * 2016-08-30 2019-01-08 Workday, Inc. Secure storage decryption system
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system
US10785022B2 (en) 2016-09-13 2020-09-22 Hiroshi Watanabe Network without abuse of a private key
US10565570B2 (en) * 2016-09-27 2020-02-18 The Toronto-Dominion Bank Processing network architecture with companion database
US10339014B2 (en) * 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system
US20180114205A1 (en) 2016-10-21 2018-04-26 Bank Of America Corporation Distributed ledger system for providing aggregate tracking and threshold triggering
CN106341421B (zh) * 2016-10-31 2019-04-02 杭州云象网络技术有限公司 一种基于区块链技术的数据交换方法
US10169872B2 (en) * 2016-11-02 2019-01-01 International Business Machines Corporation Classification of severity of pathological condition using hybrid image representation
US10116450B1 (en) 2016-11-02 2018-10-30 ISARA Corporation Merkle signature scheme using subtrees
CN106603198A (zh) 2016-12-02 2017-04-26 深圳大学 具有网络编码的区块链分布式存储方法及系统
US10243939B2 (en) * 2016-12-23 2019-03-26 Amazon Technologies, Inc. Key distribution in a distributed computing environment
CN106796688B (zh) 2016-12-26 2020-12-18 深圳前海达闼云端智能科技有限公司 区块链的权限控制方法、装置、系统及节点设备
US10523526B2 (en) * 2016-12-28 2019-12-31 Acronis International Gmbh System and method for managing services and licenses using a blockchain network
US10447480B2 (en) * 2016-12-30 2019-10-15 Guardtime Sa Event verification receipt system and methods
DE112017006701T5 (de) 2016-12-30 2019-09-19 Intel Corporation Internet der Dinge
CN106686087A (zh) 2016-12-30 2017-05-17 先锋支付有限公司 一种区块链截断方法及分布式节点
US10572872B2 (en) 2017-01-06 2020-02-25 FirstBlood Technologies, Inc. Decentralized competitive arbitration using digital ledgering
CN107040582B (zh) 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
RU2724136C1 (ru) 2020-06-22
PH12019501852A1 (en) 2020-06-15
TW201832099A (zh) 2018-09-01
US20200167366A1 (en) 2020-05-28
BR112019016423A2 (pt) 2020-04-07
JP6940615B2 (ja) 2021-09-29
AU2018221097A1 (en) 2019-08-01
EP3554051A4 (en) 2020-01-01
KR102284972B1 (ko) 2021-08-03
CN107040582A (zh) 2017-08-11
CA3051065A1 (en) 2018-08-23
MX2019009291A (es) 2019-10-30
CN107040582B (zh) 2020-08-14
PL3554051T3 (pl) 2021-07-05
US20190332608A1 (en) 2019-10-31
BR112019016423B1 (pt) 2021-08-31
CA3051065C (en) 2020-08-18
TWI682652B (zh) 2020-01-11
EP3554051B1 (en) 2021-01-20
KR20190098765A (ko) 2019-08-22
JP2020507866A (ja) 2020-03-12
US11392612B2 (en) 2022-07-19
SG11201906738SA (en) 2019-09-27
US10747780B2 (en) 2020-08-18
ZA201904735B (en) 2020-08-26
EP3554051A1 (en) 2019-10-16
AU2019101603A4 (en) 2020-01-23
AU2018221097B2 (en) 2020-07-09
WO2018149345A1 (zh) 2018-08-23
MY190059A (en) 2022-03-24

Similar Documents

Publication Publication Date Title
ES2859560T3 (es) Método y dispositivo de procesamiento de datos
TWI695260B (zh) 區塊資料校驗方法和裝置
AU2019101567A4 (en) Method and apparatus for consensus verification
ES2700431T3 (es) Método y dispositivo de procesamiento de datos en un sistema de clúster
Esiner et al. Flexdpdp: Flexlist-based optimized dynamic provable data possession
CN105138478B (zh) 一种非平衡哈希树的存储器完整性保护方法
CN101853190A (zh) 一种适用于嵌入式处理器的数据完整性验证方法
CN104298687B (zh) 一种哈希分区管理方法及装置
CN108765159A (zh) 一种基于区块链的上链与状态处理方法、装置及互联系统
CN109191287A (zh) 一种区块链智能合约的分片方法、装置及电子设备
CN109460406A (zh) 一种数据处理方法及装置
CN106201851A (zh) 堆内存操作的检测方法及装置
CN115550251B (zh) 区块链网络、节点集合的维护方法及装置
Gadasin et al. An Algorithm for Distributing Data between Storage Systems Based on the Property of Self-Similarity
JP2024519695A (ja) シリアル化トークンを統合するための装置および方法
JP2024517169A (ja) シリアル化トークンを分割するための装置および方法
CN117171265A (zh) 基于异构计算的分布式存储方法、系统、设备及介质
WO2022219209A1 (es) Nuevo paquete de contenido de datos, sistema y procedimiento, para la actualización segura en redes de registros distribuidos