ES2824517T3 - Método y sistema para descubrimiento de nodo y autorrestablecimiento de redes de cadena de bloques - Google Patents
Método y sistema para descubrimiento de nodo y autorrestablecimiento de redes de cadena de bloques Download PDFInfo
- Publication number
- ES2824517T3 ES2824517T3 ES17739732T ES17739732T ES2824517T3 ES 2824517 T3 ES2824517 T3 ES 2824517T3 ES 17739732 T ES17739732 T ES 17739732T ES 17739732 T ES17739732 T ES 17739732T ES 2824517 T3 ES2824517 T3 ES 2824517T3
- Authority
- ES
- Spain
- Prior art keywords
- processing server
- computing device
- communication
- agreement
- message
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000006854 communication Effects 0.000 claims abstract description 287
- 238000004891 communication Methods 0.000 claims abstract description 287
- 238000012545 processing Methods 0.000 claims abstract description 270
- 230000005540 biological transmission Effects 0.000 claims abstract description 53
- 238000005192 partition Methods 0.000 claims description 19
- 230000015654 memory Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/0836—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/286—Time to live
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/26—Route discovery packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Automation & Control Theory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
Un método para la configuración automática de una red de comunicación, que comprende: generar (602), por un módulo de generación de un servidor de procesamiento, un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento; transmitir electrónicamente (604), por un dispositivo de transmisión del servidor de procesamiento, el mensaje de petición generado como un mensaje de difusión a una pluralidad de dispositivos informáticos usando un puerto de protocolo de datagrama de usuario, UDP, predefinido, en el que el mensaje de difusión se transmite con un tiempo de vida predeterminado; recibir (606), por un dispositivo de recepción del servidor de procesamiento, uno o más mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos, se transmite por el respectivo dispositivo informático usando el puerto de UDP predefinido, e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión, TCP, especificado; identificar (608), por un módulo de identificación de datos del servidor de procesamiento, al menos uno del uno o más mensajes de acuerdo para el establecimiento de comunicación; y establecer (610), por un módulo de comunicación del servidor de procesamiento, una conexión de comunicación al dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo; en el que, si el al menos un mensaje identificado de acuerdo no incluye al menos un número predeterminado de mensajes de acuerdo, el método comprende adicionalmente: repetir, por el servidor de procesamiento, las etapas de transmisión, recepción, identificación y establecimiento con un segundo tiempo de vida, en el que el segundo tiempo de vida es un valor mayor que el tiempo de vida predeterminado; en el que no se establecen conexiones de comunicación para mensajes de acuerdo recibidos usando el tiempo de vida predeterminado, y el al menos un mensaje de acuerdo identificado usando el segundo tiempo de vida incluye al menos el número predeterminado de mensajes de acuerdo; y en el que identificar el al menos uno del uno o más mensajes de acuerdo usando el segundo tiempo de vida incluye priorizar mensajes de acuerdo que incluyen direcciones de comunicación que corresponden a direcciones de comunicación incluidas en el al menos un mensaje de acuerdo identificado usando el tiempo de vida predeterminado.
Description
DESCRIPCIÓN
Método y sistema para descubrimiento de nodo y autorrestablecimiento de redes de cadena de bloques
Campo
La presente divulgación se refiere a la configuración automática de una red de comunicación, específicamente el descubrimiento y autoconfiguración y autorrestablecimiento de las redes de comunicación, incluyendo redes de cadena de bloques, que son resistentes a particiones a través del uso de múltiples tiempos de conexión y tiempos de vida variables.
Antecedentes
Las redes de comunicación se establecen a menudo para una amplia variedad de diferentes razones. Algunas redes de comunicación pueden ser pequeñas, redes de área local usadas para conectar dispositivos en una casa o empresa, mientras que otras redes de comunicación pueden ser redes grandes de sistemas y dispositivos interconectados que cubren ciudades, países o el mundo. En algunos tipos de redes, tales como redes de cadena de bloques, un nuevo dispositivo o sistema que quiere conectarse en la red primero debe conectarse a uno de un puñado de sistemas de alojamiento anteriormente identificados. Estos sistemas anteriormente identificados a menudo están o bien preprogramados en el programa de conexión o bien su información de conexión se introduce manualmente por un operador cuando se establece la conexión.
En cualquier caso, la conexión de un dispositivo o sistema en la red de comunicación requiere conocimiento previo de direcciones de comunicación específicas. En tales casos, si un nuevo dispositivo o sistema quiere participar en la red de comunicación, debe obtenerse primero tal información. Como resultado, la configuración automática de tales redes es imposible sin establecer primero los sistemas de alojamiento, obtener su información de comunicación, y preprogramar los programas de conexión para utilizar la información de conexión. Adicionalmente, cualquier cambio a la información de conexión de los sistemas de alojamiento después de que se establece la red de comunicación resultaría en un nodo incapaz de reconectarse si se pierde la conexión, y requeriría que ese nodo tuviera su programa de conexión actualizado con la información de conexión cambiada. Para redes de comunicación que pueden cubrir miles o millones de dispositivos informáticos en grandes distancias, tal configuración detallada, que puede requerir una actualización constante, puede ser ineficiente y poco fiable.
Por lo tanto, existe una necesidad de una solución tecnológica para proporcionar una configuración automática eficiente y autorrestablecimiento de las redes de comunicación que no requieren el uso de direcciones de comunicación preprogramadas o introducidas manualmente, en la que un dispositivo o sistema puede conectarse automáticamente en la red sin el uso de direcciones de comunicación anteriormente identificadas. La técnica anterior incluye los documentos US 2013/191434 A1, US 2013/059656 A1 y EP 2408173 A1.
El documento US2013/191434 A1 divulga un método en el que un protocolo de TCP permite el transporte fiable de notificaciones y se usa protocolo de UDP para autodescubrimiento de nodos y organización automática de topología de nodos.
El documento US2013/059656 A1 divulga un método para comprobar si el cliente es un dispositivo local o un dispositivo remoto. Un servidor recibe un mensaje que incluye una petición para un acceso de un cliente. El mensaje puede transmitirse por el cliente, un servidor externo o un servidor retransmisor, al que accede el cliente. A través de un análisis del mensaje recibido, puede identificarse si el cliente es el cliente local o el cliente remoto.
El documento EP2408173 A1 divulga un método para determinar ubicaciones de cliente para clientes locales y remotos. La información de ubicación se almacena en perfiles de ubicación.
Sumario
La presente divulgación proporciona una descripción de sistemas y métodos para la configuración automática de una red de comunicación y configuración de una red de comunicación resistente a particiones.
Un método para la configuración automática de una red de comunicación incluye: generar, por un módulo de generación de un servidor de procesamiento, un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento; transmitir electrónicamente, por un dispositivo de transmisión del servidor de procesamiento, el mensaje de petición generado como un mensaje de difusión a una pluralidad de dispositivos informáticos usando un puerto de protocolo de datagrama de usuario (UDP) predefinido, en el que el mensaje de difusión se transmite con un tiempo de vida predeterminado; recibir, por un dispositivo de recepción del servidor de procesamiento, uno o más mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos, se transmite por el respectivo dispositivo informático usando el puerto de UDP predefinido, e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión (TCP) especificado; identificar,
por un módulo de identificación de datos del servidor de procesamiento, al menos uno del uno o más mensajes de acuerdo para el establecimiento de comunicación; y establecer, por un módulo de comunicación del servidor de procesamiento, una conexión de comunicación al dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo.
Un método para la configuración de una red de comunicación resistente a particiones incluye: generar, por un módulo de generación de un servidor de procesamiento, un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento; transmitir electrónicamente, por un dispositivo de transmisión del servidor de procesamiento, el mensaje de petición generado a una pluralidad de dispositivos informáticos; recibir, por un dispositivo de recepción del servidor de procesamiento, un conjunto de mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión (TCP) especificado; identificar, por un módulo de identificación de datos del servidor de procesamiento, un dispositivo informático distante y al menos un dispositivo informático local de la pluralidad de dispositivos informáticos desde donde se recibe cada mensaje de acuerdo, en el que el dispositivo informático distante tiene una mayor distancia geográfica al servidor de procesamiento que cada uno del al menos un dispositivo informático local; y establecer, por un módulo de comunicación del servidor de procesamiento, una conexión de comunicación al dispositivo informático distante y cada uno del al menos un dispositivo informático local usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo.
Un sistema para la configuración automática de una red de comunicación incluye: un módulo de generación de un servidor de procesamiento configurado para generar un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento; un dispositivo de transmisión del servidor de procesamiento configurado para transmitir electrónicamente el mensaje de petición generado como un mensaje de difusión a una pluralidad de dispositivos informáticos usando un puerto de protocolo de datagrama de usuario (UDP) predefinido, en el que el mensaje de difusión se transmite con un tiempo de vida predeterminado; un dispositivo de recepción del servidor de procesamiento configurado para recibir uno o más mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos, se transmite por el respectivo dispositivo informático usando el puerto de UDP predefinido, e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión (TCP) especificado; un módulo de identificación de datos del servidor de procesamiento configurado para identificar al menos uno del uno o más mensajes de acuerdo para el establecimiento de comunicación; y un módulo de comunicación del servidor de procesamiento configurado para establecer una conexión de comunicación al dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo.
Un sistema para la configuración de una red de comunicación resistente a particiones incluye: un módulo de generación de un servidor de procesamiento configurado para generar un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento; un dispositivo de transmisión del servidor de procesamiento configurado para transmitir electrónicamente el mensaje de petición generado a una pluralidad de dispositivos informáticos; un dispositivo de recepción del servidor de procesamiento configurado para recibir un conjunto de mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión (TCP) especificado; un módulo de identificación de datos del servidor de procesamiento configurado para identificar un dispositivo informático distante y al menos un dispositivo informático local de la pluralidad de dispositivos informáticos desde donde se recibe cada mensaje de acuerdo, en el que el dispositivo informático distante tiene una mayor distancia geográfica al servidor de procesamiento que cada uno del al menos un dispositivo informático local; y un módulo de comunicación del servidor de procesamiento configurado para establecer una conexión de comunicación al dispositivo informático distante y cada uno del al menos un dispositivo informático local usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo.
La presente invención define métodos de acuerdo con las reivindicaciones 1 y 9, y aparatos de acuerdo con las reivindicaciones 13 y 21. En las reivindicaciones dependientes se exponen realizaciones adicionales 2-8, 10-12, 14 20 y 22-25.
Breve descripción de las figuras de los dibujos
El alcance de la presente divulgación se entiende mejor a partir de la siguiente descripción detallada de realizaciones ilustrativas cuando se leen en conjunción con los dibujos adjuntos. En los dibujos se incluyen las siguientes figuras:
La Figura 1 es un diagrama de bloques que ilustra una arquitectura de sistema de alto nivel para la configuración automática de una red de comunicación resistente a particiones de acuerdo con realizaciones ilustrativas.
La Figura 2 es un diagrama de bloques que ilustra el servidor de procesamiento de la Figura 1 para la configuración automática de una red de comunicación resistente a particiones de acuerdo con realizaciones ilustrativas.
La Figura 3 es un diagrama de flujo que ilustra un proceso para la conexión automática del servidor de
procesamiento de la Figura 2 a un dispositivo informático en una red de comunicación usando el sistema de la Figura 1 de acuerdo con realizaciones ilustrativas.
La Figura 4 es un diagrama de flujo que ilustra un proceso para la configuración automática de una red de comunicación resistente a particiones a través del uso de un dispositivo informático distante en el sistema de la Figura 1 de acuerdo con realizaciones ilustrativas.
La Figura 5 es un diagrama de flujo que ilustra un proceso para la configuración automática de una red de comunicación que implica al servidor de procesamiento de la Figura 2 de acuerdo con realizaciones ilustrativas. La Figura 6 es un diagrama de flujo que ilustra un método ilustrativo para la configuración automática de una red de comunicación de acuerdo con realizaciones ilustrativas.
La Figura 7 es un diagrama de flujo que ilustra un método ilustrativo para la configuración de una red de comunicación resistente a particiones de acuerdo con realizaciones ilustrativas.
La Figura 8 es un diagrama de bloques que ilustra una arquitectura de sistema informático de acuerdo con realizaciones ilustrativas.
Áreas de aplicabilidad adicionales de la presente divulgación serán evidentes a partir de la descripción detallada proporcionada en lo sucesivo. Debería entenderse que la descripción detallada de realizaciones ilustrativas se concibe para propósitos de ilustración únicamente y, por lo tanto, no se conciben para limitar necesariamente el alcance de la divulgación.
Descripción detallada
Glosario de términos
Cadena de bloques - un libro mayor público de todas las transacciones de una moneda basada en cadena de bloques. Uno o más dispositivos informáticos pueden comprender una red de cadena de bloques, que puede configurarse para procesar y registrar transacciones como parte de un bloque en la cadena de bloques. Una vez que se ha completado un bloque, el bloque se añade a la cadena de bloques y el registro de transacción se actualiza de este modo. En muchos casos, la cadena de bloques puede ser un libro mayor de transacciones en orden cronológico, o puede presentarse en cualquier orden que puede ser adecuado para su uso por la red de cadena de bloques. En algunas configuraciones, las transacciones registradas en la cadena de bloques pueden incluir una dirección de destino y una cantidad de moneda, de manera que la cadena de bloques registra qué cantidad de moneda es atribuible a una dirección específica. En algunos casos, las transacciones son financieras y otras no financieras, o podrían incluir información diferente o adicional, tal como una dirección de origen, indicación de tiempo, etc. En algunas realizaciones, una cadena de bloques puede incluir, también o como alternativa, casi cualquier tipo de datos como una forma de transacción que se coloca o es necesario colocar en una base de datos distribuida y sin permisos que mantiene una lista de registros de datos continuamente creciente, reforzada contra manipulaciones indebidas y revisiones, incluso por sus operadores, y puede ser confirmada y validada por la red de cadena de bloques a través de prueba de trabajo y/o cualquier otra técnica de verificación adecuada asociada a la misma. En algunos casos, los datos con respecto a una transacción dada pueden incluir adicionalmente datos adicionales que no son directamente parte de la transacción adjunta a los datos de transacción. En algunos casos, la inclusión de dichos datos en una cadena de bloques puede constituir una transacción. En tales casos, una cadena de bloques puede no estar directamente asociada con una moneda de tipo específico digital, virtual, fiduciario o de otro tipo. En algunos casos, la participación en una cadena de bloques (por ejemplo, como un nodo que envía y/o que confirma transacciones) puede ser sin permisos (por ejemplo, no moderada o restringida). En otros casos, una cadena de bloques puede ser una cadena de bloques con permiso en la que solo dispositivos informáticos autorizados pueden operar como nodos, en la que un nivel de participación puede basarse en sus permisos asociados.
Sistema para la configuración automática de redes de comunicación resistentes a particiones
La Figura 1 ilustra un sistema 100 para la configuración automática de una red de comunicación, incluyendo la configuración automática de una red de comunicación resistente a particiones, a través del uso de mensajes de petición difundidos a través de puertos de comunicación predefinidos.
El sistema 100 puede incluir un servidor de procesamiento 102. El servidor de procesamiento 102, analizado en más detalle a continuación, puede configurarse para configurarse a sí mismo automáticamente para su participación en una red de comunicación. En algunas realizaciones, la configuración automática realizada por el servidor de procesamiento 102 puede aumentar la resistencia de la red de comunicación a particiones de red que pueden producirse como resultado de la pérdida de comunicaciones entre otros nodos en la red de comunicación.
El sistema 100 también puede incluir una pluralidad de dispositivos informáticos 104, ilustrados en la Figura 1 como los dispositivos informáticos 104a, 104b, 104c, 104d y 104e. Cada dispositivo informático 104 puede ser un nodo en una red de comunicación que está configurado automáticamente usando los métodos analizados en este documento. Un dispositivo informático 104 puede ser cualquier tipo de dispositivo informático adecuado para realizar las funciones analizadas en este documento, tal como un ordenador de sobremesa, ordenador portátil, mini ordenador portátil, ordenador de tableta, circuito integrado específico de la aplicación, teléfono celular, teléfono inteligente, televisión inteligente, reloj inteligente, dispositivo informático ponible, dispositivo informático implantable, etc. Redes de
comunicación que pueden ser adecuadas para la configuración automática usando los métodos analizados en este documento pueden incluir, por ejemplo, redes de cadena de bloques, redes de área local, redes de área inalámbricas, etc.
El servidor de procesamiento 102 puede configurarse para conectarse automáticamente con uno o más de los dispositivos informáticos 104 usando los métodos analizados en este documento. El servidor de procesamiento 102 puede generar un mensaje de petición. El mensaje de petición puede incluir al menos una dirección de comunicación asociada con el servidor de procesamiento 102. La dirección de comunicación puede ser una dirección de protocolo de internet, dirección de control de acceso al medio, u otro tipo de dirección que puede usarse en la identificación del servidor de procesamiento 102 para el establecimiento de comunicación en la red de comunicación. En casos en los que la red de comunicación puede ser una red de cadena de bloques, la dirección de comunicación puede ser una dirección de red de cadena de bloques, que puede derivarse usando una clave pública de un par de claves asociadas con el servidor de procesamiento 102, que puede derivarse usando uno o más algoritmos asociados con la red de cadena de bloques.
En algunos casos, el mensaje de petición también puede incluir información adicional. La información adicional puede incluir, por ejemplo, una indicación de tiempo, un identificador de red, uno o más indicadores de servicio y una dirección de anfitrión. La indicación de tiempo puede ser una representación del momento en el que se genera el mensaje de petición, que puede representarse en cualquier formato adecuado (por ejemplo, en segundos desde el inicio del tiempo UNIX, un formato de Fecha/Hora predefinido, etc.). El identificador de red puede ser un valor de identificación asociado con la red de comunicación a la que quiere unirse el servidor de procesamiento 102, tal como un identificador asociado con una red de cadena de bloques. Los indicadores de servicio pueden ser un valor de identificación que indican un nivel de servicio del servidor de procesamiento 102 en la red de comunicación. Por ejemplo, si la red de comunicación es una red de cadena de bloques para una cadena de bloques con permisos, los indicadores de servicio pueden indicar los tipos de nodos en los que puede configurarse el servidor de procesamiento 102 para operar (por ejemplo, un nodo de cliente, nodo de auditoría, nodo de miembro, etc.). La dirección de anfitrión puede ser una dirección de comunicación secundaria para el servidor de procesamiento 102, tal como en casos en los que el mensaje de petición puede incluir una dirección de comunicación diferente debido a la configuración de comunicación del servidor de procesamiento 102, tal como comunicaciones hechas desde el servidor de procesamiento 102 pasan a través de un encaminador que incluye una dirección de comunicación diferente en el mensaje de petición. En las realizaciones en las que la red de comunicación es una red de cadena de bloques, la información adicional también puede incluir datos asociados con la cadena de bloques correspondiente, tales como una altura de bloque, número de bloques, valor de troceo del bloque añadido más recientemente, etc.
El servidor de procesamiento 102 puede configurarse para difundir el mensaje de petición generado a través de un puerto de protocolo de datagrama de usuario (UDP) predefinido. En algunas realizaciones, el servidor de procesamiento 102 puede difundir el mensaje de petición usando una técnica de multidifusión. El puerto de UDP puede predefinirse por la red de comunicación, de tal forma que cualquier nodo en la red de comunicación (por ejemplo, el dispositivo informático 104), o que desea unirse a la red de comunicación (por ejemplo, el servidor de procesamiento 102), puede ser informado del puerto de UDP usando cualquier método adecuado. Cada uno de los dispositivos informáticos 104 en la red de comunicación puede escuchar el puerto de UDP predefinido para el mensaje de petición difundido.
Un dispositivo informático 104 puede recibir el mensaje de petición a través del puerto de UDP predefinido. El dispositivo informático 104 puede determinar, a continuación, si quiere establecer una conexión al servidor de procesamiento 102. Puede hacerse una determinación de este tipo usando cualquier criterio adecuado, tal como, por ejemplo, un número máximo predefinido de conexiones y el número existente de conexiones por el dispositivo informático 104 en la red de comunicación. Por ejemplo, un dispositivo informático 104 puede ya estar conectado a otros ocho nodos en la red de comunicación, y puede abstenerse de establecer otra conexión. Si un dispositivo informático 104 decide, basándose en la determinación, conectarse al servidor de procesamiento 102, el dispositivo informático 104 puede generar un mensaje de acuerdo.
El mensaje de acuerdo puede incluir al menos una dirección de comunicación asociada con el dispositivo informático 104 y un puerto de protocolo de control de transmisión (TCP). El puerto de TCP puede ser un puerto del dispositivo informático 104 con el que puede configurarse el dispositivo informático 104 para realizar comunicaciones bidireccionales con el servidor de procesamiento 102, si se establece una comunicación de este tipo, como parte de la red de comunicación. En algunos casos, el mensaje de acuerdo puede incluir una pluralidad de puertos de TCP, tal como en casos en los que el dispositivo informático 104 puede utilizar más de un puerto de TCP como parte de la red de comunicación. En casos en los que la red de comunicación es una red de cadena de bloques, la dirección de comunicación para el dispositivo informático 104 puede ser la dirección de cadena de bloques derivada usando una clave pública asociada con el dispositivo informático 104 en la red de cadena de bloques. En algunas realizaciones, el mensaje de petición también puede incluir información adicional, tal como uno o más indicadores de servicio, una dirección de comunicación secundaria, una indicación de tiempo, un identificador de red, datos asociados con una cadena de bloques, etc.
El dispositivo informático 104 puede transmitir electrónicamente, a continuación, el mensaje de acuerdo de vuelta al
servidor de procesamiento 102 usando el puerto de UDP predefinido. El servidor de procesamiento 102 puede recibir, a continuación, el mensaje de acuerdo. El servidor de procesamiento 102 puede recibir una pluralidad de diferentes mensajes de acuerdo, uno desde cada dispositivo informático 104 que es susceptible al establecimiento de una conexión como parte de la red de comunicación. En el ejemplo ilustrado en la Figura 1, el servidor de procesamiento 102 puede recibir un mensaje de acuerdo desde los dispositivos informáticos 104a, 104b, 104d y 104e. Una vez que el servidor de procesamiento 102 ha recibido un mensaje de acuerdo, el servidor de procesamiento 102 puede establecer una conexión de comunicación con el dispositivo informático 104 asociado usando uno de los puertos de TCP indicados en el mensaje de acuerdo. En algunas realizaciones, el mensaje de petición difundido por el servidor de procesamiento 102 puede incluir uno o más puertos de TCP para su uso por el servidor de procesamiento 102. En tales realizaciones, los mensajes de acuerdo pueden indicar al menos uno de los puertos de TCP proporcionados, que puede usarse por el servidor de procesamiento 102 en el establecimiento de las comunicaciones.
En algunas realizaciones, la red de comunicación puede requerir un número predefinido de conexiones para participación en la red de comunicación. En tales realizaciones, el servidor de procesamiento 102 puede establecer al menos el número predefinido de conexiones tras la recepción de los mensajes de acuerdo. En casos en los que el servidor de procesamiento 102 puede no recibir suficientes mensajes de acuerdo, el servidor de procesamiento 102 puede repetir la difusión del mensaje de petición hasta que al menos se hayan recibido el número requerido de mensajes de acuerdo. En el ejemplo ilustrado en la Figura 1, el número predefinido de conexiones puede no ser mayor de cuatro, de tal forma que las conexiones establecidas por el servidor de procesamiento 102 con los dispositivos informáticos 104 son adecuadas para su participación en la red de comunicación.
En algunas realizaciones, el servidor de procesamiento 102 puede utilizar un valor de tiempo de vida en la configuración automática de su conexión a la red de comunicación. En una realización de este tipo, el servidor de procesamiento 102 puede difundir primero el mensaje de petición a través del puerto de UDP predefinido usando un primer valor de tiempo de vida. Si el servidor de procesamiento 102 no recibe un número adecuado de mensajes de acuerdo en respuesta, el servidor de procesamiento 102 puede repetir la difusión del mensaje de petición usando un segundo, y mayor, valor de tiempo de vida. El valor mayor de tiempo de vida puede resultar en que el mensaje de petición alcanza a un mayor número de dispositivos informáticos 104, que puede, a su vez, resultar en la recepción de más mensajes de acuerdo. El servidor de procesamiento 102 puede continuar redifundiendo el mensaje de petición con valores tiempo de vida incrementalmente mayores hasta que se recibe un número de mensajes de acuerdo.
En algunos casos, el servidor de procesamiento 102 puede establecer conexiones de comunicación con dispositivos informáticos 104 que devuelven mensajes de acuerdo antes de aumentar el tiempo de vida. Por ejemplo, la red de comunicación puede requerir al menos cuatro comunicaciones para su participación. El servidor de procesamiento 102 puede difundir el mensaje de petición usando un primer tiempo de vida, que puede responderse a través de mensajes de acuerdo por los dispositivos informáticos 104a y 104e. El servidor de procesamiento 102 puede establecer conexiones de comunicación con los dispositivos informáticos 104a y 104e antes de redifundir el mensaje de petición con un mayor tiempo de vida. El servidor de procesamiento 102 puede continuar, a continuación, repitiendo el proceso hasta que se establece el número predefinido de comunicaciones (por ejemplo, con los dispositivos informáticos 104b y 104d).
En otros casos, el servidor de procesamiento 102 puede no establecer conexiones de comunicación hasta que se hayan recibido suficientes mensajes de acuerdo para el número predefinido de conexiones. En algunos de tales casos, el servidor de procesamiento 102 puede priorizar mensajes de acuerdo basándose en la recepción. Por ejemplo, en el ejemplo anterior, el servidor de procesamiento 102 puede redifundir el mensaje de petición con un tiempo de vida lo suficientemente alto para recibir seis mensajes de acuerdo diferentes. El servidor de procesamiento 102 puede priorizar mensajes de acuerdo recibidos desde los dispositivos informáticos 104a y 104e, ya que ya se recibieron cuando se usó un tiempo de vida menor.
En algunas realizaciones, el servidor de procesamiento 102 puede configurarse para conectarse a los dispositivos informáticos 104 de tal forma que se configura automáticamente la red de comunicación para ser resistente a particionamiento de red. En tales realizaciones, el servidor de procesamiento 102 puede conectarse a al menos un dispositivo informático 104 que tiene una gran distancia geográfica entre sí mismo y el servidor de procesamiento 102. El uso de una mayor distancia geográfica puede resultar en una mayor probabilidad de que se mantenga la comunicación en la red de comunicación en casos en los que pueden romperse conexiones de comunicación entre nodos debido a una intervención física.
Por ejemplo, en el ejemplo ilustrado en la Figura 1, el servidor de procesamiento 102 puede establecer conexiones de comunicación con dispositivos informáticos "locales" 104a, 104d y 104e, que pueden ser los tres dispositivos informáticos 104 con la proximidad geográfica más cercana al servidor de procesamiento 102 que devolvieron mensajes de acuerdo al servidor de procesamiento 102, pero también puede establecer una conexión de comunicación con el dispositivo informático "distante" 104b, que puede tener una distancia geográfica significativamente mayor al servidor de procesamiento 102. Por ejemplo, el servidor de procesamiento 102 puede ubicarse en los Estados Unidos, ubicándose cada uno de los dispositivos informáticos 104a, 104c, 104d y 104e en el mismo estado, mientras el dispositivo informático 104b puede ubicarse en el Reino Unido. Tales configuraciones, cuando se usan por múltiples dispositivos informáticos 104 en la red de comunicación, pueden aumentar la resistencia de la red a particionamiento.
La determinación de la distancia geográfica puede hacerse usando cualquier criterio adecuado. En algunos casos, los mensajes de acuerdo devueltos por los dispositivos informáticos 104 pueden incluir información geográfica, tal como una ubicación geográfica en una representación adecuada (por ejemplo, latitud y longitud, código postal, ciudad, estado, país, municipio, etc.). En otros casos, el servidor de procesamiento 102 puede configurarse para identificar la ubicación geográfica de un dispositivo informático 104 que devolvió un mensaje de acuerdo usando la dirección de comunicación. Por ejemplo, el servidor de procesamiento 102 puede incluir una base de datos de ubicación, analizada en más detalle a continuación, que puede incluir una tabla de consulta de direcciones de protocolo de internet o datos incluidos en las mismas y que corresponden a ubicaciones geográficas. El servidor de procesamiento 102 puede identificar, por lo tanto, una ubicación geográfica para un dispositivo informático 104 usando el mensaje de acuerdo, y puede determinar, a partir del mismo, a qué dispositivos informáticos 104 establecer una conexión.
En algunas realizaciones, el servidor de procesamiento 102 puede configurarse para identificar un dispositivo informático distante (por ejemplo, el dispositivo informático 104b) a través del uso de tiempos de vida variables. Por ejemplo, el servidor de procesamiento 102 puede usar un primer tiempo de vida cuando difunde el mensaje de petición, que puede responderse por los dispositivos informáticos 104a, 104d y 104e. El servidor de procesamiento 102 puede usar, a continuación, un segundo tiempo de vida significativamente mayor en una redifusión del mensaje de petición, que puede responderse por el dispositivo informático 104b. El servidor de procesamiento 102 puede inferir, por lo tanto, una mayor distancia geográfica para el dispositivo informático 104b como resultado del mayor tiempo de vida. En algunos casos, el servidor de procesamiento 102 puede usar una serie de tiempos de vida crecientes, para fortalecer la inferencia de una mayor distancia geográfica. Por ejemplo, el servidor de procesamiento 102 puede usar cinco tiempos de vida crecientes diferentes cuando redifunde, y puede conectarse al dispositivo informático 104b como un dispositivo informático 104 que únicamente responde al mayor tiempo de vida.
Métodos y sistemas analizados en este documento pueden habilitar la configuración automática de una red de comunicación que no utiliza ninguna dirección de comunicación predefinida y que puede realizarse sin una entrada manual de direcciones de comunicación. Esto puede resultar en un establecimiento de una red de comunicación que puede ser satisfactorio incluso en casos en los que las direcciones de comunicación pueden cambiar de forma regular. Además, esto también puede aumentar la eficiencia y efectividad del autorrestablecimiento en la red de comunicación, ya que cualquier nodo en la red de comunicación puede ser capaz de unirse de nuevo automáticamente a la red si se pierden las conexiones o establecer automáticamente nuevas conexiones si se cae una conexión. Los métodos y sistemas analizados en este documento también puede proporcionan mayor resistencia contra particionamiento de red debido al uso de conexiones de comunicación a dispositivos informáticos 104 (por ejemplo, el dispositivo informático 104b) que tienen una mayor distancia geográfica al servidor de procesamiento 102, que, cuando se combina con la configuración automática, puede resultar en una red de comunicación configurada automáticamente más rápida, pero más robusta, que la proporcionada a través de métodos tradicionales.
Servidor de procesamiento
La Figura 2 ilustra una realización de un servidor de procesamiento 102 del sistema de procesamiento 102 en el sistema 100. Será evidente para los expertos en la materia relevante que la realización del servidor de procesamiento 102 ilustrada en la Figura 2 se proporciona únicamente como ilustración y puede no ser exhaustiva para todas las configuraciones posibles del sistema de procesamiento 102 adecuadas para realizar las funciones como se analiza en este documento. Por ejemplo, el sistema informático 800 ilustrado en la Figura 8, y analizado con más detalle a continuación, puede ser una configuración adecuada del servidor de procesamiento 102.
El servidor de procesamiento 102 puede incluir un dispositivo de recepción 202. El dispositivo de recepción 202 puede configurarse para recibir datos a través de una o más redes a través de uno o más protocolos de red. El dispositivo de recepción 202 puede configurarse para recibir datos desde los dispositivos informáticos 104 y otros dispositivos y sistemas a través de redes de comunicación adecuadas y protocolos de red correspondientes. En algunas realizaciones, el dispositivo de recepción 202 puede estar compuesto por múltiples dispositivos, tales como diferentes dispositivos de recepción para recibir datos a través de diferentes redes, tales como un primer dispositivo de recepción para recibir datos a través de una red de área local y un segundo dispositivo de recepción para recibir datos a través de una red de cadena de bloques. El dispositivo de recepción 202 puede recibir señales de datos transmitidas electrónicamente, en las que los datos pueden superponerse o codificarse de otro modo en la señal de datos y descodificarse, analizarse, leerse u obtenerse de otro modo a través de la recepción de la señal de datos por el dispositivo de recepción 202. En algunos casos, el dispositivo de recepción 202 puede incluir un módulo de análisis para analizar la señal de datos recibida para obtener los datos superpuestos sobre la misma. Por ejemplo, el dispositivo de recepción 202 puede incluir un programa de análisis configurado para recibir y transformar la señal de datos recibida en una entrada utilizable para las funciones realizadas por el dispositivo de procesamiento para efectuar los métodos y sistemas descritos en este documento.
El dispositivo de recepción 202 puede configurarse para recibir señales de datos transmitidas electrónicamente por los dispositivos informáticos 104. Las señales de datos pueden superponerse o de otra manera codificarse con mensajes de acuerdo, que pueden recibirse a través de un puerto de UDP predefinido. Los mensajes de acuerdo pueden incluir al menos uno o más puertos de TCP y una dirección de comunicación, y también pueden incluir una
indicación de tiempo, identificador de red, datos de cadena de bloques, indicadores de servicio, direcciones de comunicación adicionales, etc. El dispositivo de recepción 202 también puede configurarse para recibir señales de datos desde los dispositivos informáticos 104 a través de un puerto de TCP usando una conexión de comunicación establecida con los mismos. En las realizaciones en las que el servidor de procesamiento 102 puede operar como un dispositivo informático 104, el dispositivo de recepción 202 puede configurarse para recibir mensajes de petición difundidos usando un puerto de UDP predefinido, que puede responderse por el servidor de procesamiento 102 para su conexión a nuevos nodos que intentan unirse a la red de comunicación.
El servidor de procesamiento 102 también puede incluir un módulo de comunicación 204. El módulo de comunicación 204 puede configurarse para transmitir datos entre módulos, motores, bases de datos, memorias y otros componentes del servidor de procesamiento 102 para su uso en la realización de las funciones analizadas en este documento. El módulo de comunicación 204 puede estar compuesto por uno o más tipos de comunicación y utilizar diversos métodos de comunicación para las comunicaciones dentro de un dispositivo informático. Por ejemplo, el módulo de comunicación 204 puede estar comprendido por un bus, conectores de patilla de contacto, alambres, etc. En algunas realizaciones, el módulo de comunicación 204 también puede configurarse para comunicar entre componentes internos del servidor de procesamiento 102 y componentes externos del servidor de procesamiento 102, tal como bases de datos externamente conectadas, dispositivos de visualización, dispositivos de entrada, etc. El servidor de procesamiento 102 también puede incluir un dispositivo de procesamiento. El dispositivo de procesamiento puede configurarse para realizar las funciones del servidor de procesamiento 102 analizado en este documento, como será evidente para los expertos en la materia relevante. En algunas realizaciones, el dispositivo de procesamiento puede incluir y/o estar comprendido por una pluralidad de motores y/o módulos configurados especialmente para realizar una o más funciones del dispositivo de procesamiento, tal como un módulo de consulta 210, módulo de generación 212, módulo de identificación de datos 214, etc. Como se usa en este documento, el término "módulo" puede ser software o hardware particularmente programado para recibir una entrada, realizar uno o más procesos usando la entrada y proporcionar una salida. La entrada, la salida y los procesos realizados por diversos módulos serán evidentes para un experto en la materia basándose en la presente divulgación.
El servidor de procesamiento 102 puede incluir una base de datos de ubicación 206. La base de datos de ubicación 206 puede configurarse para almacenar una pluralidad de perfiles de ubicación 208 usando un formato y esquema adecuados de almacenamiento de datos. La base de datos de ubicación 206 puede ser una base de datos relacional que utiliza lenguaje de consulta estructurada para el almacenamiento, identificación, modificación, actualización, acceso, etc., de conjuntos de datos estructurados almacenados en la misma. Cada perfil de ubicación 208 puede ser un conjunto de datos estructurados configurado para almacenar datos relacionados con ubicaciones geográficas y direcciones de comunicación. Cada perfil de ubicación 208 puede incluir al menos una ubicación geográfica y un designador de dirección de comunicación. La ubicación geográfica puede ser cualquier representación adecuada de una ubicación geográfica. El designador de dirección de comunicación puede ser un valor incluido en o que comprende una dirección de comunicación. Por ejemplo, si la dirección de comunicación es una dirección de protocolo de internet, el designador de dirección de comunicación puede ser una, dos o tres partes de una dirección de protocolo de internet versión 4 o versión 6. En algunos casos, un perfil de ubicación 208 puede incluir una pluralidad de direcciones de comunicación asociadas con la ubicación geográfica incluida, que puede identificarse a través de cualquier método adecuado.
El servidor de procesamiento 102 puede incluir un módulo de consulta 210. El módulo de consulta 210 puede configurarse para ejecutar consultas en bases de datos para identificar información. El módulo de consulta 210 puede recibir uno o más valores de datos o cadenas de consultas, y puede ejecutar una cadena de consulta basada en los mismos en una base de datos indicada, tal como la base de datos de ubicación 206, para identificar información almacenada en la misma. El módulo de consulta 210 puede emitir, a continuación, la información identificada a un motor o módulo apropiado del servidor de procesamiento 102 según sea necesario. El módulo de consulta 210 puede ejecutar, por ejemplo, una consulta en la base de datos de ubicación 206 para identificar un perfil de ubicación 208 asociado con una dirección de comunicación incluida en un mensaje de acuerdo recibido para determinar una distancia geográfica al dispositivo informático 104 asociado con el mismo, para su uso en el establecimiento de conexiones a la red de comunicación.
El servidor de procesamiento 102 también puede incluir un módulo de generación 212. El módulo de generación 212 puede configurarse para generar mensajes de petición y de acuerdo para su uso en la realización de las funciones del servidor de procesamiento 102 como se ha analizado en este documento. El módulo de generación 212 puede recibir una petición, puede generar un mensaje basándose en esa petición, y puede emitir el mensaje generado a otro módulo o motor del servidor de procesamiento 102. Por ejemplo, puede ordenarse al módulo de generación 212 que genere un mensaje de petición. El mensaje de petición puede incluir al menos una dirección de comunicación asociada con el servidor de procesamiento 102, y también puede incluir datos adicionales que incluyen uno o más puertos de TCP, un identificador de red, una indicación de tiempo, datos de cadena de bloques, uno o más indicadores de servicio, etc. En las realizaciones en las que la red de comunicación puede ser una red de cadena de bloques, el módulo de generación 212 también puede configurarse para generar una dirección de cadena de bloques. La dirección de cadena de bloques puede generarse usando una clave pública de un par de claves que puede asociarse con el servidor de procesamiento 102, tal como puede almacenarse en la memoria 218, analizada a continuación. En algunos casos, la dirección de cadena de bloques puede generarse usando uno o más algoritmos específicos, tal como puede asociarse
con la red de cadena de bloques. En algunos casos, el módulo de generación 212 puede configurarse para generar un mensaje de acuerdo, tal como en casos en los que el servidor de procesamiento 102 actúa como un dispositivo informático 104 para nodos adicionales que intentan unirse a la red de comunicación.
El servidor de procesamiento 102 también puede incluir un módulo de identificación de datos 214. El módulo de identificación de datos 214 puede configurarse para recibir uno o más valores de datos como entrada, puede identificar datos basándose en los valores de datos de entrada, y puede emitir los datos identificados a otro módulo o motor del servidor de procesamiento 102. El módulo de identificación de datos 214 puede configurarse, por ejemplo, para identificar uno o más dispositivos informáticos 104 con los que establecer una conexión. Los dispositivos informáticos 104 pueden identificarse basándose en mensajes de acuerdo recibidos, y puede basarse adicionalmente en priorización y/o distancia geográfica. Por ejemplo, el módulo de identificación de datos 214 puede configurarse para identificar una pluralidad de dispositivos informáticos locales 104 y al menos un dispositivo informático distante 104 basándose en ubicaciones geográficas y/o tiempos de vida usados en provocar correspondientes mensajes de acuerdo. El módulo de identificación de datos 214 también puede configurarse para identificar dispositivos informáticos 104 priorizados para conexión basándose en mensajes de acuerdo recibidos en tiempos de vida variables, tal como se analiza en más detalla a continuación.
El servidor de procesamiento 102 también puede incluir un dispositivo de transmisión 216. El dispositivo de transmisión 216 puede configurarse para transmitir datos a través de una o más redes a través de uno o más protocolos de red. El dispositivo de transmisión 216 puede configurarse para transmitir datos a los dispositivos informáticos 104, y otras entidades a través de redes de comunicación adecuadas y correspondientes protocolos de red. En algunas realizaciones, el dispositivo de transmisión 216 puede estar compuesto por múltiples dispositivos, tales como diferentes dispositivos de transmisión para transmitir datos a través de diferentes redes, tales como un primer dispositivo de transmisión para transmitir datos a través de una red de área local y un segundo dispositivo de transmisión para transmitir datos a través de una red de cadena de bloques. El dispositivo de transmisión 216 puede transmitir electrónicamente señales de datos que tienen datos superpuestos que pueden ser analizados por un dispositivo informático de recepción. En algunos casos, el dispositivo de transmisión 216 puede incluir uno o más módulos para superponer, codificar o formatear de otro modo datos en señales de datos adecuadas para la transmisión.
El dispositivo de transmisión 216 puede configurarse para transmitir electrónicamente señales de datos que se superponen o codifican de otra manera con mensajes de petición a los dispositivos informáticos 104 a través de una difusión usando un puerto de UDP predefinido. El dispositivo de transmisión 216 también puede configurarse para transmitir electrónicamente señales de datos a los dispositivos informáticos 104 a través de un puerto de TCP específico usando una conexión de comunicación establecida con los mismos. En las realizaciones en las que el servidor de procesamiento 102 puede actuar como un dispositivo informático 104, el dispositivo de transmisión 216 también puede configurarse para transmitir electrónicamente señales de datos superpuestas o codificadas de otra manera con mensajes de acuerdo a otros dispositivos informáticos 104 a través del puerto de UDP predefinido.
El servidor de procesamiento 102 también puede incluir una memoria 218. La memoria 218 puede configurarse para almacenar datos para su uso por el servidor de procesamiento 102 en la realización de las funciones analizadas en este documento. La memoria 218 puede configurarse para almacenar datos usando métodos y esquemas adecuados de formateo de datos y puede ser cualquier tipo de memoria adecuada, tal como memoria de sólo lectura, memoria de acceso aleatorio, etc. La memoria 218 puede incluir, por ejemplo, claves y algoritmos de encriptación, protocolos y normas de comunicación, normas y protocolos de formateo de datos, código de programa para módulos y programas de aplicación del dispositivo de procesamiento, y otros datos que pueden ser adecuados para su uso por el servidor de procesamiento 102 en la realización de las funciones divulgadas en este documento como será evidente para los expertos en la materia. En algunas realizaciones, la memoria 218 puede estar compuesta por o puede incluir de otra forma una base de datos relacional que utiliza lenguaje de consulta estructurado para el almacenamiento, identificación, modificación, actualización, acceso, etc., de conjuntos de datos estructurados almacenados en la misma.
Proceso para la configuración automática de una red comunicación
La Figura 3 ilustra un proceso 300 para la configuración automática de una conexión por el servidor de procesamiento 102 a un dispositivo informático 104 en la red de comunicación ilustrada en la Figura 1 a través de la difusión de UDP de un mensaje de petición.
En la etapa 302, el módulo de generación 212 del servidor de procesamiento 102 puede generar un mensaje de petición. El mensaje de petición puede incluir al menos una dirección de comunicación asociada con el servidor de procesamiento 102. En las realizaciones en las que la red de comunicación puede ser una red de cadena de bloques, la dirección de comunicación puede generarse por el módulo de generación 212 a través de uno o más algoritmos predefinidos usando una clave pública asociada con el servidor de procesamiento 102, tal como puede almacenarse en la memoria 218 en el mismo. El mensaje de petición también puede incluir una indicación de tiempo, identificador de red, datos de cadena de bloques, uno o más puertos de TCP disponibles, y una o más direcciones de comunicación adicionales. En algunos casos, el mensaje de petición también puede incluir uno o más indicadores de servicio, que
pueden indicar servicios realizados por y/o solicitados por el servidor de procesamiento 102 asociado con la red de comunicación.
En la etapa 304, el dispositivo de transmisión 216 del servidor de procesamiento 102 puede difundir electrónicamente el mensaje de petición a través de un puerto de UDP predefinido asociado con la red de comunicación. El dispositivo informático 104 puede escuchar mensajes difundidos usando ese puerto predefinido de UDP y puede, como resultado, recibir el mensaje de petición difundido desde el servidor de procesamiento 102. En la etapa 306, el dispositivo informático 104 puede determinar si el servidor de procesamiento 102 es adecuado para una conexión. La determinación puede basarse en, por ejemplo, el número de conexiones a la red de comunicación ya establecida por el dispositivo informático 104 y los servicios indicados por el servidor de procesamiento 102. Por ejemplo, el dispositivo informático 104 puede no encontrar la conexión adecuada si el servidor de procesamiento 102 no proporciona un servicio necesitado por el dispositivo informático 104, o si el servidor de procesamiento 102 requiere un servicio no proporcionado por el dispositivo informático 104.
Si el dispositivo informático 104 determina que es adecuado para la conexión, a continuación, en la etapa 308, el dispositivo informático 104 puede generar un mensaje de acuerdo. El mensaje de acuerdo puede incluir al menos una dirección de comunicación asociada con el dispositivo informático 104 y uno o más puertos de TCP disponibles para comunicación con el dispositivo informático 104. En casos en los que la red de comunicación es una red de cadena de bloques, la dirección de comunicación puede ser una dirección de cadena de bloques derivada por el dispositivo informático 104 usando una clave pública asociada con la misma. El mensaje de acuerdo también puede incluir, en algunos casos, una indicación de tiempo, identificador de red, datos de cadena de bloques y uno o más indicadores de servicio, que pueden indicar servicios realizados y/o solicitados por el dispositivo informático 104. En la etapa 310, el dispositivo informático 104 puede transmitir directamente (por ejemplo, no una transmisión de difusión) el mensaje de acuerdo al servidor de procesamiento 102 a través del puerto de UDP predefinido, para recibirse por el dispositivo de recepción 202 del mismo.
En la etapa 312, el módulo de identificación de datos 214 del servidor de procesamiento 102 puede determinar si el dispositivo informático 104 es adecuado para conexión. La idoneidad puede basarse en cualquier criterio adecuado, tal como los indicadores de servicio incluidos en el mensaje de petición, una ubicación geográfica del dispositivo informático 104 (por ejemplo, identificada a través de un perfil de ubicación 208 consultado por el módulo de consulta 210 usando la dirección de comunicación), disponibilidad de los puertos de TCP incluidos en el mensaje de acuerdo en el servidor de procesamiento 102, etc. Si el dispositivo informático 104 se determina que es adecuado, a continuación, en la etapa 314, el servidor de procesamiento 102 y el dispositivo informático 104 pueden establecer una conexión de comunicación a través de uno de los puertos de TCP indicados en el mensaje de acuerdo. En las realizaciones en las que la red de comunicación es una red de cadena de bloques, futuras transmisiones hechas usando la conexión de comunicación de TCP establecida pueden firmarse usando claves privadas en los pares de claves asociadas con las respectivas entidades.
Proceso para la configuración automática de una red resistente a particiones
La Figura 4 ilustra un proceso para la configuración automática de la red resistente a particiones del sistema de la Figura 1.
En la etapa 402, un dispositivo informático local 104a y un dispositivo informático distante 104b, relativo a la distancia geográfica del servidor de procesamiento 102, pueden establecer una conexión de comunicación de TCP. La conexión de comunicación de TCP puede establecerse entre el dispositivo informático local 104 y el dispositivo informático distante 104b usando los procesos analizados en este documento, tal como el proceso 300 ilustrado en la Figura 3 y analizado anteriormente.
En la etapa 404, el dispositivo de transmisión 216 del servidor de procesamiento 102 puede difundir un mensaje de petición a través de un puerto de UDP predefinido para solicitar configuración automática para conexión en la red de comunicación. En la etapa 406, el dispositivo informático local 104a puede recibir el mensaje de petición, que puede incluir al menos una dirección de comunicación asociada con el servidor de procesamiento 102. El dispositivo informático local 104a puede acordar establecer una conexión con el servidor de procesamiento 102 en la red de comunicación y puede devolver, en la etapa 408, un mensaje de acuerdo al servidor de procesamiento 102 a través de una transmisión directa a la dirección de comunicación desde el mensaje de petición usando el puerto de UDP predefinido. En la etapa 410, el dispositivo de recepción 202 del servidor de procesamiento 102 puede recibir el mensaje de acuerdo, que puede incluir al menos una dirección de comunicación asociada con el dispositivo de recepción 202 y uno o más puertos de TCP disponibles.
En la etapa 412, el servidor de procesamiento 102 puede verificar la idoneidad del dispositivo informático local 104a para la conexión a la red de comunicación, tal como basándose en indicadores de servicio u otros criterios, como se analiza en más detalla a continuación. En la etapa 414, el servidor de procesamiento 102 y el dispositivo informático local 104a pueden establecer una conexión de comunicación usando uno de los puertos de TCP disponibles indicados en el mensaje de acuerdo. En la etapa 416, el dispositivo informático local 104a puede identificar el dispositivo informático distante 104b como que está a una distancia geográfica significativa del servidor de procesamiento 102.
La identificación puede basarse en, por ejemplo, perfiles de ubicación 208 para cada uno basándose en sus correspondientes direcciones de comunicación, ubicaciones geográficas proporcionadas, indicaciones de tiempo de mensajes incluidas en comunicaciones, valores de ping de comunicación, etc. El dispositivo informático local 104a puede proporcionar la dirección de comunicación, así como al menos un puerto de TCP disponible en el dispositivo informático distante 104b, al servidor de procesamiento 102, que puede recibirse por el dispositivo de recepción 202 incluido en el mismo en la etapa 418.
En la etapa 420, el servidor de procesamiento 102 puede establecer una conexión de comunicación de TCP directa con el dispositivo informático distante 104b usando los datos proporcionados por el dispositivo informático local 104a. En una realización de este tipo, el servidor de procesamiento 102 puede configurar automáticamente a sí mismo como parte de la red de comunicación, mientras también aumenta la resistencia a particiones de la red, teniendo otros nodos en la red de comunicación que proporcionan conexión información de nodos distantes. En otras realizaciones, el dispositivo informático distante 104b puede identificarse directamente por el servidor de procesamiento 102, tal como basándose en el uso de tiempos de vida variables en la difusión de mensajes de petición (por ejemplo, en la etapa 404 del proceso ilustrado en la Figura 4), tal como se ha analizado anteriormente.
Proceso para la configuración automática de un número suficiente de conexiones
La Figura 5 ilustra un proceso 500 para la configuración automática del servidor de procesamiento 102 en la red de comunicación ilustrada en la Figura 1, en la que el servidor de procesamiento 102 establece un número mínimo y predeterminado de conexiones de comunicación como parte de la unión de la red de comunicación.
En la etapa 502, el módulo de generación 212 del servidor de procesamiento 102 puede generar un mensaje de petición. El mensaje de petición puede incluir al menos la dirección de comunicación asociada con el servidor de procesamiento 102. En algunas realizaciones, la dirección de comunicación puede ser una dirección de cadena de bloques derivada usando una clave pública de un par de claves asociadas con el servidor de procesamiento 102 y una red de cadena de bloques. En algunos casos, el mensaje de petición también puede incluir al menos uno de: un identificador de red, una indicación de tiempo, uno o más indicadores de servicio, datos de cadena de bloques y una o más direcciones de comunicación adicionales. En la etapa 504, el servidor de procesamiento 102 puede establecer un tiempo de vida para mensajes difundidos a un valor predeterminado. El valor predeterminado puede basarse en la red de comunicación a unirse y/o puede almacenarse en la memoria 218 del servidor de procesamiento 102.
En la etapa 506, el dispositivo de transmisión 216 del servidor de procesamiento 102 puede difundir electrónicamente el mensaje de petición a través de un puerto de UDP predefinido. El mensaje de petición puede difundirse, por lo tanto, a cualquier dispositivo informático 104 que escucha mensajes en el puerto de UDP predefinido. En la etapa 508, el dispositivo de recepción 202 del servidor de procesamiento 102 puede recibir mensajes de acuerdo desde uno o más dispositivos informáticos 104 que se transmiten directamente al servidor de procesamiento 102 en el puerto de UDP predefinido usando la dirección de comunicación incluida en el mensaje de petición. Cada mensaje de acuerdo puede incluir al menos una dirección de comunicación y uno o más puertos de t Cp disponibles, y también puede incluir al menos uno de: un identificador de red, indicación de tiempo, uno o más indicadores de servicio, datos de cadena de bloques y una o más direcciones de comunicación adicionales.
En la etapa 510, el módulo de identificación de datos 214 del servidor de procesamiento 102 puede identificar si se recibió un número suficiente de mensajes de acuerdo adecuados. Un mensaje de acuerdo puede ser adecuado si los indicadores de servicio u otros datos incluidos en el mensaje de acuerdo coindice con cualquier criterio establecido por el servidor de procesamiento 102. El número suficiente puede ser un número predeterminado expuesto por los ajustes de la propia red de comunicación, por el servidor de procesamiento 102 (por ejemplo, según se almacena en la memoria 218) u otra entidad. Si el módulo de identificación de datos 214 determina que no hay un número suficiente de mensajes de acuerdo recibidos, a continuación, en la etapa 512, puede aumentarse el valor de tiempo de vida. Una vez que se aumenta el tiempo de vida, el proceso 500 puede volver a la etapa 506, en la que el mensaje de petición puede difundirse usando el mayor tiempo de vida. Los mensajes de acuerdo pueden recibirse de nuevo y, en la etapa 510, redeterminarse la suficiencia de los mismos. El servidor de procesamiento 102 puede continuar incrementando el tiempo de vida y redifundiendo hasta que se haya alcanzado el suficiente número de mensajes de acuerdo.
Una vez que se reciben un número suficiente de mensajes de acuerdo, a continuación, en la etapa 514, el módulo de identificación de datos 214 puede seleccionar el número predeterminado de mensajes de acuerdo. El número predeterminado puede ser el mismo número usado en la determinación hecha en la etapa 510. El módulo de identificación de datos 214 puede seleccionar mensajes de acuerdo basándose en cualquier criterio adecuado, tal como recepción de un mensaje de acuerdo desde el mismo dispositivo informático 104 en un menor tiempo de vida, una ubicación geográfica del dispositivo informático 104 identificado a través de un perfil de ubicación 208, la indicación de tiempo incluida en el mensaje de acuerdo, etc. En la etapa 516, el servidor de procesamiento 102 puede establecer una conexión de comunicación con cada uno de los dispositivos informáticos 104 seleccionados a través de un puerto de TCP incluido en el respectivo mensaje de acuerdo. En las realizaciones en las que la red de comunicación es una red de cadena de bloques, futuras comunicaciones hechas usando la conexión de comunicación establecida puede firmarse por el servidor de procesamiento 102 usando la clave privada en el par de claves asociado con la red de cadena de bloques, tal como puede almacenarse en la memoria 218 del servidor de procesamiento 102.
Método ilustrativo para la configuración automática de una red de comunicación
La Figura 6 ilustra un método 600 para la configuración automática de una red de comunicación que tiene un número predeterminado de conexiones de comunicación.
En la etapa 602, puede generarse un mensaje de petición por un módulo de generación (por ejemplo, el módulo de generación 212) de un servidor de procesamiento (por ejemplo, el servidor de procesamiento 102), en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento. En la etapa 604, el mensaje de petición generado puede transmitirse electrónicamente por un dispositivo de transmisión (por ejemplo, el dispositivo de transmisión 216) del servidor de procesamiento como un mensaje de difusión a una pluralidad de dispositivos informáticos (por ejemplo, dispositivos informáticos 104) usando un puerto de protocolo de datagrama de usuario (UDP) predefinido, en el que el mensaje de difusión se transmite con un tiempo de vida predeterminado.
En la etapa 606, pueden recibirse uno o más mensajes de acuerdo por un dispositivo de recepción (por ejemplo, el dispositivo de recepción 202) del servidor de procesamiento, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos, se transmite por el respectivo dispositivo informático usando el puerto de UDP predefinido, e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión (TCP) especificado. En la etapa 608, al menos uno del uno o más mensajes de acuerdo pueden identificarse por un módulo de identificación de datos (por ejemplo, el módulo de identificación de datos 214) del servidor de procesamiento para el establecimiento de comunicación. En la etapa 610, puede establecerse una conexión de comunicación por un módulo de comunicación (por ejemplo, el módulo de comunicación 204) del servidor de procesamiento al dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo.
En una realización, el método 600 comprende además repetir, por el servidor de procesamiento, las etapas de transmisión, recepción, identificación y establecimiento con un segundo tiempo de vida si el al menos un mensaje identificado de acuerdo no incluye al menos un número predeterminado de mensajes de acuerdo, en la que el segundo tiempo de vida es un valor mayor que el tiempo de vida predeterminado. En una realización adicional, una combinación del al menos un mensaje de acuerdo identificado usando el tiempo de vida predeterminado y el al menos un mensaje de acuerdo identificado usando el segundo tiempo de vida puede incluir al menos el número predeterminado de mensajes de acuerdo. En otra realización adicional, pueden no establecerse conexiones de comunicación para mensajes de acuerdo recibidos usando el tiempo de vida predeterminado, y el al menos un mensaje de acuerdo identificado usando el segundo tiempo de vida puede incluir al menos el número predeterminado de mensajes de acuerdo. En una realización incluso adicional, identificar el al menos uno del uno o más mensajes de acuerdo usando el segundo tiempo de vida puede incluir priorizar mensajes de acuerdo que incluyen direcciones de comunicación que corresponden a direcciones de comunicación incluidas en el al menos un mensaje de acuerdo identificado usando el tiempo de vida predeterminado.
En algunas realizaciones, el mensaje de petición y cada uno del uno o más mensajes de acuerdo pueden incluir adicionalmente un identificador de red asociado con una red de cadena de bloques. En una realización adicional, el mensaje de petición puede incluir adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el servidor de procesamiento, y cada uno del uno o más mensajes de acuerdo pueden incluir adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el respectivo dispositivo informático. En una realización incluso adicional, transmisiones hechas por el servidor de procesamiento usando el canal de comunicación establecido puede firmarse usando la dirección de red de cadena de bloques derivada usando la clave pública asociada con el servidor de procesamiento.
En una realización, el mensaje de petición puede incluir adicionalmente uno o más indicadores de servicio, cada uno de los uno o más mensajes de acuerdo pueden incluir adicionalmente al menos un indicador de servicio, y el al menos un indicador de servicio incluido en cada uno del al menos un mensaje de acuerdo identificado puede corresponder a uno del uno o más indicadores de servicio incluidos en el mensaje de petición. En algunas realizaciones, el método 600 también puede incluir establecer, por el módulo de comunicación del servidor de procesamiento, una conexión de comunicación adicional a un dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento que una distancia geográfica del dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado. En una realización adicional, el dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento puede identificarse repitiendo las etapas de transmisión, recepción, identificación y establecimiento con un segundo tiempo de vida, en el que el segundo tiempo de vida es un valor mayor que el tiempo de vida predeterminado. En otra realización adicional, el método 600 puede incluso incluir adicionalmente almacenar, en una base de datos de ubicación (por ejemplo, la base de datos de ubicación 206) del servidor de procesamiento, una pluralidad de perfiles de ubicación (por ejemplo, perfiles de ubicación 208), en el que cada perfil de ubicación incluye al menos una ubicación geográfica y un designador de dirección de comunicación asociado, en el que el dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento se identifica basándose en la ubicación geográfica asociada con un designador de dirección de comunicación que corresponde a una dirección de comunicación asociada con el dispositivo informático.
Método ilustrativo para la configuración de una red de comunicación resistente a particiones
La Figura 7 ilustra un método 700 para la configuración de una red de comunicación resistente a particiones que utiliza conexiones de comunicación con múltiples dispositivos informáticos que tienen distancias geográficas variables desde el dispositivo informático objetivo.
En la etapa 702, puede generarse un mensaje de petición por un módulo de generación (por ejemplo, el módulo de generación 212) de un servidor de procesamiento (por ejemplo, el servidor de procesamiento 102), en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento. En la etapa 704, el mensaje de petición generado puede transmitirse electrónicamente por un dispositivo de transmisión (por ejemplo, el dispositivo de transmisión 216) del servidor de procesamiento a una pluralidad de dispositivos informáticos (por ejemplo, los dispositivos informáticos 104). En la etapa 706, puede recibirse un conjunto de mensajes de acuerdo por un dispositivo de recepción (por ejemplo, el dispositivo de recepción 202) del servidor de procesamiento, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión (TCP) especificado.
En la etapa 708, pueden identificarse un dispositivo informático distante y al menos un dispositivo informático local por un módulo de identificación de datos (por ejemplo, el módulo de identificación de datos 214) de la pluralidad de dispositivos informáticos desde donde se recibe cada mensaje de acuerdo, en el que el dispositivo informático distante tiene una mayor distancia geográfica al servidor de procesamiento que cada uno del al menos un dispositivo informático local. En la etapa 710, puede establecerse una conexión de comunicación por un módulo de comunicación (por ejemplo, el módulo de comunicación 204) del servidor de procesamiento al dispositivo informático distante y cada uno del al menos un dispositivo informático local usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo.
En una realización, el método 700 puede incluir adicionalmente: almacenar, en una base de datos de ubicación (por ejemplo, la base de datos de ubicación 206) del servidor de procesamiento, una pluralidad de perfiles de ubicación (por ejemplo, perfiles de ubicación 208), en el que cada perfil de ubicación incluye al menos una ubicación geográfica y un designador de dirección de comunicación asociado; y ejecutar, por un módulo de consulta (por ejemplo, el módulo de consulta 210) del servidor de procesamiento, una consulta en la base de datos de ubicación para identificar un perfil de ubicación para el dispositivo informático distante y cada uno del al menos un dispositivo informático local en el que el designador de dirección de comunicación incluido corresponde a la dirección de comunicación asociada con el respectivo dispositivo informático, en el que la mayor distancia geográfica se basa en la ubicación geográfica incluida en cada uno de los perfiles de ubicación identificados y una ubicación geográfica del servidor de procesamiento. En algunas realizaciones, el mensaje de petición generado puede transmitirse electrónicamente como un mensaje de difusión usando un puerto de protocolo de datagrama de usuario (UDP) predefinido, el mensaje de difusión puede transmitirse al al menos un dispositivo informático local con un primer tiempo de vida, el mensaje de difusión puede transmitirse al dispositivo informático distante con un segundo tiempo de vida, y el segundo tiempo de vida puede tener un valor mayor que el primer tiempo de vida.
En una realización, el mensaje de petición puede incluir adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el servidor de procesamiento, y cada uno del uno o más mensajes de acuerdo pueden incluir adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el respectivo dispositivo informático. En una realización adicional, las transmisiones hechas por el servidor de procesamiento usando el canal de comunicación establecido pueden firmarse usando la dirección de red de cadena de bloques derivada usando la clave pública asociada con el servidor de procesamiento.
Arquitectura de sistema informático
La Figura 8 ilustra un sistema informático 800 en el que pueden implementarse realizaciones de la presente divulgación, o porciones de las mismas, como código legible por ordenador. Por ejemplo, el servidor de procesamiento 102 de la Figura 1 puede implementarse en el sistema informático 800 usando hardware, software, firmware, medios legibles por ordenador no transitorios que tienen instrucciones almacenadas en los mismos, o una combinación de los mismos, y puede implementarse en uno o más sistemas informáticos u otros sistemas de procesamiento. Hardware, software o cualquier combinación de los mismos puede incorporar módulos y componentes usados para implementar los métodos de las Figuras 3-7.
Si se usa lógica programable, tal lógica puede ejecutarse en una plataforma de procesamiento disponible comercialmente configurada por matriz lógica programable de código de software ejecutable, circuito integrado específico de aplicación, etc. Un experto en la materia puede apreciar que realizaciones de la materia objeto divulgada pueden practicarse con diversas configuraciones de sistema informático, incluyendo sistemas multiprocesador y multinúcleo, miniordenadores, ordenadores centrales, ordenadores enlazados o agrupados con funciones distribuidas, así como ordenadores ubicuos o en miniatura que pueden embeberse en prácticamente cualquier dispositivo. Por ejemplo, pueden usarse al menos un dispositivo de procesador y una memoria para implementar las realizaciones
anteriormente descritas.
Una unidad o dispositivo de procesador como se analiza en este documento puede ser un único procesador, una pluralidad de procesadores o combinaciones de los mismos. Los dispositivos de procesador pueden tener uno o más "núcleos" de procesador. Las expresiones "medio de programa informático", "medio legible por ordenador no transitorio" y "medio utilizable por ordenador" como se analizan en este documento se usan para referirse generalmente a medios tangibles tales como una unidad de almacenamiento extraíble 818, una unidad de almacenamiento extraíble 822 y un disco duro instalado en una unidad de disco duro 812.
Diversas realizaciones de la presente divulgación se describen en términos de este sistema informático 800 de ejemplo. Después de leer esta descripción, será evidente para un experto en la materia relevante cómo implementar la presente divulgación usando otros sistemas informáticos y/o arquitecturas informáticas. Aunque las operaciones pueden describirse como un proceso secuencial, algunas de las operaciones pueden de hecho realizarse en paralelo, simultáneamente y/o en un entorno distribuido, y con código de programa almacenado local o remotamente para acceso por máquinas de un único o múltiples procesadores. Además, en algunas realizaciones puede reorganizarse el orden de las operaciones.
El dispositivo de procesador 804 puede ser un dispositivo de procesador de fin especial o de fin general configurado específicamente para realizar las funciones analizadas en este documento. El dispositivo de procesador 804 puede conectarse a una infraestructura de comunicación 806, tal como un bus, cola de mensajes, red, esquema de paso de mensaje de múltiples núcleos, etc. La red puede ser cualquier red adecuada para realizar las funciones como se describen en este documento y puede incluir una red de área local (LAN), una red de área extensa (WAN), una red inalámbrica (por ejemplo, WiFi), una red de comunicación móvil, una red por satélite, la Internet, fibra óptica, cable coaxial, infrarrojos, frecuencia de radio (RF) o cualquier combinación de las mismas. Otros tipos y configuraciones de red adecuados serán evidentes para los expertos en la materia relevante. El sistema informático 800 también puede incluir una memoria principal 808 (por ejemplo, memoria de acceso aleatorio, memoria de sólo lectura, etc.), y también puede incluir una memoria secundaria 810. La memoria secundaria 810 puede incluir la unidad de disco duro 812 y una unidad de disco de almacenamiento extraíble 814, tal como una unidad de disco flexible, una unidad de cinta magnética, una unidad de disco óptico, una memoria flash, etc.
La unidad de disco de almacenamiento extraíble 814 puede leer de y/o escribir en la unidad de almacenamiento extraíble 818 de una manera bien conocida. La unidad de almacenamiento extraíble 818 puede incluir un medio de almacenamiento extraíble que puede leerse por y escribirse por la unidad de disco de almacenamiento extraíble 814. Por ejemplo, si la unidad de almacenamiento extraíble 814 es una unidad de disco flexible o un puerto de bus serial universal, la unidad de almacenamiento extraíble 818 puede ser un disco flexible o una unidad flash portátil, respectivamente. En una realización, la unidad de almacenamiento extraíble 818 puede ser medio de grabación legible por ordenador no transitorio.
En algunas realizaciones, la memoria secundaria 810 puede incluir medios alternativos para permitir que programas informáticos u otras instrucciones se carguen en el sistema informático 800, por ejemplo, la unidad de almacenamiento extraíble 822 y una interfaz 820. Ejemplos de tales medios pueden incluir un cartucho de programa e interfaz de cartucho (por ejemplo, como se encuentran en sistemas de videojuegos), un chip de memoria extraíble (por ejemplo, EEPROM, PROm , etc.) y zócalo asociado, y otras unidades de almacenamiento extraíbles 822 e interfaces 820 como será evidente para los expertos en la materia relevante.
Datos almacenados en el sistema informático 800 (por ejemplo, en la memoria principal 808 y/o la memoria secundaria 810) pueden almacenarse en cualquier tipo de medio legible por ordenador adecuado, tal como almacenamiento óptico (por ejemplo, un disco compacto, disco versátil digital, Disco Blu-ray, etc.) o almacenamiento de cinta magnética (por ejemplo, una unidad de disco duro). Los datos pueden configurarse en cualquier tipo de configuración de base de datos adecuada, tal como una base de datos relacional, una base de datos de lenguaje de consulta estructurada (SQL), una base de datos distribuida, una base de datos de objetos, etc. Configuraciones adecuadas y tipos de almacenamiento serán evidentes para los expertos en la materia relevante.
El sistema informático 800 también puede incluir una interfaz de comunicación 824. La interfaz de comunicación 824 puede configurarse para permitir que software y datos se transfieran entre el sistema informático 800 y dispositivos externos. Las interfaces de comunicación 824 ilustrativas pueden incluir un módem, una interfaz de red (por ejemplo, una tarjeta de Ethernet), un puerto de comunicaciones, una tarjeta y ranura de PCMCIA, etc. Software y datos transferidos a través de la interfaz de comunicación 824 pueden ser en forma de señales, que pueden ser electrónicas, electromagnéticas, ópticas, u otras señales como será evidente para expertos en la materia relevante. Las señales pueden viajar a través de una trayectoria de comunicación 826, que puede configurarse para transportar las señales y puede implementarse usando alambre, cable, fibra óptica, una línea telefónica, un enlace de teléfono celular, un enlace de frecuencia de radio, etc.
El sistema informático 800 puede incluir adicionalmente una interfaz de visualización 802. La interfaz de visualización 802 puede configurarse para permitir que los datos se transfieran entre el sistema informático 800 y el visualizador externo 830. Las interfaces de visualización 802 ilustrativas pueden incluir interfaz multimedia de alta definición
(HDMI), interfaz visual digital (DVI), matriz de gráficos de vídeo (VGA), etc. El visualizador 830 puede ser cualquier tipo adecuado de visualizador para visualizar datos transmitidos a través de la interfaz de visualización 802 del sistema informático 800, incluyendo una pantalla de tubo de rayos catódicos (CRT), pantalla de cristal líquido (LCD), pantalla de diodo emisor de luz (LED), pantalla táctil capacitiva, pantalla de transistor de película delgada (TFT), etc.
Medio de programa informático y medio utilizable por ordenador pueden referirse a memorias, tales como la memoria principal 808 y la memoria secundaria 810, que pueden ser semiconductores de memoria (por ejemplo, DRAM, etc.). Estos productos de programa informático pueden ser medios para proporcionar software al sistema informático 800. Programas informáticos (por ejemplo, lógica de control informático) pueden almacenarse en la memoria principal 808 y/o la memoria secundaria 810. También pueden recibirse programas informáticos a través de la interfaz de comunicación 824. Tales programas informáticos, cuando se ejecutan, pueden habilitar que el sistema informático 800 implemente los presentes métodos como se analiza en este documento. En particular, los programas informáticos, cuando se ejecutan, pueden habilitar que el dispositivo de procesador 804 implemente los métodos ilustrados por las Figuras 3-7, como se analiza en este documento. En consecuencia, tales programas informáticos pueden representar controladores del sistema informático 800. Donde la presente divulgación se implementa usando software, el software puede almacenarse en un producto de programa informático y cargarse en el sistema informático 800 usando la unidad de disco de almacenamiento extraíble 814, interfaz 820 y unidad de disco duro 812 o interfaz de comunicación 824.
El dispositivo de procesador 804 puede comprender uno o más módulos o motores configurados para realizar las funciones del sistema informático 800. Cada uno de los módulos o motores puede implementarse usando hardware y, en algunos casos, también puede utilizar software, tal como uno correspondiente a código de programa y/o programas almacenados en la memoria principal 808 o la memoria secundaria 810. En tales casos, el código de programa puede ser compilado por el dispositivo de procesador 804 (por ejemplo, por un módulo o motor de compilación) antes de la ejecución por el hardware del sistema informático 800. Por ejemplo, el código de programa puede ser código fuente escrito en un lenguaje de programación que se traduce a un lenguaje de nivel inferior, tal como lenguaje ensamblador o código máquina, para su ejecución por el dispositivo de procesador 804 y/o cualquier componente de hardware adicional del sistema informático 800. El proceso de compilación puede incluir el uso de análisis léxico, preprocesamiento, análisis, análisis semántico, traducción dirigida por sintaxis, generación de código, optimización de código y cualquier otra técnica que pueda ser adecuada para la traducción del código de programa a un lenguaje de nivel inferior adecuado para controlar el sistema informático 800 para realizar las funciones divulgadas en este documento. Será evidente para los expertos en la materia relevante que tales procesos dan como resultado que el sistema informático 800 sea un sistema informático especialmente configurado 800 programado de manera singular para realizar las funciones analizadas anteriormente.
Técnicas consistentes con la presente divulgación proporcionan, entre otras características, sistemas y métodos para la configuración automática de una red de comunicación y configuración de una red de comunicación resistente a particiones. Aunque se han descrito anteriormente diversas realizaciones ilustrativas del sistema y método divulgados, debería entenderse que se han presentado para propósitos de ejemplo únicamente, no limitaciones. No es exhaustivo y no limita la divulgación a la forma precisa divulgada. Son posibles modificaciones y variaciones a la luz de las enseñanzas anteriores o pueden obtenerse a partir de la puesta en práctica de la divulgación. El alcance de la invención se define por las reivindicaciones adjuntas.
Claims (25)
1. Un método para la configuración automática de una red de comunicación, que comprende:
generar (602), por un módulo de generación de un servidor de procesamiento, un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento; transmitir electrónicamente (604), por un dispositivo de transmisión del servidor de procesamiento, el mensaje de petición generado como un mensaje de difusión a una pluralidad de dispositivos informáticos usando un puerto de protocolo de datagrama de usuario, UDP, predefinido, en el que el mensaje de difusión se transmite con un tiempo de vida predeterminado;
recibir (606), por un dispositivo de recepción del servidor de procesamiento, uno o más mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos, se transmite por el respectivo dispositivo informático usando el puerto de UDP predefinido, e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión, TCP, especificado;
identificar (608), por un módulo de identificación de datos del servidor de procesamiento, al menos uno del uno o más mensajes de acuerdo para el establecimiento de comunicación; y
establecer (610), por un módulo de comunicación del servidor de procesamiento, una conexión de comunicación al dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo; en el que, si el al menos un mensaje identificado de acuerdo no incluye al menos un número predeterminado de mensajes de acuerdo, el método comprende adicionalmente:
repetir, por el servidor de procesamiento, las etapas de transmisión, recepción, identificación y establecimiento con un segundo tiempo de vida, en el que
el segundo tiempo de vida es un valor mayor que el tiempo de vida predeterminado;
en el que
no se establecen conexiones de comunicación para mensajes de acuerdo recibidos usando el tiempo de vida predeterminado, y el al menos un mensaje de acuerdo identificado usando el segundo tiempo de vida incluye al menos el número predeterminado de mensajes de acuerdo; y
en el que identificar el al menos uno del uno o más mensajes de acuerdo usando el segundo tiempo de vida incluye priorizar mensajes de acuerdo que incluyen direcciones de comunicación que corresponden a direcciones de comunicación incluidas en el al menos un mensaje de acuerdo identificado usando el tiempo de vida predeterminado.
2. El método de la reivindicación 1, en el que el mensaje de petición y cada uno del uno o más mensajes de acuerdo incluyen adicionalmente un identificador de red asociado con una red de cadena de bloques.
3. El método de la reivindicación 2, en el que
el mensaje de petición incluye adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el servidor de procesamiento, y
cada uno del uno o más mensajes de acuerdo incluye adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el respectivo dispositivo informático.
4. El método de la reivindicación 3, en el que transmisiones hechas por el servidor de procesamiento usando el canal de comunicación establecido se firman usando la dirección de red de cadena de bloques derivada usando la clave pública asociada con el servidor de procesamiento.
5. El método de la reivindicación 1, en el que
el mensaje de petición incluye adicionalmente uno o más indicadores de servicio,
cada uno del uno o más mensajes de acuerdo incluye adicionalmente al menos un indicador de servicio, y el al menos un indicador de servicio incluido en cada uno del al menos un mensaje de acuerdo identificado corresponde a uno del uno o más indicadores de servicio incluidos en el mensaje de petición.
6. El método de la reivindicación 1, que comprende adicionalmente:
establecer, por el módulo de comunicación del servidor de procesamiento, una conexión de comunicación adicional a un dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento que una distancia geográfica del dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado.
7. El método de la reivindicación 6, en el que el dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento se identifica repitiendo las etapas de transmisión, recepción, identificación y establecimiento con un segundo tiempo de vida, en el que el segundo tiempo de vida es un valor mayor que el tiempo de vida predeterminado.
8. El método de la reivindicación 6, que comprende adicionalmente:
almacenar, en una base de datos de ubicación del servidor de procesamiento, una pluralidad de perfiles de ubicación, en el que cada perfil de ubicación incluye al menos una ubicación geográfica y un designador de dirección de comunicación asociado, en el que
el dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento se identifica basándose en la ubicación geográfica asociada con un designador de dirección de comunicación que corresponde a una dirección de comunicación asociada con el dispositivo informático.
9. Un método para la configuración de una red de comunicación resistente a particiones, que comprende: generar (702), por un módulo de generación de un servidor de procesamiento, un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento; transmitir electrónicamente (704), por un dispositivo de transmisión del servidor de procesamiento, el mensaje de petición generado a una pluralidad de dispositivos informáticos;
recibir (706), por un dispositivo de recepción del servidor de procesamiento, un conjunto de mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión, TCP, especificado;
identificar (708), por un módulo de identificación de datos del servidor de procesamiento, un dispositivo informático distante y al menos un dispositivo informático local de la pluralidad de dispositivos informáticos desde donde se recibe cada mensaje de acuerdo, en el que el dispositivo informático distante tiene una mayor distancia geográfica al servidor de procesamiento que cada uno del al menos un dispositivo informático local; y
establecer (710), por un módulo de comunicación del servidor de procesamiento, una conexión de comunicación al dispositivo informático distante y cada uno del al menos un dispositivo informático local usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo;
en el que
el mensaje de petición generado se transmite electrónicamente como un mensaje de difusión usando un puerto de protocolo de datagrama de usuario, UDP, predefinido,
caracterizado por que
el mensaje de difusión se transmite al al menos un dispositivo informático local con un primer tiempo de vida, el mensaje de difusión se transmite al dispositivo informático distante con un segundo tiempo de vida, y el segundo tiempo de vida tiene un valor mayor que el primer tiempo de vida.
10. El método de la reivindicación 9, que comprende adicionalmente:
almacenar, en una base de datos de ubicación del servidor de procesamiento, una pluralidad de perfiles de ubicación, en el que cada perfil de ubicación incluye al menos una ubicación geográfica y un designador de dirección de comunicación asociado; y
ejecutar, por un módulo de consulta del servidor de procesamiento, una consulta en la base de datos de ubicación para identificar un perfil de ubicación para el dispositivo informático distante y cada uno del al menos un dispositivo informático local en el que el designador de dirección de comunicación incluido corresponde a la dirección de comunicación asociada con el respectivo dispositivo informático, en el que
la mayor distancia geográfica se basa en la ubicación geográfica incluida en cada uno de los perfiles de ubicación identificados y una ubicación geográfica del servidor de procesamiento.
11. El método de la reivindicación 9, en el que
el mensaje de petición incluye adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el servidor de procesamiento, y
cada uno del uno o más mensajes de acuerdo incluye adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el respectivo dispositivo informático.
12. El método de la reivindicación 11, en el que transmisiones hechas por el servidor de procesamiento usando el canal de comunicación establecido se firman usando la dirección de red de cadena de bloques derivada usando la clave pública asociada con el servidor de procesamiento.
13. Un sistema para la configuración automática de una red de comunicación, que comprende:
un módulo de generación (212) de un servidor de procesamiento configurado para generar un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento;
un dispositivo de transmisión (216) del servidor de procesamiento configurado para transmitir electrónicamente el mensaje de petición generado como un mensaje de difusión a una pluralidad de dispositivos informáticos usando un puerto de protocolo de datagrama de usuario, UDP, predefinido, en el que el mensaje de difusión se transmite con un tiempo de vida predeterminado;
un dispositivo de recepción (202) del servidor de procesamiento configurado para recibir uno o más mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos, se transmite por el respectivo dispositivo informático usando el puerto de UDP predefinido, e incluye al menos una
dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión, TCP, especificado;
un módulo de identificación de datos (214) del servidor de procesamiento configurado para identificar al menos uno del uno o más mensajes de acuerdo para el establecimiento de comunicación; y un módulo de comunicación (204) del servidor de procesamiento configurado para establecer una conexión de comunicación al dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo;
en el que
si el al menos un mensaje identificado de acuerdo no incluye al menos un número predeterminado de mensajes de acuerdo, el servidor de procesamiento está configurado adicionalmente para repetir las etapas de transmisión, recepción, identificación y establecimiento con un segundo tiempo de vida, y
el segundo tiempo de vida es un valor mayor que el tiempo de vida predeterminado;
en el que
no se establecen conexiones de comunicación para mensajes de acuerdo recibidos usando el tiempo de vida predeterminado, y
el al menos un mensaje de acuerdo identificado usando el segundo tiempo de vida incluye al menos el número predeterminado de mensajes de acuerdo; y
en el que identificar el al menos uno del uno o más mensajes de acuerdo usando el segundo tiempo de vida incluye priorizar mensajes de acuerdo que incluyen direcciones de comunicación que corresponden a direcciones de comunicación incluidas en el al menos un mensaje de acuerdo identificado usando el tiempo de vida predeterminado.
14. El sistema de la reivindicación 13, en el que el mensaje de petición y cada uno del uno o más mensajes de acuerdo incluyen adicionalmente un identificador de red asociado con una red de cadena de bloques.
15. El sistema de la reivindicación 14, en el que
el mensaje de petición incluye adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el servidor de procesamiento, y
cada uno del uno o más mensajes de acuerdo incluye adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el respectivo dispositivo informático.
16. El sistema de la reivindicación 15, en el que transmisiones hechas por el servidor de procesamiento usando el canal de comunicación establecido se firman usando la dirección de red de cadena de bloques derivada usando la clave pública asociada con el servidor de procesamiento.
17. El sistema de la reivindicación 13, en el que
el mensaje de petición incluye adicionalmente uno o más indicadores de servicio,
cada uno del uno o más mensajes de acuerdo incluye adicionalmente al menos un indicador de servicio, y el al menos un indicador de servicio incluido en cada uno del al menos un mensaje de acuerdo identificado corresponde a uno del uno o más indicadores de servicio incluidos en el mensaje de petición.
18. El sistema de la reivindicación 13, en el que el módulo de comunicación del servidor de procesamiento está configurado adicionalmente para establecer una conexión de comunicación adicional a un dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento que una distancia geográfica del dispositivo informático asociado con cada uno del al menos un mensaje de acuerdo identificado.
19. El sistema de la reivindicación 18, en el que el dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento se identifica repitiendo las etapas de transmisión, recepción, identificación y establecimiento con un segundo tiempo de vida, en el que el segundo tiempo de vida es un valor mayor que el tiempo de vida predeterminado.
20. El sistema de la reivindicación 18, que comprende adicionalmente:
una base de datos de ubicación del servidor de procesamiento configurado para almacenar una pluralidad de perfiles de ubicación, en el que cada perfil de ubicación incluye al menos una ubicación geográfica y un designador de dirección de comunicación asociado, en el que
el dispositivo informático que tiene una mayor distancia geográfica al servidor de procesamiento se identifica basándose en la ubicación geográfica asociada con un designador de dirección de comunicación que corresponde a una dirección de comunicación asociada con el dispositivo informático.
21. Un sistema para la configuración de una red de comunicación resistente a particiones, que comprende:
un módulo de generación (212) de un servidor de procesamiento configurado para generar un mensaje de petición, en el que el mensaje de petición incluye al menos una dirección de comunicación asociada con el servidor de procesamiento;
un dispositivo de transmisión (216) del servidor de procesamiento configurado para transmitir electrónicamente el
mensaje de petición generado a una pluralidad de dispositivos informáticos;
un dispositivo de recepción (202) del servidor de procesamiento configurado para recibir un conjunto de mensajes de acuerdo, en el que cada mensaje de acuerdo se recibe desde uno de la pluralidad de dispositivos informáticos e incluye al menos una dirección de comunicación asociada con el respectivo dispositivo informático y un puerto de protocolo de control de transmisión, TCP, especificado;
un módulo de identificación de datos (214) del servidor de procesamiento configurado para identificar un dispositivo informático distante y al menos un dispositivo informático local de la pluralidad de dispositivos informáticos desde donde se recibe cada mensaje de acuerdo, en el que el dispositivo informático distante tiene una mayor distancia geográfica al servidor de procesamiento que cada uno del al menos un dispositivo informático local; y un módulo de comunicación (204) del servidor de procesamiento configurado para establecer una conexión de comunicación al dispositivo informático distante y cada uno del al menos un dispositivo informático local usando el puerto de TCP específico incluido en el respectivo mensaje de acuerdo;
en el que
el mensaje de petición generado se transmite electrónicamente como un mensaje de difusión usando un puerto de protocolo de datagrama de usuario, UDP, predefinido,
caracterizado por que
el mensaje de difusión se transmite al al menos un dispositivo informático local con un primer tiempo de vida, el mensaje de difusión se transmite al dispositivo informático distante con un segundo tiempo de vida, y el segundo tiempo de vida tiene un valor mayor que el primer tiempo de vida.
22. El sistema de la reivindicación 21, que comprende adicionalmente:
una base de datos de ubicación del servidor de procesamiento configurado para almacenar una pluralidad de perfiles de ubicación, en el que cada perfil de ubicación incluye al menos una ubicación geográfica y un designador de dirección de comunicación asociado; y
un módulo de consulta del servidor de procesamiento configurado para ejecutar una consulta en la base de datos de ubicación para identificar un perfil de ubicación para el dispositivo informático distante y cada uno del al menos un dispositivo informático local en el que el designador de dirección de comunicación incluido corresponde a la dirección de comunicación asociada con el respectivo dispositivo informático,
en el que
la mayor distancia geográfica se basa en la ubicación geográfica incluida en cada uno de los perfiles de ubicación identificados y una ubicación geográfica del servidor de procesamiento.
23. El sistema de la reivindicación 21, en el que
el mensaje de petición generado se transmite electrónicamente como un mensaje de difusión usando un puerto de protocolo de datagrama de usuario, UDP, predefinido, el mensaje de difusión se transmite al al menos un dispositivo informático local con un primer tiempo de vida, el mensaje de difusión se transmite al dispositivo informático distante con un segundo tiempo de vida, y el segundo tiempo de vida tiene un valor mayor que el primer tiempo de vida.
24. El sistema de la reivindicación 21, en el que
el mensaje de petición incluye adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el servidor de procesamiento, y
cada uno del uno o más mensajes de acuerdo incluye adicionalmente una dirección de red de cadena de bloques derivada usando una clave pública asociada con el respectivo dispositivo informático.
25. El sistema de la reivindicación 24, en el que transmisiones hechas por el servidor de procesamiento usando el canal de comunicación establecido se firman usando la dirección de red de cadena de bloques derivada usando la clave pública asociada con el servidor de procesamiento.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/211,076 US10454765B2 (en) | 2016-07-15 | 2016-07-15 | Method and system for node discovery and self-healing of blockchain networks |
| PCT/US2017/036240 WO2018013260A1 (en) | 2016-07-15 | 2017-06-07 | Method and system for node discovery and self-healing of blockchain networks |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2824517T3 true ES2824517T3 (es) | 2021-05-12 |
Family
ID=59337824
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17739732T Active ES2824517T3 (es) | 2016-07-15 | 2017-06-07 | Método y sistema para descubrimiento de nodo y autorrestablecimiento de redes de cadena de bloques |
Country Status (6)
| Country | Link |
|---|---|
| US (3) | US10454765B2 (es) |
| EP (3) | EP3485622B1 (es) |
| CN (2) | CN114124685B (es) |
| ES (1) | ES2824517T3 (es) |
| SG (2) | SG10201912561TA (es) |
| WO (1) | WO2018013260A1 (es) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
| US10454765B2 (en) | 2016-07-15 | 2019-10-22 | Mastercard International Incorporated | Method and system for node discovery and self-healing of blockchain networks |
| US10664485B2 (en) * | 2016-12-23 | 2020-05-26 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Block chain mining method, device, and node apparatus |
| CN108446976B (zh) * | 2018-02-07 | 2019-05-24 | 平安科技(深圳)有限公司 | 一种公积金转移方法、计算机可读存储介质及终端设备 |
| KR102154292B1 (ko) * | 2018-08-16 | 2020-09-09 | 송상민 | 블록체인에 접속하는 클라이언트와 서비스 제공자간의 쿼리 처리 방법 |
| US10805094B2 (en) | 2018-10-08 | 2020-10-13 | International Business Machines Corporation | Blockchain timestamp agreement |
| US11924360B2 (en) | 2018-10-08 | 2024-03-05 | Green Market Square Limited | Blockchain timestamp agreement |
| US10608829B1 (en) | 2018-10-08 | 2020-03-31 | International Business Machines Corporation | Blockchain timestamp agreement |
| US20220343776A1 (en) * | 2019-05-03 | 2022-10-27 | Michele Di Cosola | Universal Computing Node in a Smart Self-Healing node Centric Blockchain Mesh Network |
| CN110166323B (zh) * | 2019-06-06 | 2020-12-11 | 杭州云象网络技术有限公司 | 一种提高区块链网络可靠性的方法 |
| US11563679B1 (en) * | 2019-12-12 | 2023-01-24 | Architecture Technology Corporation | Distributed ledger adjustment in response to disconnected peer |
| CN111245910B (zh) * | 2019-12-31 | 2022-04-19 | 杭州趣链科技有限公司 | 一种区块链轻节点多副本的部署方法 |
| US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
| WO2021237688A1 (en) | 2020-05-29 | 2021-12-02 | British Telecommunications Public Limited Company | Ris-assisted wireless communications |
| CN115604336B (zh) * | 2021-06-28 | 2025-08-08 | 网联清算有限公司 | 通信连接建立方法、装置、电子设备和存储介质 |
| CN116827958A (zh) * | 2022-03-22 | 2023-09-29 | 北京小米移动软件有限公司 | 节点发现方法、装置、存储介质及电子设备 |
| CN114726866B (zh) * | 2022-04-07 | 2024-07-16 | 网易(杭州)网络有限公司 | 联盟链的共识节点维护方法、电子设备、存储介质 |
| CN115174652B (zh) * | 2022-06-23 | 2024-04-02 | 深圳市元征科技股份有限公司 | 一种通信连接建立方法、装置、设备及介质 |
| CN116828089A (zh) * | 2023-08-01 | 2023-09-29 | 福建金密网络安全测评技术有限公司 | 一种协议解析的方法及其系统 |
| US12501967B2 (en) | 2024-04-19 | 2025-12-23 | Skechers U.S.A., Inc. Ii | Hands-free molded shoe |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| IT1201860B (it) * | 1986-12-10 | 1989-02-02 | Sgs Microelettronica Spa | Circuito logico cmos |
| US6760309B1 (en) * | 2000-03-28 | 2004-07-06 | 3Com Corporation | Method of dynamic prioritization of time sensitive packets over a packet based network |
| JP4371056B2 (ja) * | 2005-01-07 | 2009-11-25 | ブラザー工業株式会社 | ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等 |
| US8650259B2 (en) * | 2005-02-03 | 2014-02-11 | International Business Machines Corporation | Method and apparatus for increasing the search space or peer-to-peer networks using time-to-live boosting |
| WO2007062004A2 (en) * | 2005-11-22 | 2007-05-31 | The Trustees Of Columbia University In The City Of New York | Methods, media, and devices for moving a connection from one point of access to another point of access |
| GB0621433D0 (en) | 2006-10-27 | 2006-12-06 | 3G Scene Ltd | Networking application |
| US8055735B2 (en) * | 2007-10-30 | 2011-11-08 | Hewlett-Packard Development Company, L.P. | Method and system for forming a cluster of networked nodes |
| US20100202346A1 (en) * | 2009-02-12 | 2010-08-12 | Sitzes Ryan Z | Wireless communication system and method |
| WO2011109786A1 (en) * | 2010-03-05 | 2011-09-09 | Veetle, Inc. | Network firewall and nat traversal for tcp and related protocols |
| KR20110127907A (ko) | 2010-05-20 | 2011-11-28 | (주)블루홀스튜디오 | 온라인 게임 환경에서 서버 트랜스퍼링하여 게임을 진행하는 방법, 장치, 및 기록매체 |
| US8839328B2 (en) * | 2010-07-15 | 2014-09-16 | Broadcom Corporation | Method and system for providing location aware tracking and services via an IP multimedia residential gateway |
| US8650365B2 (en) * | 2011-09-02 | 2014-02-11 | Compuverde Ab | Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes |
| US8588818B2 (en) * | 2011-11-08 | 2013-11-19 | Cellco Partnership | Location-based broadcast messaging to mobile devices located in or entering into a defined geographic area |
| US9769292B2 (en) * | 2012-01-19 | 2017-09-19 | Miosoft Corporation | Concurrent process execution |
| CN104885428B (zh) * | 2012-12-31 | 2018-04-20 | 阿尔卡特朗讯公司 | 基于ip地址的udp中继的方法、中继器和计算机可读介质 |
| WO2014108965A1 (ja) | 2013-01-09 | 2014-07-17 | パナソニック株式会社 | 情報表示処理システム、情報表示処理装置、および携帯端末 |
| US9571603B2 (en) * | 2013-09-17 | 2017-02-14 | Cisco Technology, Inc. | Redundancy network protocol system |
| US10713686B2 (en) * | 2014-03-22 | 2020-07-14 | Retailmenot, Inc. | Peer-to-peer geotargeting content with ad-hoc mesh networks |
| US10592985B2 (en) * | 2015-03-02 | 2020-03-17 | Dell Products L.P. | Systems and methods for a commodity contracts market using a secure distributed transaction ledger |
| US9852221B1 (en) * | 2015-03-26 | 2017-12-26 | Amazon Technologies, Inc. | Distributed state manager jury selection |
| CN105719185B (zh) * | 2016-01-22 | 2019-02-15 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
| US10475030B2 (en) * | 2016-02-22 | 2019-11-12 | Bank Of America Corporation | System for implementing a distributed ledger across multiple network nodes |
| US20170372417A1 (en) * | 2016-06-28 | 2017-12-28 | Sivanarayana Gaddam | Digital asset account management |
| US10454765B2 (en) | 2016-07-15 | 2019-10-22 | Mastercard International Incorporated | Method and system for node discovery and self-healing of blockchain networks |
-
2016
- 2016-07-15 US US15/211,076 patent/US10454765B2/en active Active
-
2017
- 2017-06-07 EP EP17739732.0A patent/EP3485622B1/en active Active
- 2017-06-07 WO PCT/US2017/036240 patent/WO2018013260A1/en not_active Ceased
- 2017-06-07 EP EP20191630.1A patent/EP3790251B1/en active Active
- 2017-06-07 CN CN202111404292.1A patent/CN114124685B/zh active Active
- 2017-06-07 SG SG10201912561TA patent/SG10201912561TA/en unknown
- 2017-06-07 CN CN201780042699.XA patent/CN109479053B/zh active Active
- 2017-06-07 EP EP23206547.4A patent/EP4290830A3/en active Pending
- 2017-06-07 ES ES17739732T patent/ES2824517T3/es active Active
- 2017-06-07 SG SG11201810851YA patent/SG11201810851YA/en unknown
-
2019
- 2019-09-11 US US16/567,112 patent/US11477084B2/en active Active
-
2022
- 2022-09-12 US US17/942,211 patent/US12355624B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3790251B1 (en) | 2023-12-06 |
| WO2018013260A1 (en) | 2018-01-18 |
| US20180019921A1 (en) | 2018-01-18 |
| EP4290830A2 (en) | 2023-12-13 |
| US10454765B2 (en) | 2019-10-22 |
| SG11201810851YA (en) | 2019-01-30 |
| CN114124685A (zh) | 2022-03-01 |
| EP3790251A1 (en) | 2021-03-10 |
| CN114124685B (zh) | 2024-11-08 |
| CN109479053A (zh) | 2019-03-15 |
| US20230006882A1 (en) | 2023-01-05 |
| SG10201912561TA (en) | 2020-02-27 |
| EP4290830A3 (en) | 2023-12-20 |
| US11477084B2 (en) | 2022-10-18 |
| US12355624B2 (en) | 2025-07-08 |
| EP3485622A1 (en) | 2019-05-22 |
| CN109479053B (zh) | 2021-11-09 |
| US20200007393A1 (en) | 2020-01-02 |
| EP3485622B1 (en) | 2020-08-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2824517T3 (es) | Método y sistema para descubrimiento de nodo y autorrestablecimiento de redes de cadena de bloques | |
| ES3009759T3 (en) | System for controlling user interaction via an application with remote servers | |
| US20180349896A1 (en) | Method and system for anonymization of electronic transactions via blockchain | |
| CN109313752A (zh) | 使用审计保证形成用于被许可的区块链的高效共识机制的方法和系统 | |
| WO2018013259A1 (en) | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains | |
| CN109313654A (zh) | 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和系统 | |
| US11917077B2 (en) | Method and system for quantum-resistant hashing scheme | |
| KR20170031552A (ko) | 전자 장치의 근접 인증 방법 및 그 장치 | |
| CN110597808B (zh) | 分布式数据库表连接方法、装置、系统、服务器及介质 | |
| CN116932132A (zh) | 使用基于存储库的策略重置镜像层 | |
| US20150188991A1 (en) | Simulated tethering of computing devices | |
| CN108989312B (zh) | 基于地理位置的认证方法和设备 | |
| CN112579954A (zh) | 地震信息的输出方法及装置、存储介质及电子装置 | |
| WO2016058385A1 (zh) | 信息存储方法、装置及终端 | |
| US10681755B2 (en) | Routing method and network entity performing same | |
| HK40069385A (en) | Method and system for node discovery and self-healing of blockchain networks | |
| HK40069385B (zh) | 用於区块链网络的节点发现和自癒的方法和系统 | |
| HK40007308B (en) | Method and system for node discovery and self-healing of blockchain networks | |
| HK40007308A (en) | Method and system for node discovery and self-healing of blockchain networks | |
| CN116974795A (zh) | 一种业务路径生成、业务数据校验方法、装置及电子设备 | |
| US8688857B1 (en) | Filtering messages based on pruning profile generated from pruning profile schema | |
| US12056053B2 (en) | Method and system for establishing a distributed network without a centralized directory | |
| US9860320B2 (en) | Node and communication connecting method between nodes | |
| CN116663027A (zh) | 一种数据加密、解密方法、装置、计算机设备及存储介质 | |
| US20170221101A1 (en) | Method and a system for advertising |