ES2879908T3 - Colaborción abierta distribuida basada en cadena de bloques de aplicaciones de mapa - Google Patents

Colaborción abierta distribuida basada en cadena de bloques de aplicaciones de mapa Download PDF

Info

Publication number
ES2879908T3
ES2879908T3 ES18866758T ES18866758T ES2879908T3 ES 2879908 T3 ES2879908 T3 ES 2879908T3 ES 18866758 T ES18866758 T ES 18866758T ES 18866758 T ES18866758 T ES 18866758T ES 2879908 T3 ES2879908 T3 ES 2879908T3
Authority
ES
Spain
Prior art keywords
data
map
service provider
blockchain
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18866758T
Other languages
English (en)
Other versions
ES2879908T9 (es
Inventor
Ning Xia
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Application granted granted Critical
Publication of ES2879908T3 publication Critical patent/ES2879908T3/es
Publication of ES2879908T9 publication Critical patent/ES2879908T9/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • G01C21/367Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3885Transmission of map data to client devices; Reception of map data by client devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • G06Q30/0204Market segmentation
    • G06Q30/0205Location or geographical consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Human Resources & Organizations (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Computing Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Un método (400) implementado por computadora, el método que comprende: ejecutar, por un proveedor (302) de servicios de mapas asociado con una cadena de bloques, un primer contrato inteligente en la cadena de bloques con un recopilador (308) de datos, dicho primer contrato inteligente permite que el recopilador de datos reciba una recompensa una vez que recopila y envía datos relevantes al proveedor de servicios de mapas, en donde el proveedor de servicios de mapas y el recopilador de datos son dispositivos informáticos que participan en la cadena de bloques, y luego recibir (402), en el proveedor de servicios de mapas, datos de mapas del recopilador de datos; ejecutar, mediante el proveedor de servicios de mapas, un segundo contrato inteligente en la cadena de bloques con un proveedor (304) de servicios de datos, en donde el proveedor de servicios de datos es un dispositivo informático que participa en la cadena de bloques, y luego transmitir (404) los datos de mapas al proveedor de servicios de datos para su procesamiento; ejecutar, mediante el proveedor de servicios de mapas, un tercer contrato inteligente en la cadena de bloques con un proveedor (306) de datos, en donde el proveedor de datos es un dispositivo informático que participa en la cadena de bloques, y luego recibir (406), en el proveedor de servicios de mapas, datos no de colaboración abierta distribuida desde el proveedor de datos; transmitir (408) los datos no de colaboración abierta distribuida al proveedor de servicios de datos para procesarlos con los datos de mapas; recibir (410) una solicitud de datos de mapas procesados de un usuario del servicio; recuperar (412), del proveedor de servicios de datos, los datos de mapas procesados que se generan a partir de los datos de mapas y los datos no de colaboración abierta distribuida; ejecutar, mediante el proveedor de servicios de mapas, un cuarto contrato inteligente en la cadena de bloques con el usuario del servicio, y luego transmitir (414) los datos de mapas procesados al usuario del servicio en respuesta a la solicitud.

Description

DESCRIPCIÓN
Colaborción abierta distribuida basada en cadena de bloques de aplicaciones de mapa
ANTECEDENTES
Los sistemas de contabilidad distribuida (DLS), que también pueden denominarse redes de consenso y/o redes de cadena de bloques, permiten a las entidades participantes almacenar datos de forma segura e inmutable. Los DLS se conocen comúnmente como redes de cadena de bloques sin hacer referencia a un caso de usuario en particular. Los tipos de ejemplo de redes de cadena de bloques pueden incluir redes de cadena de bloques públicas, redes de cadena de bloques privadas y redes de cadena de bloques de consorcio. Una red pública de cadena de bloques está abierta para que todas las entidades utilicen el DLS y participen en el proceso de consenso. Una red de cadena de bloques privada se proporciona para una entidad particular, que controla de forma centralizada los permisos de lectura y escritura. Una red de cadena de bloques de consorcio se proporciona para un grupo selecto de entidades, que controlan el proceso de consenso e incluye una capa de control de acceso.
La recopilación de datos de mapas requiere muchos recursos para los proveedores de aplicaciones de mapas, y los usuarios a menudo se quejan de que los datos de mapas recopilados no están lo suficientemente actualizados para sus necesidades. Aunque la recopilación de datos de mapas convencional se puede utilizar para abordar estos problemas, sería ventajosa una solución más eficiente para abordar la recopilación de datos de mapas. El documento US 2011/0246148 A1 describe sistemas, métodos, aparatos, dispositivos, artículos y medios para actualizar modelos de radio. Un método de ejemplo para uno o más dispositivos de servidor comprende recibir en una o más interfaces de comunicaciones al menos una medición que corresponde a una posición de un primer dispositivo móvil dentro de un entorno interior. Al menos un modelo de radio que se almacena en una o más memorias se actualiza en base, al menos en parte, en la al menos una medición para producir al menos un modelo de radio actualizado. El al menos un modelo de radio y el al menos un modelo de radio actualizado corresponden al entorno interior. El al menos un modelo de radio actualizado se transmite para permitir que un segundo dispositivo móvil utilice el al menos un modelo de radio actualizado para el posicionamiento dentro del entorno interior.
El documento US 2018/356236 A1 describe un sistema y un método para actualizar datos de mapas para un vehículo autónomo (AV). El método incluye recopilar, utilizando uno o una pluralidad de sensores de AV de un primer AV, datos de sensor, y comparar los datos de sensor recopilados con los datos de mapas para determinar la presencia de datos potencialmente modificados. El método incluye además generar un bloque de prueba de trabajo (PoW) que incluye los datos potencialmente modificados y recopilar, utilizando uno o una pluralidad de sensores de AV de un segundo AV, primeros datos de sensor de verificación. A continuación, los datos potencialmente modificados se comparan con los primeros datos de sensor de verificación para generar un primer bloque de mapa verificado en base a los primeros datos de sensor de verificación y añadir el primer bloque de mapa verificado a una primera cadena de bloques de mapa verificada.
Randy Meech, «We Have Some Blocksplaining To Do» y el equipo de StreeCred, «4 Days, 500+ Users, 3000+ Places» contienen descripciones genéricas de StreetCred, un mercado basado en cadena de bloques para datos de ubicación y una aplicación prototípica del mismo.
RESUMEN
La invención se define por las reivindicaciones adjuntas.
Las implementaciones de la memoria descriptiva incluyen métodos implementados por computadora para la colaboración abierta distribuida basada en cadena de bloques de datos. Más particularmente, las implementaciones de la memoria descriptiva están dirigidas a proporcionar una plataforma de colaboración abierta distribuida basada en cadena de bloques capaz de recopilar y proporcionar datos de mapas.
En algunas implementaciones, las acciones incluyen recibir, en un proveedor de servicios de mapas asociado con una cadena de bloques, datos de mapas de un recopilador de datos; transmitir los datos de mapas a un proveedor de servicios de datos para su procesamiento; recibir, en el proveedor de servicios de mapas, datos no de colaboración abierta distribuida desde un proveedor de datos; transmitir los datos no de colaboración abierta distribuida al proveedor de servicios de datos para procesarlos con los datos de mapas; recibir una solicitud de datos de mapas procesados desde un proveedor de servicios; recuperar, del proveedor de servicios de datos, los datos de mapas procesados que se generan a partir de los datos de mapas y los datos no de colaboración abierta distribuida; y transmitir los datos de mapas procesados al usuario del servicio en respuesta a la solicitud. Otras implementaciones incluyen sistemas, aparatos y programas informáticos correspondientes configurados para realizar las acciones de los métodos, codificados en dispositivos de almacenamiento informáticos.
Cada una de estas y otras implementaciones puede incluir opcionalmente una o más de las siguientes características: Una primera característica, combinable con cualquiera de las siguientes características, en donde el proveedor de servicios de mapas proporciona el consumo de datos automatizado o la autorización de datos para el usuario del servicio.
Una segunda característica, combinable con cualquiera de las siguientes características, en donde el proveedor de servicios de mapas, el proveedor de servicios de datos y el proveedor de datos son dispositivos informáticos que participan en la cadena de bloques.
Una tercera característica, combinable con cualquiera de las siguientes características, que comprende, además: antes de recibir los datos de mapas del recopilador de datos, ejecutar, mediante el proveedor de servicios de mapas, un contrato inteligente con el recopilador de datos.
Una cuarta característica, combinable con cualquiera de las siguientes características, que comprende, además: antes de transmitir los datos de mapas al proveedor de servicios de datos, ejecutar, mediante el proveedor de servicios, un contrato inteligente con el proveedor de servicios de datos.
Una quinta característica, combinable con cualquiera de las siguientes características, en donde transmitir los datos de mapas a un proveedor de servicios de datos para su procesamiento incluye transmitir los datos de mapas a un proveedor de servicios de datos para normalizar los datos de mapas o descartar datos irregulares de los datos de mapas.
Una sexta característica, combinable con cualquiera de las siguientes características, en donde la cadena de bloques es una cadena de bloques de consorcio.
Una séptima función, combinable con cualquiera de las siguientes funciones, en donde el recopilador de datos recopila los datos de mapas mediante colaboración abierta distribuida.
La memoria descriptiva también proporciona un medio de almacenamiento legible por computadora no transitorio acoplado a una o más computadoras y que tiene instrucciones almacenadas en los mismos que son ejecutables por la una o más computadoras para realizar operaciones de acuerdo con implementaciones de los métodos proporcionados en el presente documento.
La memoria descriptiva proporciona además un sistema para implementar los métodos proporcionados en el presente documento. El sistema incluye una o más computadoras y una o más memorias legibles por computadora acopladas a la una o más computadoras y que tienen instrucciones almacenadas en las mismas que son ejecutables por la una o más computadoras para realizar operaciones de acuerdo con implementaciones de los métodos proporcionados en el presente documento.
Se aprecia que los métodos de acuerdo con la memoria descriptiva pueden incluir cualquier combinación de los aspectos y características descritos en el presente documento. Es decir, los métodos de acuerdo con la memoria descriptiva no se limitan a las combinaciones de aspectos y características descritas específicamente en el presente documento, sino que también incluyen cualquier combinación de los aspectos y características proporcionados. Los detalles de una o más implementaciones de la memoria descriptiva se establecen en los dibujos adjuntos y la descripción a continuación. Otras características y ventajas de la memoria descriptiva serán evidentes a partir de la descripción y los dibujos, y de las reivindicaciones.
DESCRIPCION DE LOS DIBUJOS
La FIG. 1 muestra un ejemplo de un entorno que se puede utilizar para ejecutar implementaciones de la memoria descriptiva.
La FIG. 2 representa un ejemplo de una arquitectura conceptual de acuerdo con implementaciones de la memoria descriptiva.
La FIG. 3 representa un ejemplo de un entorno de sistema de una aplicación de mapas de colaboración abierta distribuida basada en cadena de bloques de acuerdo con implementaciones de la memoria descriptiva. La FIG. 4 representa un ejemplo de un proceso que se puede ejecutar de acuerdo con implementaciones de la memoria descriptiva.
La FIG. 5 representa un ejemplo de módulos de un aparato 500 de acuerdo con implementaciones de esta memoria descriptiva.
Los símbolos de referencia similares en los diversos dibujos indican elementos similares.
DESCRIPCIÓN DETALLADA
Las implementaciones de la memoria descriptiva incluyen métodos implementados por computadora para aplicaciones de servicios de colaboración abierta distribuida basadas en tecnologías cadena de bloques. Más particularmente, las implementaciones de la memoria descriptiva están dirigidas a proporcionar una plataforma de colaboración abierta distribuida basada en cadena de bloques capaz de recopilar y proporcionar datos de mapas.
Para proporcionar un contexto adicional para las implementaciones de la memoria descriptiva, y como se presentó anteriormente, los sistemas de contabilidad distribuida (DLS), que también pueden denominarse redes de consenso (p. ej., compuestas por nodos de igual a igual) y redes de cadena de bloques, habiliten a las entidades participantes para realizar transacciones de forma segura e inmutable y almacenar datos. Aunque el término cadena de bloques se asocia generalmente con redes de divisas, cadena de bloques se utiliza en el presente documento para referirse generalmente a un DLS sin referencia a un caso de uso particular.
Una cadena de bloques es una estructura de datos que almacena transacciones de manera que las transacciones son inmutables. Por lo tanto, las transacciones registradas en una cadena de bloques son fiables y de confianza. Una cadena de bloques incluye uno o más bloques. Cada uno de los bloques de la cadena está vinculado a un bloque anterior inmediatamente antes de él en la cadena al incluir un resumen criptográfico del bloque anterior. Cada uno de los bloques también incluye una marca de tiempo, su propio resumen criptográfico y una o más transacciones. Las transacciones, que ya han sido verificadas por los nodos de la red de cadena de bloques, se procesan y codifican en un árbol Merkle. Un árbol Merkle es una estructura de datos en la que los datos en los nodos hoja del árbol están resumidos, y todos los resúmenes en cada una de las ramas del árbol se concatenan en la raíz de la rama. Este proceso continúa subiendo por el árbol hasta la raíz de todo el árbol, que almacena un resumen que es representativo de todos los datos del árbol. Un resumen que pretende ser de una transacción almacenada en el árbol se puede verificar rápidamente determinando si es consistente con la estructura del árbol.
Mientras que una cadena de bloques es una estructura de datos descentralizada o al menos parcialmente descentralizada para almacenar transacciones, una red de cadenas de bloques es una red de nodos informáticos que administran, actualizan y mantienen una o más cadenas de bloques mediante la difusión, verificación y validación de transacciones, etc., Como se introdujo anteriormente, una red cadena de bloques se puede proporcionar como una red cadena de bloques pública, una red cadena de bloques privada o una red cadena de bloques de consorcio.
En una red de cadena de bloques pública, el proceso de consenso está controlado por nodos de la red de consenso. Por ejemplo, cientos, miles, incluso millones de entidades pueden cooperar en una red pública de cadena de bloques, cada una de las cuales hace funcionar al menos un nodo en la red pública de cadena de bloques. En consecuencia, la red pública de cadena de bloques puede considerarse una red pública con respecto a las entidades participantes. En algunos ejemplos, la mayoría de entidades (nodos) debe firmar cada bloque para que éste sea válido y se añada a la cadena de bloques (libro de contabilidad distribuido) de la red de cadena de bloques. Las redes de cadena de bloques públicas de ejemplo incluyen redes de pago de igual a igual particulares que aprovechan un libro de contabilidad distribuido, denominado cadena de bloques. Como se señaló anteriormente, el término cadena de bloques, sin embargo, se utiliza para referirse en general a libros de contabilidad distribuidos sin una referencia particular a una red de cadena de bloques particular.
En general, una red de cadena de bloques pública soporta transacciones públicas. Una transacción pública se comparte con todos los nodos de la red pública de cadena de bloques y se almacena en una cadena de bloques global. Una cadena de bloques global es una cadena de bloques que se repite en todos los nodos. Es decir, todos los nodos están en perfecto estado de consenso con respecto a la cadena de bloques global. Para lograr un consenso (p. ej., un acuerdo para la adición de un bloque a una cadena de bloques), se implementa un protocolo de consenso dentro de la red de cadena de bloques pública. Los protocolos de consenso de ejemplo incluyen, sin limitación, prueba de trabajo (POW) (p. ej., implementado en algunas redes de divisas), prueba de participación (POS) y prueba de autoridad (POA). En el presente documento se hace referencia a POW como un ejemplo no limitativo.
En general, se proporciona una red de cadena de bloques privada para una entidad particular, que controla de forma centralizada los permisos de lectura y escritura. La entidad controla qué nodos pueden participar en la red de cadena de bloques. En consecuencia, las redes de cadena de bloques privadas se conocen generalmente como redes autorizadas que imponen restricciones sobre quién puede participar en la red y sobre su nivel de participación (p. ej., solo en ciertas transacciones). Se pueden utilizar diversos tipos de mecanismos de control de acceso (p. ej., los participantes existentes votan sobre la adición de nuevas entidades, una autoridad reguladora puede controlar la admisión).
En general, una red de consorcio de cadena de bloques es privada entre las entidades participantes. En una red de consorcio de cadena de bloques, el proceso de consenso es controlado por un conjunto autorizado de nodos, donde uno o más nodos se hacen funcionar por una entidad respectiva (por ejemplo, una institución financiera, una compañía de seguros). Por ejemplo, un consorcio de diez (10) entidades (por ejemplo, instituciones financieras, compañías de seguros) puede hacer funcionar una red de consorcio de cadena de bloques, cada una de las cuales hace funcionar al menos un nodo de la red de consorcio de cadena de bloques. En consecuencia, la red de consorcio de cadena de bloques puede considerarse una red privada con respecto a las entidades participantes. En algunos ejemplos, cada entidad (nodo) debe firmar cada bloque para que éste sea válido y se añada a la cadena de bloques. En algunos ejemplos, al menos un subconjunto de entidades (nodos) (por ejemplo, al menos 7 entidades) debe firmar cada bloque para que éste sea válido y se añada a la cadena de bloques.
Las implementaciones de la memoria descriptiva se describen con más detalle en el presente documento con referencia a una red de cadena de bloques de consorcio, o una combinación de dos o más de una red de cadena de bloques de consorcio y una red de cadena de bloques pública o privada (en adelante, una "red de cadena de bloques"). Sin embargo, se contempla que las implementaciones de la memoria descriptiva se puedan realizar en cualquier tipo apropiado de red de cadena de bloques.
Las implementaciones de la memoria descriptiva se describen con más detalle en el presente documento en vista del contexto anterior. Más particularmente, y como se introdujo anteriormente, las implementaciones de la memoria descriptiva están dirigidas a proporcionar una plataforma de colaboración abierta distribuida basada en cadena de bloques capaz de recopilar y proporcionar datos de mapas.
La FIG. 1 representa un ejemplo de un entorno 100 que puede utilizarse para ejecutar implementaciones de la memoria descriptiva. En algunos ejemplos, el entorno 100 de ejemplo permite a las entidades participar en una red de cadena de bloques 102. El entorno 100 de ejemplo incluye dispositivos informáticos 106, 108 y una red 110. En algunos ejemplos, la red 110 incluye una red de área local (LAN) , red de área amplia (WAN), el Internet o una combinación de las mismas, y conecta sitios web, dispositivos de usuario (p. ej., dispositivos informáticos) y sistemas de servidor. En algunos ejemplos, se puede acceder a la red 110 a través de un enlace de comunicaciones cableado y/o inalámbrico. En algunos ejemplos, la red 110 permite la comunicación con y dentro de la red 102 de cadena de bloques. En general, la red 110 representa una o más redes de comunicaciones.
En el ejemplo representado, los sistemas 106, 108 informáticos pueden incluir cada uno cualquier sistema informático apropiado que permita la participación como un nodo en la red 102 de cadena de bloques. Los dispositivos informáticos de ejemplo incluyen, sin limitación, un servidor, una computadora de escritorio, una computadora portátil, una computadora tableta y un teléfono inteligente. En algunos ejemplos, los sistemas 106, 108 informáticos alojan uno o más servicios implementados por computadora para interactuar con la red 102 de cadena de bloques. Por ejemplo, el sistema 106 informático puede alojar servicios implementados por computadora de una primera entidad (p. ej., Participante A), tal como el sistema de gestión de transacciones que utiliza la primera entidad para gestionar sus transacciones con una o más otras entidades (p. ej., otros participantes). El sistema 108 informático puede alojar servicios implementados por computadora de una segunda entidad (p. ej., Participante B), tal como un sistema de gestión de transacciones que utiliza la segunda entidad para gestionar sus transacciones con una o más otras entidades (p. ej., otros participantes). En el ejemplo de la FIG. 1, la red 102 de cadena de bloques se representa como una red de igual a igual de nodos, y los sistemas 106, 108 informáticos proporcionan nodos de la primera entidad y la segunda entidad, respectivamente, que participan en la red 102 de cadena de bloques.
La FIG. 2 representa un ejemplo de una arquitectura 200 conceptual de acuerdo con implementaciones de la memoria descriptiva. La arquitectura conceptual de ejemplo 200 incluye los sistemas 202, 204, 206 participantes que corresponden al Participante A, Participante B y Participante C, respectivamente. Cada uno de los participantes (p. ej., usuario, empresa) participa en una red 212 de cadena de bloques proporcionada como una red de igual a igual que incluye una pluralidad de nodos 214, al menos algunos de los cuales registran información de manera inmutable en una cadena 216 de bloques. Aunque se representa esquemáticamente una sola cadena 216 de bloques dentro de la red 212 de cadena de bloques, se proporcionan múltiples copias de la cadena 216 de bloques, y se mantienen a través de la red 212 de cadena de bloques, como se describe con más detalle en el presente documento.
En el ejemplo representado, cada uno de los sistemas 202, 204, 206 participantes se proporcionan por, o en nombre del Participante A, Participante B y Participante C, respectivamente, y funciona como un nodo 214 respectivo dentro de la red de cadena de bloques. Como se utiliza en el presente documento, un nodo en general se refiere a un sistema individual (p. ej., computadora, servidor) que está conectado a la red 212 de cadena de bloques y permite que un participante respectivo participe en la red de cadena de bloques. En el ejemplo de la FIG. 2, un participante corresponde a cada uno de los nodos 214. Se contempla, sin embargo, que un participante pueda operar múltiples nodos 214 dentro de la red 212 de cadena de bloques, y/o múltiples participantes puedan compartir un nodo 214. En algunos ejemplos, los sistemas 202, 204, 206 participantes se comunican con, o a través de, la red 212 de cadena de bloques utilizando un protocolo (p. ej., protocolo de transferencia de hipertexto seguro (HTTPS)) y/o utilizando llamadas a procedimiento remoto (RPC).
Los nodos 214 pueden tener grados variables de participación dentro de la red 212 de cadena de bloques. Por ejemplo, algunos nodos 214 pueden participar en el proceso de consenso (p. ej., como nodos cuidadores que añaden bloques a la cadena 216 de bloques), mientras que otros nodos 214 no participan en el proceso de consenso. Por dar otro ejemplo, algunos nodos 214 almacenan una copia completa de la cadena 216 de bloques, mientras que otros nodos 214 solo almacenan copias de porciones de la cadena 216 de bloques. Por ejemplo, los privilegios de acceso a datos pueden limitar los datos de cadena de bloques que un participante respectivo almacena dentro de su sistema respectivo. En el ejemplo de la FIG. 2, los sistemas 202, 204, 206 participantes almacenan copias 216', 216", 216"' completas respectivas de la cadena 216 de bloques.
Una cadena de bloques (p. ej., la cadena 216 de bloques de la FIG. 2) está formada por una cadena de bloques, cada uno de los bloques almacena datos. Los datos de ejemplo incluyen datos de transacciones representativos de una transacción entre dos o más participantes. Si bien las transacciones se utilizan en el presente documento a modo de ejemplo no limitativo, se contempla que cualquier dato apropiado se pueda almacenar en una cadena de bloques (p. ej., documentos, imágenes, vídeos, audio). Las transacciones de ejemplo pueden incluir, sin limitación, intercambios de algo de valor (p. ej., activos, productos, servicios, divisas). Los datos de transacción se almacenan de forma inmutable dentro de la cadena de bloques. Es decir, los datos de transacción no se pueden cambiar.
Antes de almacenarlos en un bloque, los datos de transacción se resumen. El resumen es un proceso de transformación de los datos de transacción (proporcionados como datos de cadena) en un valor de resumen de longitud fija (también proporcionado como datos de cadena). No es posible deshacer el resumen del valor de resumen para obtener los datos de transacción. El resumen asegura que incluso un pequeño cambio en los datos de transacción da como resultado un valor de resumen completamente diferente. Además, y como se indicó anteriormente, el valor de resumen es de longitud fija. Es decir, no importa el tamaño de los datos de transacción, la longitud del valor de resumen es fija. El resumen incluye procesar los datos de transacción a través de una función de resumen para generar el valor de resumen. Un ejemplo de función de resumen incluye, sin limitación, el algoritmo de resumen seguro (SHA)-256, que genera valores de resumen de 256 bits.
Los datos de transacción de múltiples transacciones se resumen y almacenan en un bloque. Por ejemplo, se proporcionan valores de resumen de dos transacciones y ellos mismos se resumen para proporcionar otro resumen. Este proceso se repite hasta que, para que todas las transacciones a ser almacenadas en un bloque, se proporciona un único valor de resumen. Este valor de resumen se denomina resumen de raíz de Merkle y se almacena en un encabezado del bloque. Un cambio en cualquiera de las transacciones dará como resultado un cambio en su valor de resumen y, en última instancia, un cambio en el resumen de raíz de Merkle.
Los bloques se agregan a la cadena de bloques a través de un protocolo de consenso. Múltiples nodos dentro de la red de cadena de bloques participan en el protocolo de consenso y compiten para que se añada un bloque a la cadena de bloques. Dichos nodos se conocen como mineros (o nodos cuidadores). La POW, presentada anteriormente, se utiliza como un ejemplo no limitativo.
Los nodos mineros ejecutan el proceso de consenso para añadir transacciones a la cadena de bloques. Aunque múltiples nodos mineros participan en el proceso de consenso, solo un nodo minero puede escribir el bloque en la cadena de bloques. Es decir, los nodos mineros compiten en el proceso de consenso para que su bloque se agregue a la cadena de bloques. Más detalladamente, un nodo minero recopila periódicamente transacciones pendientes de un grupo de transacciones (p. ej., hasta un límite predefinido en el número de transacciones que se pueden incluir en un bloque, si las hay). El grupo de transacciones incluye mensajes de transacción de los participantes en la red de cadena de bloques. El nodo minero construye un bloque y añade las transacciones al bloque. Antes de añadir las transacciones al bloque, el nodo minero verifica si alguna de las transacciones ya está incluida en un bloque de la cadena de bloques. Si una transacción ya está incluida en otro bloque, la transacción se descarta.
El nodo minero genera un encabezado de bloque, resume todas las transacciones en el bloque y combina el valor de resumen en pares para generar más valores de resumen hasta que se proporciona un solo valor de resumen para todas las transacciones en el bloque (el resumen raíz de Merkle). Este resumen se añade al encabezado del bloque. El minero también determina el valor de resumen del bloque más reciente en la cadena de bloques (es decir, el último bloque añadido a la cadena de bloques). El nodo minero también añade un valor de número aleatorio utilizado una sola vez y una marca de tiempo al encabezado del bloque. En un proceso de minería, el nodo minero intenta encontrar un valor de resumen que cumpla con los parámetros requeridos. El nodo minero sigue cambiando el valor de número aleatorio utilizado una sola vez hasta encontrar un valor de resumen que cumpla con los parámetros requeridos.
Cada uno de los mineros en la red de cadena de bloques intenta encontrar un valor de resumen que cumpla con los parámetros requeridos y, de esta manera, competir entre sí. Finalmente, uno de los nodos mineros encuentra un valor de resumen que cumple con los parámetros requeridos y lo anuncia a todos los demás nodos mineros en la red de cadena de bloques. Los otros nodos mineros verifican el valor de resumen y, si se determina que es correcto, verifican cada una de las transacciones en el bloque, aceptan el bloque y añaden el bloque a su copia de la cadena de bloques. De esta manera, un estado global de la cadena de bloques es consistente en todos los nodos mineros dentro de la red de cadena de bloques. El proceso descrito anteriormente es el protocolo de consenso de POW.
Con referencia a la FIG. 2, se proporciona un ejemplo no limitativo. En este ejemplo, el participante A desea enviar un monto de divisa al participante B. El participante A genera un mensaje de transacción (p. ej., que incluye los campos De, Para y Valor) y envía el mensaje de transacción a la red cadena de bloques, que añade el mensaje de transacción a un grupo de transacciones. Cada uno de los nodos mineros en la red de cadena de bloques crea un bloque y coge todas las transacciones del grupo de transacciones (p. ej., hasta un límite predefinido en el número de transacciones que se pueden añadir a un bloque, si las hay), y añade las transacciones al bloque. De esta manera, la transacción publicada por el Participante A se añade a los bloques de los nodos mineros.
En algunas redes de cadena de bloques, la criptografía se implementa para mantener la privacidad de las transacciones. Por ejemplo, si dos nodos quieren mantener una transacción privada, de modo que otros nodos en la red de cadena de bloques no puedan discernir los detalles de la transacción, los nodos pueden cifrar los datos de transacción. La criptografía de ejemplo incluye, sin limitación, cifrado simétrico y cifrado asimétrico. El cifrado simétrico se refiere a un proceso de cifrado que utiliza una única clave tanto para el cifrado (generar texto cifrado a partir del texto plano) como para el descifrado (generar texto plano a partir del texto cifrado). En el cifrado simétrico, la misma clave está disponible para múltiples nodos, de modo que cada uno de los nodos puede cifrar/descifrar datos de transacción.
El cifrado asimétrico utiliza pares de claves, cada uno de los cuales incluye una clave privada y una clave pública, siendo la clave privada conocida solo por un respectivo nodo y la clave pública siendo conocida por cualquiera o todos los demás nodos en la red de cadena de bloques. Un nodo puede utilizar la clave pública de otro nodo para cifrar datos, y los datos cifrados se pueden descifrar utilizando la clave privada de otro nodo. Por ejemplo, y haciendo referencia de nuevo a la FIG. 2, el participante A puede utilizar la clave pública del participante B para cifrar los datos y enviar los datos cifrados al participante B. El participante B puede utilizar su clave privada para descifrar los datos cifrados (texto cifrado) y extraer los datos originales (texto plano). Los mensajes cifrados con la clave pública de un nodo solo se pueden descifrar utilizando la clave privada del nodo.
El cifrado asimétrico se utiliza para proporcionar firmas digitales, lo que permite a los participantes en una transacción confirmar a otros participantes en la transacción, así como la validez de la transacción. Por ejemplo, un nodo puede firmar digitalmente un mensaje y otro nodo puede confirmar que el mensaje fue enviado por el nodo en base la firma digital del Participante A. Las firmas digitales también se pueden utilizar para garantizar que los mensajes no sean manipulados en tránsito. Por ejemplo, y haciendo referencia de nuevo a la FIG. 2, el participante A debe enviar un mensaje al participante B. El participante A genera un resumen del mensaje y luego, utilizando su clave privada, cifra el resumen para proporcionar una firma digital como resumen cifrado. El participante A agrega la firma digital al mensaje y envía el mensaje con la firma digital al participante B. El participante B descifra la firma digital utilizando la clave pública del participante A y extrae el resumen. El participante B resume el mensaje y compara los resúmenes. Si los resúmenes son iguales, el participante B puede confirmar que el mensaje era realmente del participante A y que no se manipuló.
Las implementaciones de la memoria descriptiva se describen con más detalle en el presente documento en vista del contexto anterior. Más particularmente, y como se presentó anteriormente, las implementaciones de la memoria descriptiva están dirigidas a aplicaciones de servicios de colaboración abierta distribuida basadas en cadena de bloques. Para facilitar la descripción, la memoria descriptiva utiliza un servicio de mapas como ejemplo a modo de ilustración. Sin embargo, la materia objeto descrita también se puede aplicar a otros tipos de servicios, por ejemplo, un servicio meteorológico o un servicio de consulta de precios de productos de supermercado.
Las aplicaciones de mapas convencionales se han utilizado y se utilizan en muchos aspectos relacionados con la vida diaria de las personas. Por ejemplo, las aplicaciones de mapas se pueden utilizar para planificar viajes, comprobar las condiciones del tráfico y localizar un punto de interés (tal como un restaurante o un hospital). Sin embargo, la recopilación de datos de mapas es uno de los principales desafíos que enfrentan los proveedores de aplicaciones de mapas, lo que crea dificultades tanto para los proveedores de datos de mapas como para los usuarios de servicios de mapas. Por ejemplo, los proveedores de servicios de mapas tradicionales que recopilan datos de manera centralizada deben gastar una gran cantidad de recursos (por ejemplo, personal y recursos informáticos) para recopilar y actualizar datos de mapas. Mientras tanto, los usuarios del servicio de mapas se quejan constantemente porque los datos de los mapas en sus regiones geográficas particulares no son oportunos o completos. Por ejemplo, los datos de mapas generalmente no reflejan una condición de la carretera en tiempo real, especialmente cuando hay accidentes de tráfico, mantenimiento de la carretera u otras situaciones o emergencias relacionadas con la carretera. Además, debido a la falta de una capacidad de recopilación oportuna/completa, los proveedores de datos de mapas generalmente no pueden proporcionar datos de mapas relacionados con áreas cerradas (tal como un centro comercial cubierto) con subdivisiones detalladas.
La colaboración abierta distribuida es un modelo de abastecimiento a través del cual se pueden obtener bienes y servicios de un gran grupo de personas que envían datos utilizando, por ejemplo, Internet, redes sociales o aplicaciones para teléfonos inteligentes. La colaboración abierta distribuida permite a las empresas dedicar trabajo a personas de cualquier parte del mundo. En comparación con la subcontratación, las personas involucradas en el trabajo de colaboración abierta distribuida son menos específicas y más públicas. La colaboración abierta distribuida divide las tareas, generalmente tareas grandes, en muchas subtareas más pequeñas en las que una multitud de personas puede trabajar por separado. Como tal, las empresas que utilizan modelos de colaboración abierta distribuida pueden ahorrar costos en recursos humanos, materiales y financieros al tiempo que mejoran la eficiencia y la calidad del trabajo.
Existen algunas implementaciones de funcionalidades de colaboración abierta distribuida. Por ejemplo, GOOGLE MAP MAKER es un producto complementario de GOOGLE MAPS que aprovecha las contribuciones geográficas de los usuarios para complementar el contenido existente en GOOGLE MAPS. Personas de todo el mundo ahora pueden editar información en la aplicación GOOGLE MAPS para lograr una mayor precisión. De manera similar, la aplicación de colaboración abierta distribuida en la nube del sistema de información geográfica (SIG) es un proyecto que se presenta al público como un mapa interactivo, a través del cual los usuarios pueden reportar un problema u observación. Una vez que los usuarios envían informes acerca de una ubicación o un activo, incluidas fotos y comentarios mediante una aplicación móvil o web, un coordinador del proyecto puede aprobar o rechazar los envíos.
Sin embargo, a menudo es difícil recopilar datos de una gran cantidad de usuarios o miembros de una organización, y tener todos los datos recopilados centralizados en una ubicación, y mucho menos poder organizar los datos, seguir el proceso de proyectos en curso y para informar el estado del proyecto al público y las partes interesadas. Por ejemplo, para recopilar datos de mapas de un distrito financiero bajo un enfoque tradicional de colaboración abierta distribuida, un proveedor de servicios de mapas debe primero anunciar al público y reclutar una gran cantidad de personas disponibles para enviar los datos recopilados. Este enfoque tiene algunos problemas potenciales que resultan de las dificultades para formar relaciones de confianza entre los participantes (tal como el proveedor de servicios, el recopilador de datos, el proveedor de datos y el usuario de datos) de la transacción, lo que puede llevar a tiempos de transacción prolongados y un proceso general extendido. Por ejemplo, según el enfoque tradicional, un proveedor de servicios debe dedicar una gran cantidad de tiempo a buscar personas que sean capaces de recopilar datos y celebrar contratos individuales con uno o más proveedores de datos y usuarios de servicios de datos para asegurar las transacciones comerciales. Esto da como resultado la necesidad de dedicar mucho tiempo y recursos a cada una de las partes contratantes. Además, incluso si cada una de las partes acepta los términos especificados del contrato, cada vez que se produce una disputa (por ejemplo, el proveedor de servicios no está satisfecho con los datos recibidos del recopilador de datos y se niega a pagar por los datos), cada una de las disputas requiere un manejo particular único para la disputa en particular. En tales escenarios de disputas, se requiere que cada una de las partes dedique tiempo y recursos valiosos para resolver una o más disputas.
Por lo tanto, las soluciones existentes para la recopilación de datos de colaboración abierta distribuida son insuficientes para un gran número (por ejemplo, miles) de recopiladores de datos, así como proveedores de datos y proveedores de servicios en un proceso de intercambio de datos y transacciones comerciales seguro y simplificado, y utilizando la misma aplicación simple para el mismo proyecto u objetivo. Por lo tanto, los desafíos clave para utilizar este tipo de modelo de colaboración abierta distribuida para la recopilación de datos es encontrar una manera eficiente de facilitar la cooperación entre los recopiladores de datos y los usuarios del servicio de datos (así como otros participantes), priorizando tareas, reduciendo el tiempo de respuesta, monitorizando el progreso y siguiendo detalles de las transacciones realizadas.
Esta divulgación describe una aplicación de servicio de colaboración abierta distribuida basada en tecnologías cadena de bloques. Las entidades (tal como recopiladores de datos, usuarios de servicios de datos, proveedores de datos y proveedores de servicios) que participan en las transacciones están vinculadas por uno o más contratos inteligentes, que son acuerdos informáticos diseñados para difundir, verificar o hacer cumplir los contratos de manera informativa. Los contratos inteligentes están abiertos al público y se pueden ejecutar automáticamente una vez ingresados, lo que permite realizar transacciones confiables sin la participación de terceros. En algunas implementaciones, las transacciones de contratos inteligentes son rastreables e irreversibles. Por ejemplo, el proveedor de servicios puede establecer requisitos para los datos necesarios en un contrato inteligente y publicarlos para el público. Cualquiera del público puede aceptar el contrato inteligente. Una vez que un recopilador de datos cumple con todos los requisitos detallados en el contrato inteligente (por ejemplo, enviar datos válidos al proveedor de servicios), el recopilador de datos puede recibir automáticamente una recompensa prometida en el contrato inteligente, sin dejar posibilidad alguna para que el proveedor de servicios incumpla el contrato inteligente. Como tal, las transacciones comerciales se pueden realizar entre las partes contratantes de forma automática y segura, reduciendo el tiempo de procesamiento y ahorrando recursos informáticos para cada una de las entidades.
Por ejemplo, cuando un proveedor de servicios de mapas necesita recopilar datos asociados con un distrito financiero, en lugar de contratar recopiladores de datos del público y celebrar contratos individuales con cada uno de los recopiladores de datos, el proveedor de servicios de mapas puede formar una cadena de bloques y publicar una contrato inteligente en la cadena de bloques, solicitando a las personas que viven cerca del distrito financiero que envíen datos. Cualquier individuo (no es necesario que se una a la cadena de bloques) que conozca el contrato inteligente puede realizar una transacción con el proveedor de servicios de mapas aceptando los términos del contrato inteligente y recibir pagos automáticamente una vez que los datos se hayan enviado correctamente al proveedor de servicios de mapas. Como tal, todo el proceso de transacción se simplifica con un nivel mínimo de intervención humana que se necesita para monitorizar cada uno de los pasos de una transacción.
La FIG. 3 representa un ejemplo de un entorno 300 de sistema de una aplicación de mapas de colaboración abierta distribuida basada en cadena de bloques de acuerdo con implementaciones de la memoria descriptiva. El proveedor 302 de servicios de mapas puede ser cualquier proveedor de servicios de mapas que sea capaz de formar una cadena de bloques y ejecutar contratos inteligentes con individuos y proveedores de datos (por ejemplo, recopiladores de datos y proveedores de datos). La cadena de bloques formada puede incluir el proveedor 304 de servicios de datos y el proveedor 306 de datos. El proveedor 304 de servicios de datos proporciona servicios de datos al proveedor 302 de servicios de mapas, tales como verificar o almacenar datos de mapas recibidos desde el proveedor 302 de servicios de mapas. El el proveedor 306 de datos puede proporcionar información adicional que no se puede recopilar a través de la colaboración abierta distribuida al proveedor 302 de servicios de mapas. Dichos datos pueden incluir, por ejemplo, imágenes de satélite de una región geográfica particular. El proveedor 302 de servicios de mapas celebra un contrato inteligente con cada uno de los proveedores de servicios de datos 304 y el proveedor 306 de datos, respectivamente, al comienzo del proceso. Debido a la existencia del contrato inteligente, el proveedor 302 de servicios de mapas puede ejecutar una serie de transacciones, tal como el consumo de datos y la autorización de datos con el proveedor 304 de servicios de datos y el proveedor 306 de datos automáticamente, reduciendo los costos de transacción para cada una de las entidades.
Para los datos que se pueden recopilar mediante la recopilación de colaboración abierta distribuida, tal como las condiciones del tráfico de una región geográfica específica, el proveedor 302 de servicios de mapas puede enviar la tarea de recopilación de datos a uno o más recopiladores 308 de datos. El recopilador de datos 308 recopila datos para el proveedor 302 de servicios de mapas en la cadena de bloques a cambio de una recompensa. Por ejemplo, el recopilador 308 de datos puede ser cualquier individuo con la capacidad de recopilar datos de mapas para una región geográfica específica. Una vez que un recopilador 308 de datos acepta un contrato inteligente ofrecido por el proveedor 302 de servicios de mapas, el recopilador 308 de datos recopila datos de mapas utilizando, por ejemplo, un sistema de posicionamiento global (GPS), cámaras en el tablero de un automóvil, dispositivos informáticos móviles o drones, y vende los datos recopilados al proveedor 302 de servicios de mapas. Después de que el proveedor 304 de servicios de datos procese (tal como verifique y elimine (por ejemplo, normalice y elimine datos irregulares) los datos enviados, el proveedor 302 de servicios de mapas puede vender los datos procesados a un usuario 310 del servicio que necesita comprar o alquilar los datos de mapas correspondientes para un propósito particular.
La FIG. 4 representa un ejemplo de un método 400 implementado por computadora que se puede ejecutar de acuerdo con implementaciones de la memoria descriptiva. En algunas implementaciones, el método 400 se puede realizar utilizando uno o más programas ejecutables por computadora ejecutados utilizando uno o más dispositivos informáticos. Para mayor claridad de presentación, la descripción que sigue describe generalmente el método 400 en el contexto de las otras figuras en esta descripción. Sin embargo, se entenderá que el método 400 puede realizarse, por ejemplo, mediante cualquier sistema, entorno, software, hardware adecuado o una combinación de sistemas, entornos, software o hardware, según sea apropiado. En algunas implementaciones, se pueden ejecutar diversos pasos del método 400 en paralelo, en combinación, en bucles o en cualquier orden.
En 402, un proveedor de servicios de mapas asociado con una cadena de bloques recibe datos de mapas desde una pluralidad de recopiladores de datos. En algunas implementaciones, la cadena de bloques puede ser una cadena de bloques de consorcio. En algunas implementaciones, el proveedor de servicios de mapas es una empresa (por ejemplo, Alibaba) que proporciona servicios a clientes a través de aplicaciones de software que se ejecutan en dispositivos informáticos móviles y no móviles. En algunas implementaciones, los servicios proporcionados pueden incluir un servicio de mapas o un servicio meteorológico. En algunas implementaciones, el recopilador de datos recopila los datos de mapas utilizando colaboración abierta distribuida.
En algunas implementaciones, el proveedor de servicios de mapas recibe datos desde uno o más recopiladores de datos a través de colaboración abierta distribuida. En algunas implementaciones, cada uno de los recopiladores de datos es un miembro del público o un miembro de un grupo. En algunas implementaciones, los recopiladores de datos pueden utilizar GPS, una cámara en el tablero de un automóvil, un dispositivo de computación móvil o un dron para recopilar los datos.
En algunas implementaciones, antes de recibir datos de mapas de los recopiladores de datos, el proveedor de servicios de mapas ejecuta un contrato inteligente con uno o más de los recopiladores de datos. El contrato inteligente establece un mecanismo de incentivo mediante el cual el uno o más recopiladores de datos pueden recibir una recompensa una vez que recopilan y envían datos relevantes al proveedor de servicios de mapas. En algunas implementaciones, los datos se pueden validar para asegurar que los datos cumplan con los requisitos preestablecidos del proveedor de servicios de mapas. Por ejemplo, si los datos se recopilan desde el recopilador de datos real, si son útiles, oportunos o de acuerdo con cualquier otro criterio. En algunas implementaciones, los requisitos preestablecidos se pueden incluir en un contrato inteligente. Desde 402, el método 400 pasa a 404.
En 404, los datos de mapas se transmiten a un proveedor de servicios de datos para su procesamiento. En algunas implementaciones, antes de transmitir los datos de mapas al proveedor de servicios de datos, el proveedor de servicios de mapas ejecuta un contrato inteligente con el proveedor de servicios de datos para garantizar que se puedan realizar transacciones entre el proveedor de servicios de mapas y el proveedor de servicios de datos automáticamente.
En algunas implementaciones, transmitir los datos de mapas a un proveedor de servicios de datos para su procesamiento incluye transmitir los datos de mapas a un proveedor de servicios de datos para normalizar los datos de mapas o descartar datos irregulares de los datos de mapas. Por ejemplo, después de que un proveedor de servicios de mapas recibe lotes de datos para una región geográfica específica desde el uno o más recopiladores de datos, el proveedor de servicios de mapas puede enviar los lotes de datos al proveedor de servicios de datos, que puede normalizar los lotes de datos o comparar cada uno de los lotes de datos y eliminar cualquier lote de datos que contenga aspectos irregulares (por ejemplo, corruptos, incompletos o desactualizados). En algunas implementaciones, el proveedor de servicios de datos también puede almacenar los datos para el proveedor de servicios de mapas. Desde 404, el método 400 pasa a 406.
En 406, el proveedor de servicios de mapas recibe datos no de colaboración abierta distribuida desde un proveedor de datos asociado con la cadena de bloques. Los datos recibidos que no son de colaboración abierta distribuida son datos que no se pueden recopilar (o son difíciles de recopilar) a través de colaboración abierta distribuida. Por ejemplo, el proveedor de servicios de mapas puede necesitar información tal como imágenes de satélite o imágenes aéreas de una región geográfica objetivo de recopiladores de no datos. En algunas implementaciones, antes de recibir los datos no de colaboración abierta distribuida desde el proveedor de datos, el proveedor de servicios de mapas ejecuta un contrato inteligente con el proveedor de datos para garantizar que las transacciones se puedan realizar automáticamente. Desde 406, el método 400 pasa a 408.
En 408, los datos de no colaboración abierta distribuida se transmiten al proveedor de servicios de datos para su procesamiento con los datos de mapas. A partir de 408, el método 400 pasa a 410.
En 410, se recibe una solicitud de datos de mapas procesados de un usuario del servicio. En algunas implementaciones, el usuario del servicio puede ser un cliente que necesita comprar o alquilar datos para un propósito específico, por ejemplo, recibir actualizaciones de las condiciones del tráfico para una ruta o solicitar un mapa detallado interior o exterior de un edificio. A partir de 410, el método 400 pasa a 412.
En 412, los datos de mapas procesados que se generan a partir de los datos de mapas y los datos no de colaboración abierta se recuperan desde el proveedor de servicios de datos. En algunas implementaciones, antes de enviar los datos procesados al usuario del servicio, el proveedor de servicios de mapas ejecuta un contrato inteligente con el usuario del servicio para garantizar que las transacciones entre ellos se pueden realizar automáticamente. Después de 412, el método 400 pasa a 414.
En 414, los datos de mapas procesados se transmiten al usuario del servicio en respuesta a la solicitud. Después de 414, el método 400 se puede detener.
La FIG. 5 representa un ejemplo de módulos de un aparato 500 de acuerdo con implementaciones de esta memoria descriptiva. El aparato 500 puede ser una implementación de ejemplo de un aparato configurado para permitir la colaboración abierta distribuida de datos basada en cadena de bloques (tal como, en una red de consorcio u otro tipo de cadena de bloques). El aparato 500 puede corresponder a las implementaciones descritas anteriormente, y el aparato 500 incluye lo siguiente: Un primer receptor o primera unidad 502 de recepción para recibir, en un proveedor de servicios de mapas asociado con una cadena de bloques, datos de mapas de un recopilador de datos; un primer transmisor o una primera unidad 504 de transmisión para transmitir los datos de mapas a un proveedor de servicios de datos para su procesamiento; un segundo receptor o una segunda unidad 506 de recepción para recibir, en el proveedor de servicios de mapas, datos no de colaboración abierta distribuida desde un proveedor de datos; un segundo transmisor o una segunda unidad 508 de transmisión para transmitir los datos no de colaboración abierta distribuida al proveedor de servicios de datos para procesarlos con los datos de mapas; un tercer receptor o una tercera unidad 510 de recepción para recibir una solicitud de datos de mapas procesados de un usuario del servicio; un recuperador o una unidad 512 de recuperación para recuperar, desde el proveedor de servicios de datos, los datos de mapa procesados que se generan a partir de los datos de mapas y los datos no de colaboración abierta distribuida; y un tercer transmisor o una tercera unidad 514 de transmisión para transmitir los datos de mapas procesados al usuario del servicio en respuesta a la solicitud.
El sistema, aparato, módulo o unidad ilustrado en las implementaciones anteriores puede implementarse utilizando un chip informático o una entidad, o puede implementarse utilizando un producto que tenga una determinada función. Un dispositivo de implementación típico es una computadora, y la computadora puede ser una computadora personal, una computadora portátil, un teléfono móvil, un teléfono con cámara, un teléfono inteligente, un asistente digital personal, un reproductor multimedia, un dispositivo de navegación, un dispositivo de recepción y envío de correo electrónico, una consola de juegos, una computadora tableta, un dispositivo ponible o cualquier combinación de estos dispositivos.
Para un proceso de implementación de funciones y roles de cada una de las unidades en el aparato, se pueden hacer referencias a un proceso de implementación de los pasos correspondientes en el método anterior. Los detalles se omiten aquí por simplicidad.
Debido a que una implementación del aparato corresponde básicamente a una implementación del método, para las partes relacionadas, se pueden hacer referencias a descripciones relacionadas en la implementación del método. La implementación de aparato descrita anteriormente es simplemente un ejemplo. Las unidades descritas como partes separadas pueden estar, o no, físicamente separadas, y las partes mostradas como unidades pueden ser, o no, unidades físicas, pueden estar ubicadas en una posición, o pueden estar distribuidas en varias unidades de red. Algunos o todos los módulos pueden seleccionarse en función de las demandas reales para lograr los objetivos de las soluciones de la memoria descriptiva. Un experto en la técnica puede entender y poner en práctica las formas de realización de la presente solicitud sin esfuerzos creativos.
Haciendo referencia de nuevo a la FIG. 5, se puede interpretar como una ilustración de un módulo funcional interno y una estructura de un aparato para permitir la colaboración abierta distribuida de datos basada en cadena de bloques. El aparato de ejecución puede ser un ejemplo de un aparato configurado para permitir la colaboración abierta distribuida de datos basada en cadena de bloques.
Las implementaciones de la materia objeto y las acciones y operaciones descritas en esta memoria descriptiva se pueden implementar en circuitería electrónica digitales, en software o firmware de computadora incorporados de manera tangible, en hardware de computadora, incluidas las estructuras descritas en esta memoria descriptiva y sus equivalentes estructurales, o en combinaciones de uno o más de ellos. Las implementaciones de la materia objeto descrita en esta memoria descriptiva se pueden implementar como uno o más programas informáticos, p. ej., uno o más módulos de instrucciones de programa informático, codificados en un soporte de programa informático, para su ejecución por, o para controlar la operación de, aparatos de procesamiento de datos. El soporte puede ser un medio de almacenamiento informático tangible no transitorio. Alternativa o adicionalmente, el portador puede ser una señal propagada generada artificialmente, por ejemplo, una señal eléctrica, óptica o electromagnética generada por una máquina que se genera para codificar información para su transmisión a un aparato receptor adecuado para su ejecución por un aparato de procesamiento de datos. El medio de almacenamiento informático puede ser o ser parte de un dispositivo de almacenamiento legible por máquina, un sustrato de almacenamiento legible por máquina, un dispositivo de memoria de acceso aleatorio o en serie, o una combinación de uno o más de ellos. Un medio de almacenamiento informático no es una señal propagada.
El término "aparato de procesamiento de datos" abarca todo tipo de aparatos, dispositivos y máquinas para procesar datos, incluyendo, a modo de ejemplo, un procesador programable, una computadora o múltiples procesadores u computadoras. El aparato de procesamiento de datos puede incluir circuitería lógica de propósito especial, p. ej., una FPGA (matriz de puertas programables en campo), un ASIC (circuito integrado de aplicación específica) o una GPU (unidad de procesamiento de gráficos). El aparato también puede incluir, además del hardware, código que crea un entorno de ejecución para programas informáticos, p. ej., código que constituye el firmware del procesador, una pila de protocolo, un sistema de gestión de bases de datos, un sistema operativo o una combinación de uno o más de ellos.
Un programa informático, que también puede denominarse o describirse como un programa, software, una aplicación de software, una app, un módulo, un módulo de software, un motor, una secuencia de comandos o código, se puede escribir en cualquier forma de lenguaje de programación, incluidos los lenguajes compilados o interpretados, o los lenguajes declarativos o procedimentales; y se puede desplegar en cualquier forma, incluso como un programa independiente o como un módulo, componente, motor, subrutina u otra unidad adecuada para ejecutarse en un entorno informático, cuyo entorno puede incluir una o más computadoras interconectadas por una red de comunicaciones de datos en una o más ubicaciones.
Un programa informático puede, pero no necesariamente, corresponder a un archivo en un sistema de archivos. Un programa informático puede estar almacenado en una porción de un archivo que contiene otros programas o datos, p. ej., una o más secuencias de comandos almacenadas en un documento de lenguaje de marcado, en un solo archivo dedicado al programa en cuestión, o en múltiples archivos coordinados, p. ej., archivos que almacenan uno o más módulos, subprogramas o porciones de código.
Los procesos y flujos lógicos descritos en esta memoria descriptiva pueden realizarse por una o más computadoras que ejecutan uno o más programas informáticos para realizar operaciones operando con datos de entrada y generando salida. Los procesos y flujos lógicos también se pueden realizar mediante circuitería lógica de propósito especial, p. ej., una FPGA, un ASIC o una GPU, o mediante una combinación de circuitería lógica de propósito especial y uno o más computadoras programadas.
Las computadoras adecuadas para la ejecución de un programa informático pueden estar basadas en microprocesadores de propósito general o especial o ambos, o cualquier otro tipo de unidad central de procesamiento. Generalmente, una unidad central de procesamiento recibirá instrucciones y datos de una memoria de solo lectura o una memoria de acceso aleatorio o ambas. Los elementos de una computadora pueden incluir una unidad central de procesamiento para ejecutar instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. La unidad central de procesamiento y la memoria pueden complementarse o incorporarse en circuitería lógica de propósito especial.
Generalmente, una computadora también incluirá, o estará operativamente acoplada para recibir datos o transferir datos a uno o más dispositivos de almacenamiento masivo. Los dispositivos de almacenamiento masivo pueden ser, por ejemplo, discos magnéticos, magneto-ópticos u ópticos, o unidades de estado sólido. Sin embargo, una computadora no necesita tener tales dispositivos. Además, una computadora puede integrarse en otro dispositivo, p. ej., un teléfono móvil, un asistente digital personal (PDA), un reproductor de audio o vídeo móvil, una consola de juegos, un receptor del sistema de posicionamiento global (GPS) o un dispositivo de almacenamiento portátil, p. ej., una unidad flash de bus serie universal (USB), por nombrar solo algunas.
Para facilitar la interacción con un usuario, las implementaciones de la materia objeto descrita en esta memoria descriptiva se pueden implementar o configurar para comunicarse con una computadora que tenga un dispositivo de visualización, p. ej., un monitor LCD (pantalla de cristal líquido), para visualizar información al usuario, y un dispositivo de entrada mediante el cual el usuario puede proporcionar entrada a la computadora, p. ej., un teclado y un dispositivo señalador, p. ej., un ratón, una bola de seguimiento o un panel táctil. También se pueden utilizar otros tipos de dispositivos para proporcionar la interacción con un usuario; por ejemplo, la retroalimentación proporcionada al usuario puede ser cualquier forma de retroalimentación sensorial, p. ej., retroalimentación visual, retroalimentación auditiva o retroalimentación táctil; y la entrada del usuario se puede recibir de cualquier forma, incluida la entrada acústica, de voz o táctil. Además, una computadora puede interactuar con un usuario enviando documentos a y recibiendo documentos desde un dispositivo que se utiliza por el usuario; por ejemplo, enviando páginas web a un navegador web en el dispositivo de un usuario en respuesta a solicitudes recibidas desde el navegador web, o interactuando con una app que se ejecuta en un dispositivo de usuario, p. ej., un teléfono inteligente o tableta electrónica. Además, una computadora puede interactuar con un usuario enviando mensajes de texto u otras formas de mensaje a un dispositivo personal, p. ej., un teléfono inteligente que está ejecutando una aplicación de mensajería, y recibiendo de vuelta mensajes de respuesta del usuario.
Esta memoria descriptiva utiliza el término "configurado para" en relación con sistemas, aparatos y componentes de programas informáticos. Para que un sistema de una o más computadoras esté configurado para realizar operaciones o acciones particulares significa que el sistema tiene instalado software, firmware, hardware o una combinación de ellos que en funcionamiento hacen que el sistema realice las operaciones o acciones.g Que uno o más programas de ordenador se configuren para realizar operaciones o acciones particulares significa que el o los programas incluyen instrucciones que, cuando son ejecutadas por el aparato de procesamiento de datos, hacen que el aparato realice las operaciones o acciones. Que un circuito lógico de propósito especial se configure para realizar operaciones o acciones particulares significa que el circuito tiene una lógica electrónica que realiza las operaciones o acciones.
Si bien esta memoria descriptiva contiene muchos detalles de implementación específica, estos no deben interpretarse como limitaciones en el alcance de lo que se reivindica, que está definido por las propias reivindicaciones, sino más bien como descripciones de características que pueden ser específicas de implementaciones particulares. Ciertas características que se describen en esta memoria descriptiva en el contexto de implementaciones separadas también se pueden realizar en combinación en una sola implementación. A la inversa, diversas características que se describen en el contexto de una única implementación también se pueden realizar en múltiples implementaciones por separado o en cualquier subcombinación adecuada. Además, aunque las características pueden describirse anteriormente como que actúan en ciertas combinaciones e incluso inicialmente reivindicarse como tales, una o más características de una combinación reivindicada pueden en algunos casos eliminarse de la combinación, y la reivindicación puede estar dirigida a una subcombinación o variación de una subcombinación.
De manera similar, si bien las operaciones se ilustran en los dibujos y se enumeran en las reivindicaciones en un orden particular, esto no debe entenderse como que requiere que tales operaciones se realicen en el orden particular mostrado o en orden secuencial, o que todas las operaciones ilustradas se realicen, para lograr resultados deseables. En determinadas circunstancias, la multitarea y el procesamiento en paralelo pueden ser ventajosos. Además, la separación de diversos módulos y componentes del sistema en las implementaciones descritas anteriormente no debe entenderse que requiera dicha separación en todas las implementaciones, y debe entenderse que los componentes y sistemas del programa descritos generalmente se pueden integrar juntos en un solo producto de software o empaquetarse en múltiples productos de software.
Se han descrito implementaciones particulares de la materia objeto. Por ejemplo, las acciones enumeradas en las reivindicaciones se pueden realizar en un orden diferente y aún, así lograr resultados deseables. Como ejemplo, los procesos representados en las figuras adjuntas no requieren necesariamente el orden particular mostrado, o el orden secuencial, para lograr resultados deseables. En algunos casos, la multitarea y el procesamiento en paralelo pueden resultar ventajosos.

Claims (7)

REIVINDICACIONES
1. Un método (400) implementado por computadora, el método que comprende:
ejecutar, por un proveedor (302) de servicios de mapas asociado con una cadena de bloques, un primer contrato inteligente en la cadena de bloques con un recopilador (308) de datos, dicho primer contrato inteligente permite que el recopilador de datos reciba una recompensa una vez que recopila y envía datos relevantes al proveedor de servicios de mapas, en donde el proveedor de servicios de mapas y el recopilador de datos son dispositivos informáticos que participan en la cadena de bloques, y luego
recibir (402), en el proveedor de servicios de mapas, datos de mapas del recopilador de datos; ejecutar, mediante el proveedor de servicios de mapas, un segundo contrato inteligente en la cadena de bloques con un proveedor (304) de servicios de datos, en donde el proveedor de servicios de datos es un dispositivo informático que participa en la cadena de bloques, y luego
transmitir (404) los datos de mapas al proveedor de servicios de datos para su procesamiento; ejecutar, mediante el proveedor de servicios de mapas, un tercer contrato inteligente en la cadena de bloques con un proveedor (306) de datos, en donde el proveedor de datos es un dispositivo informático que participa en la cadena de bloques, y luego
recibir (406), en el proveedor de servicios de mapas, datos no de colaboración abierta distribuida desde el proveedor de datos;
transmitir (408) los datos no de colaboración abierta distribuida al proveedor de servicios de datos para procesarlos con los datos de mapas;
recibir (410) una solicitud de datos de mapas procesados de un usuario del servicio;
recuperar (412), del proveedor de servicios de datos, los datos de mapas procesados que se generan a partir de los datos de mapas y los datos no de colaboración abierta distribuida;
ejecutar, mediante el proveedor de servicios de mapas, un cuarto contrato inteligente en la cadena de bloques con el usuario del servicio, y luego
transmitir (414) los datos de mapas procesados al usuario del servicio en respuesta a la solicitud.
2. El método (400) implementado por computadora de la reivindicación 1, en donde el proveedor (302) de servicios de mapas proporciona el consumo de datos automatizado o la autorización de datos para el usuario del servicio.
3. El método (400) implementado por computadora de la reivindicación 1, en donde transmitir (404) los datos de mapas al proveedor (304) de servicios de datos para su procesamiento incluye transmitir los datos de mapas al proveedor de servicios de datos para normalizar los datos de mapas o descartar datos irregulares de los datos de mapas.
4. El método (400) implementado por computadora de la reivindicación 1, en donde la cadena de bloques es una cadena de bloques de consorcio.
5. El método (400) implementado por computadora de la reivindicación 1, en donde los datos de mapas se recopilan por el recopilador (308) de datos utilizando colaboración abierta distribuida.
6. Uno o más medios de almacenamiento legibles por computadora codificados con instrucciones que, cuando se ejecutan por uno o más procesadores, hacen que el uno o más procesadores realicen el método (400) de acuerdo con una cualquiera de las reivindicaciones 1 a 5.
7. Un sistema que comprende:
uno o más procesadores; y
uno o más medios de almacenamiento legibles por computadora codificados con instrucciones que, cuando se ejecutan por uno o más procesadores, hacen que el uno o más procesadores realicen el método (400) de acuerdo con una cualquiera de las reivindicaciones 1 a 5.
ES18866758T 2018-12-29 2018-12-29 Colaborción abierta distribuida basada en cadena de bloques de aplicaciones de mapa Active ES2879908T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/125637 WO2019072311A2 (en) 2018-12-29 2018-12-29 PARTICIPATORY PRODUCTION BASED ON A CHAIN OF BLOCKS OF MAPPING APPLICATIONS

Publications (2)

Publication Number Publication Date
ES2879908T3 true ES2879908T3 (es) 2021-11-23
ES2879908T9 ES2879908T9 (es) 2022-01-21

Family

ID=66100140

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18866758T Active ES2879908T3 (es) 2018-12-29 2018-12-29 Colaborción abierta distribuida basada en cadena de bloques de aplicaciones de mapa

Country Status (11)

Country Link
US (1) US10677607B2 (es)
EP (1) EP3566418B1 (es)
JP (1) JP6763094B2 (es)
KR (1) KR102151903B1 (es)
CN (1) CN110383791B (es)
ES (1) ES2879908T3 (es)
PH (1) PH12019501794A1 (es)
PL (1) PL3566418T3 (es)
SG (1) SG11201907107WA (es)
TW (1) TWI712982B (es)
WO (1) WO2019072311A2 (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966917B2 (en) * 2018-09-12 2024-04-23 Bitclave Pte. Ltd. Systems and methods for providing personal rewards in a trustless ecosystem
US11280621B2 (en) * 2019-01-04 2022-03-22 International Business Machines Corporation Navigation using a device without global positioning system assistance
WO2021033443A1 (ja) * 2019-08-21 2021-02-25 ソニー株式会社 情報処理装置、情報処理方法、プログラム及び情報処理システム
US20210103923A1 (en) * 2019-10-03 2021-04-08 Titan IO, Inc. Method, apparatus, and computer-readable medium for routing data services over a decentralized network
JP7041111B2 (ja) * 2019-10-15 2022-03-23 本田技研工業株式会社 管理装置
US11622252B2 (en) * 2019-11-08 2023-04-04 Huawei Technologies Co., Ltd. Methods and systems for management and control of communication network
CN111212130B (zh) * 2019-12-30 2022-12-27 广州京信通信科技有限公司 智慧室分区块链存储方法、系统、节点设备和定位方法
CN111131508B (zh) * 2019-12-31 2022-08-26 布比(北京)网络技术有限公司 区块链众包任务的执行方法、系统和计算机设备
USD996462S1 (en) * 2020-04-15 2023-08-22 Sublink, Llc Display screen or portion thereof with animated graphical user interface
CN111626718B (zh) * 2020-05-19 2023-07-14 石家庄科林电气股份有限公司 具有区块链功能支持的智能电能表
CN111613061B (zh) * 2020-06-03 2021-11-02 徐州工程学院 一种基于众包和区块链的交通流采集系统及方法
US11963077B2 (en) 2020-06-29 2024-04-16 Hewlett Packard Enterprise Development Lp Blockchain-based system for connected vehicles
KR102324766B1 (ko) * 2021-07-01 2021-11-10 (주)코아메소드 챗봇 프로젝트 관리 시스템
DE102022001638A1 (de) 2022-05-10 2022-06-30 Mercedes-Benz Group AG Verfahren zur inkrementellen Erfassung einer Straßenkarte nach einem Konsensprotokoll
TWI815779B (zh) * 2023-03-17 2023-09-11 英業達股份有限公司 影像編輯驗證系統

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775065B2 (en) * 2010-04-05 2014-07-08 Qualcomm Incorporated Radio model updating
US20110313779A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Augmentation and correction of location based data through user feedback
US10861112B2 (en) * 2012-07-31 2020-12-08 Causam Energy, Inc. Systems and methods for advanced energy settlements, network-based messaging, and applications supporting the same on a blockchain platform
US20180276508A1 (en) * 2015-10-28 2018-09-27 Fractal Industries, Inc. Automated visual information context and meaning comprehension system
EP3387600A4 (en) * 2015-12-10 2019-04-24 Max2 Inc. INTEGRATED SYSTEM FOR BACkS-BASED SEARCH, TRADE AND ANALYTICS MACHINES
WO2017180382A1 (en) * 2016-04-12 2017-10-19 Pcms Holdings, Inc. System and method for data validation in a decentralized sensor network
EP3295362B1 (en) * 2016-05-13 2018-07-11 Nchain Holdings Limited A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
WO2018031551A1 (en) * 2016-08-08 2018-02-15 The Dun & Bradstreet Corporation Trusted platform and integrated bop applications for networking bop components
US10284654B2 (en) * 2016-09-27 2019-05-07 Intel Corporation Trusted vehicle telematics using blockchain data analytics
US20180165585A1 (en) * 2016-12-09 2018-06-14 Cognitive Scale, Inc. Method for Providing Procurement Related Cognitive Insights Using Blockchains
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN107341702B (zh) * 2017-03-08 2020-06-23 创新先进技术有限公司 一种业务处理的方法及装置
CN107103405B (zh) * 2017-03-22 2021-03-19 暨南大学 一种基于区块链技术的众包系统及其建设方法
US10663303B2 (en) * 2017-06-12 2020-05-26 Panasonic Intellectual Property Management Co., Ltd. System and method for dynamically authenticating map data using blockchains
CN108830709A (zh) * 2018-04-17 2018-11-16 中车工业研究院有限公司 一种基于区块链的众包交易系统
CN108629053B (zh) * 2018-05-30 2021-05-07 苏州朗润创新知识产权运营有限公司 一种数据更新方法、装置及系统
CN108898492A (zh) * 2018-07-17 2018-11-27 北京猎户星空科技有限公司 一种基于联盟链的众包任务实现方法和装置及系统
CN108966132A (zh) * 2018-07-25 2018-12-07 佛山市高明曦逻科技有限公司 基于区块链的导航系统

Also Published As

Publication number Publication date
ES2879908T9 (es) 2022-01-21
JP2020512614A (ja) 2020-04-23
PH12019501794A1 (en) 2020-03-09
SG11201907107WA (en) 2019-08-27
CN110383791A (zh) 2019-10-25
JP6763094B2 (ja) 2020-09-30
KR102151903B1 (ko) 2020-09-03
KR20200083935A (ko) 2020-07-09
US20190301883A1 (en) 2019-10-03
TW202032488A (zh) 2020-09-01
EP3566418A4 (en) 2020-03-04
PL3566418T3 (pl) 2021-11-15
WO2019072311A2 (en) 2019-04-18
EP3566418B1 (en) 2021-04-21
WO2019072311A3 (en) 2019-10-24
EP3566418A2 (en) 2019-11-13
TWI712982B (zh) 2020-12-11
CN110383791B (zh) 2022-11-18
US10677607B2 (en) 2020-06-09

Similar Documents

Publication Publication Date Title
ES2879908T3 (es) Colaborción abierta distribuida basada en cadena de bloques de aplicaciones de mapa
ES2879907T3 (es) Ejecución paralela de transacciones en una red de cadena de bloques basada en listas blancas de contratos inteligentes
Alamri et al. Blockchain for Internet of Things (IoT) research issues challenges & future directions: A review
Hîrţan et al. Blockchain-based reputation for intelligent transportation systems
US11836717B2 (en) System and method for processing payments in fiat currency using blockchain and tethered tokens
Antal et al. Distributed ledger technology review and decentralized applications development guidelines
Capece et al. Blockchain technology: Redefining trust for digital certificates
Swan Blockchain: Blueprint for a new economy
US20190237169A1 (en) System for providing a data market for health data and for providing rewards to data market participants
Alam A blockchain-based framework for secure educational credentials
Li et al. A blockchain-assisted intelligent transportation system promoting data services with privacy protection
Oktian et al. Hierarchical multi-blockchain architecture for scalable internet of things environment
Khoshavi et al. Blockchain applications to improve operation and security of transportation systems: A survey
Shuaib et al. Blockchain-based initiatives in social security sector
Partida et al. Identity and access management resilience against intentional risk for blockchain-based IOT platforms
Liang et al. FairCs—Blockchain-based fair crowdsensing scheme using trusted execution environment
Rajawat et al. 5g-enabled cyber-physical systems for smart transportation using blockchain technology
Khan et al. Tread: privacy preserving incentivized connected vehicle mobility data storage on interplanetary-file-system-enabled blockchain
Razzaq et al. Blockchain-enabled decentralized secure big data of remote sensing
Alkhodair et al. FlexiChain 3.0: distributed ledger technology-based intelligent transportation for vehicular digital asset exchange in smart cities
Rahman et al. Blockchain applicability for the Internet of Things: Performance and scalability challenges and solutions
Mohammad et al. Using blockchain for data collection in the automotive industry sector: A literature review
Ashfaq et al. An intelligent automated system for detecting malicious vehicles in intelligent transportation systems
Christidis et al. Decentralized blockchain-based IoT data marketplaces
Lee et al. A time bank system design on the basis of hyperledger fabric blockchain