Validation in a decentralized network
Patent Information
- Application Number
- JP2023119844
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-09-26
- Filing Date
- 2023-07-24
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2039-12-23
Smart Images

Figure 0007635309000001 
Figure 0007635309000002 
Figure 0007635309000003
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to and the benefit of U.S. Utility Application No. 16 / 584,426, entitled VALIDATION IN A DECENTRALIZED NETWORK, filed September 26, 2019, and U.S. Provisional Application No. 62 / 784,080, entitled VALIDATION IN A DECENTRALIZED NETWORK, filed December 21, 2018, the entire contents of both of which are incorporated herein by reference. [Background technology]
[0003] The Internet of Things (IoT), a network of connected "smart" devices that communicate seamlessly over the Internet, is spreading into all aspects of human life. IoT devices are increasingly being used for medical care in hospitals, and in medical devices and pharmaceuticals. In cities, IoT devices help track and monitor pollution. IoT devices can also be used by governments, military, corporations, and individuals for asset tracking and management. These applications serve different purposes, but all share one characteristic: a reliance on strong connectivity. Soon, traditional networks will not be able to handle the bandwidth and power requirements necessary to support the connections for billions of IoT devices.
[0004] The subject matter claimed herein is not limited to embodiments that solve any shortcomings or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area in which some embodiments described herein may be practiced. Summary of the Invention
[0005] According to an aspect of an embodiment, the system may include processing logic configured to execute instructions that cause the system to perform operations including receiving data originating at the endpoint node from an intermediate device. The data may be associated with metadata associated with the data by the intermediate device. The operations may also include extracting one or more items from the metadata. The operations may include verifying activity of the intermediate device based on the one or more items extracted from the metadata.
[0006] The object and advantages of the embodiments will be realized and achieved at least by the elements, features, and combinations particularly pointed out in the claims.
[0007] It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory but are not restrictive of the invention, as claimed.
[0008] Example embodiments are described and illustrated with additional specificity and detail through the use of the accompanying drawings, all configured in accordance with at least one embodiment described herein. [Brief description of the drawings]
[0009] [Figure 1A] FIG. 1 illustrates an example network architecture in which embodiments of the present disclosure may be implemented. [Figure 1B] FIG. 1 illustrates an example network architecture in which embodiments of the present disclosure may be implemented. [Diagram 2] FIG. 2 illustrates another example network architecture in which embodiments of the present disclosure may be implemented. [Diagram 3] 1 is an exemplary sequence diagram of a process for verifying activity in a network. [Figure 4] 1 is another example sequence diagram of a process for verifying activity in a network. [Diagram 5]1 is a flow diagram of an example method for validation in distributed networking. [Figure 6] FIG. 1 illustrates a diagrammatic representation of a machine in an exemplary form of a computing device capable of executing a set of instructions to cause the machine to perform any one or more of the methods discussed herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] The Internet of Things (IoT) is spreading into every aspect of human life. With over 75 billion IoT devices expected to be deployed by 2025, new, more efficient network infrastructure is needed to bring these devices online and connect them to each other.
[0011] Many connectivity solutions exist for IoT devices. Unfortunately, all suffer from limited bandwidth, poor connectivity, high power consumption, and / or high cost. For example, cellular connections can consume significant power within the device and can be costly. Low-power solutions such as Low-Power Wide-Area Networks (LPWANs) can consume less power than cellular connections. However, LPWANs can be constrained by limited bandwidth and cannot transmit enough data to adequately meet the needs of a distributed network. Conventional systems cannot consume a relatively small amount of power while still achieving high bandwidth.
[0012] Specifically, today, to connect small devices to the Internet, existing solutions include (a) using existing wireless networks, for example by embedding a cellular module with a Subscriber Identity Module (SIM) card or software SIM into the device to give the device cellular connectivity, (b) building a new alternative wireless network by embedding a custom radio chipset and building a fixed infrastructure to support this network, and (c) using long-range network technologies such as LoRa Alliance Technology. LoRa uses a complex "star-of-stars" topology of gateways and bridges between IoT devices and a "central network server" on the Industrial, Scientific and Medical (ISM) spectrum band.
[0013] Each of these approaches has significant drawbacks. For example, each of these approaches requires a significant amount of power, which is often a major factor in battery drain on mobile devices. Moreover, approach (a) requires a costly cellular module and also requires monthly fees to wireless carriers for wireless cellular service, both for service subscription and data. Approaches (b) and (c) are also costly, as they require building new fixed infrastructure and often require purchasing chipsets for wireless transmission in addition to the general Bluetooth chipset. The greater the transmission range, the higher the power requirements, and thus each of these approaches requires significant power. Similarly, cellular and Global Positioning System (GPS)-enabled devices require high power to communicate with cell towers or satellites for longer distances.
[0014] Aspects of the present disclosure address these and other problems with traditional networking by providing a new distributed network. In some aspects, the distributed network can connect a large number of devices using less power while achieving higher connectivity and / or bandwidth. One embodiment includes a crowd-sourced method for sending data from an IoT device to a server without relying on a fixed or centralized infrastructure. Another embodiment includes a crowd-sourced method for a cloud server to send data to an IoT device without relying on a fixed or centralized infrastructure. Another embodiment includes a method for routing data (e.g., beacons and / or data packets) from multiple services on multiple IoT devices to an appropriate device manufacturer server. Yet another embodiment includes a method for reducing energy consumption of a mobile device used to collect or exchange any amount of data with a remote IoT device, which may include two-way communication between the devices.
[0015] In another aspect, storing content locally on the intermediate device can serve the purpose of contacting several IoT devices located in areas lacking infrastructure networks, such as underground or remote locations, and delivering data whenever the intermediate device is within range of the IoT devices using short-range communications such as Bluetooth. Alternatively, the intermediate device can download some data from the IoT devices using short-range communications and store the data in a local cache on the intermediate device, only to deliver the data to the appropriate manufacturer server whenever the intermediate device is again within range of a centralized infrastructure.
[0016] In one aspect, the present disclosure describes systems and techniques for improving existing technology by eliminating the need for separate fixed infrastructure by using crowdsourcing techniques. Some aspects provide a method for IoT device-server communication that has a low power consumption profile and does not require a large fixed hardware infrastructure. Another benefit of the present disclosure is that it can lower the cost of Internet access and create a platform for new innovations in the field of IoT. Another benefit of the present disclosure is that it can improve the reliability of the system's data through verification of every device and every activity of the device in the distributed network.
[0017] The present disclosure may be useful in any field that uses network-based communications. Exemplary parties that may benefit from the present disclosure include, but are not limited to, smartphone manufacturers, bicycle, scooter and ride-sharing companies, outdoor advertisers, environmental analytics companies, etc. Exemplary applications may include uses such as pollution tracking, asset tracking, lost device locating, industrial predictive maintenance, etc. Additionally, aspects of the present disclosure may not rely on connectivity using SIMs or LPWAN modems, allowing devices to be smaller and more efficient.
[0018] For example, in a device and asset location tracking scenario, the lowest cost tracking device manufacturers rely on app users to locate the device and do not have sufficient app density to achieve global coverage. Adding cellular and GPS modules is costly and power consuming. Aspects of the present disclosure can provide a solution that does not require endpoint devices to include cellular or GPS modules, which interoperates globally and lowers costs.
[0019] In one example of low power sensor connectivity, the cost of some sensors is so low that adding cellular or GPS connectivity may cost an order of magnitude more than the cost of the sensor. Aspects of the present disclosure can provide connectivity services at dramatically lower costs.
[0020] Some aspects may also be used for firmware updates, updating date and time on devices, creating a wearable device network, data IP connectivity, measuring population density (such as by detecting the number of Bluetooth devices in a given location), checking the presence of certain devices for insurance companies, detecting trends in sales of certain devices for market analysis firms, hedge funds and private equity firms, etc. In at least one embodiment, storing firmware updates, software or content locally on an intermediate device may serve the purpose of reducing latency, and advantageously the edge of the network may also be used to perform content distribution, software or firmware updates or installations.
[0021] Furthermore, in such systems, without careful planning, bad actors may infiltrate the system and send bad data. This type of behavior may have negative and lasting effects on the distributed network. To combat bad actors in such distributed networks, the present disclosure provides various techniques for verification and validation of activities within the distributed network. In at least one embodiment, rewards may be given for verified activities. In at least one embodiment, penalties may be distributed for activities that may harm the integrity of the distributed network.
[0022] 1A illustrates an example network architecture 100 in which embodiments of the present disclosure may be implemented. The network architecture 100 may include one or more endpoint devices 105, one or more intermediate devices 115, one or more supernodes 125, and one or more destination nodes 135. In some embodiments, the network architecture 100 may be capable of moving data between the one or more endpoint devices 105 and various destination nodes 135 by one or more crowd-sourced intermediate devices 115, which may function as network clients, and one or more supernodes 125.
[0023] The endpoint device 105 may include one or more IoT devices. The endpoint device 105 may include a power source, a data collection device (e.g., a sensor), and a network device. The power source may include a battery or a connection to a power grid. Additionally or alternatively, the power source may include an energy harvesting device such as a solar panel, a solar cell, photovoltaic, electromagnetic, etc. In at least some embodiments, the endpoint device 105 may not include a power source and may instead use ambient backscattering techniques. The endpoint device 105 may also include one or more sensors. The one or more sensors may be configured to detect any type of condition and generate electronic data based on the detected condition.
[0024] For example, the endpoint device 105 may include a smartwatch having a heart rate monitor configured to generate heart rate data using heart rate conditions collected by the heart rate monitor. In at least one embodiment, the endpoint device 105 does not have the capability to communicate over the Internet and only includes hardware and / or software that can communicate with nearby devices, such as the nearby intermediate device 115.
[0025] The network devices of the endpoint devices 105 may include any hardware, software, or combination thereof capable of communicating with another device over a network. In at least one embodiment, the network devices may include any network controller configured to communicate over a short-range network, such as Bluetooth or any other short-range network. In at least one embodiment, the network devices may include any network controller configured to communicate over any network of any range. In at least one embodiment, the network devices may include any network controller configured to communicate over a low-power network. Exemplary endpoint devices 105 include, but are not limited to, industrial devices, residential appliances, commercial equipment, inventory trackers, smart watches, wearables, heart rate monitors, logistics trackers, environmental sensors, cash registers, credit card readers, point-of-sale (POS), bicycles, electric scooters, electric skateboards, automobiles, electric vehicles, satellites, Bluetooth tags, Bluetooth stickers, or any device (mobile and non-mobile) that includes a wireless radio interface. Network architecture 100 may include any number of endpoint devices 105, and the endpoint devices 105 in network architecture 100 may be any type of endpoint device 105, including any type of network-enabled device. The endpoint devices 105 may be fixed or relatively stationary within network architecture 100, such as a POS or pollution sensor. Additionally or alternatively, the endpoint devices 105 may be mobile, such as a smart watch or any automobile or vehicle.
[0026] One or more endpoint devices 105 may be configured to communicate with other devices over at least one wireless network 110. For example, a first endpoint device 105a may electronically communicate with a first intermediate device 115a over the wireless network 110a. The one or more intermediate devices 115 may include any type of device capable of communicating with the endpoint devices 105 over the wireless network 110 and capable of communicating with a supernode 125 over the wireless network 110 and / or the second network 120. In at least one embodiment, the intermediate device 115 may include two network controllers: a first network controller for communicating over the wireless network 110 and a second network controller for communicating over the second network 120. Exemplary intermediate devices 115 include a personal computer (PC), a laptop, a smartphone, a netbook, an e-reader, a personal digital assistant (PDA), a cellular phone, a mobile phone, a tablet, a vehicle, a drone, an automobile, a truck, a wearable device, a router, a television, or a set-top box, etc.
[0027] As shown, a first endpoint device 105a can communicate electronically with a first intermediate device 115a over a wireless network 110a (e.g., a short-range network). Additionally, a second endpoint device 105b can communicate electronically with a second intermediate device 115b over another wireless network 110b (e.g., a low-power network). A third endpoint device 105c can communicate electronically with a third intermediate device 115c over another wireless network 110c. A fourth endpoint device 105d can communicate electronically with a fourth intermediate device 115d over another wireless network 110d.
[0028] In some embodiments, the wireless network 110 may be any network that uses a relatively small amount of power. An exemplary wireless network 110 may include any Bluetooth network type (e.g., Bluetooth Low Energy (BLE), Bluetooth 4.0, Bluetooth 5.0, Bluetooth Long Range), NB-IoT, LTE Direct, LTE-M, LTE M2M, 5G, Wi-Fi, Wi-Fi Aware, data-over-sound, QR-code, or any network. One or more endpoint devices 105 may connect to various intermediate devices 115 using various types of wireless networks 110. For example, a first endpoint device 105a may electronically communicate with a first intermediate device 115a via a first short-range wireless network 110a, and a second endpoint device 105b may electronically communicate with a second intermediate device 115b via a second short-range wireless network 110b.
[0029] The endpoint device 105, the intermediate device 115, or both may be fixed, relatively stationary, or mobile. When the endpoint device 105 and the intermediate device 115 come within wireless range of each other, the endpoint device 105 and the intermediate device 115 may perform a handshake and / or authentication to begin data exchange between the endpoint device 105 and the intermediate device 115.
[0030] In some embodiments, the endpoint device 105 may periodically send data (e.g., beacons and / or data packets) over the wireless network 110. The endpoint device 105 may include various services that may run on the endpoint device 105. For example, a smart watch may include a clock service, a heart rate monitor service, a motion detection service, a music service, etc. A beacon or data packet may be generated for each of these services, or a single beacon or data packet may be generated to include data for some or all of the services.
[0031] The intermediate device 115 can listen for such data from the endpoint device 105. In response to receiving the data, the intermediate device 115 can send the data to the supernode 125 via a network, such as the second network 120. In at least one embodiment, the wireless network 110 and the second network 120 are different types of networks. For example, the wireless network 110 can be a Bluetooth network and the second network 120 can be a cellular network, Wi-Fi, or the Internet. In at least one embodiment, the intermediate device 115 can use a directory to locate the supernode 125. Additionally or alternatively, the intermediate device 115 can identify multiple supernodes 125 and select one of the supernodes 125 to send the data to. The intermediate device 115 can select the supernode 125 based on proximity, latency, or any other factor. The second network 120 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or a wide area network (WAN)), a wired network (e.g., an Ethernet network), a wireless network (e.g., an 802.xx network or a Wi-Fi network), a cellular network (e.g., a Long Term Evolution (LTE) or an LTE Advanced network, 1G, 2G, 3G, 4G, 5G, etc.), a router, a hub, a switch, a server computer, and / or combinations thereof.
[0032] The one or more supernodes 125 may include one or more computing devices, such as a rack mount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, a smartphone, an automobile, a drone, a robot, a vehicle, or any mobility device having an operating system, a data store (e.g., hard disk, memory, database), a network, software components, and / or hardware components.
[0033] One or more supernodes 125 may perform functions related to one or more of data routing, activity validation, storage, and insight management. These specific functions are described in further detail in conjunction with FIG. 2. For example, a supernode 125 may validate activities performed by intermediate devices 115a and 115b. A supernode 125 may validate activities performed by intermediate devices 115c and 115d. In at least one embodiment, any supernode 125 may validate activities of any intermediate device 115.
[0034] The supernode 125 may include or be coupled to a data storage 145. The data storage 145 may include any memory or data storage. In at least one embodiment, the data storage 145 uses the InterPlanetary File System (IPFS). In some embodiments, the data storage 145 may include a computer-readable storage medium for carrying or having stored thereon computer-executable instructions or data structures. A computer-readable storage medium may include any available medium that can be accessed by a general-purpose or special-purpose computer, such as a processor. For example, the data storage 145 may include a computer-readable storage medium, which may be a tangible or non-transitory computer-readable storage medium including random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), compact disk read-only memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid-state memory devices), or any other storage medium that can be used to carry or store desired program code in the form of computer-executable instructions or data structures and that can be accessed by a general-purpose or special-purpose computer. Combinations of the above may be included in the data storage 145. In the illustrated embodiment, the data storage 145 is separate from the supernode 125 and is accessible via the network 130. In some embodiments, the data storage 145 may be part of the supernode 125. In at least one embodiment, the data storage 145 may include multiple data storages. The data storage 145 may include routing data, validation data, storage data, and insight data, as further described in conjunction with FIG. 2.
[0035] One or more supernodes 125 may be configured to receive data from intermediate device 115. One or more supernodes 125 may send the data (or other information related or associated with the received data) to a destination node 135.
[0036] One or more supernodes 125 may send data or other information related to the data to a destination node 135 via a third network 130. The third network 130 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or a wide area network (WAN)), a wired network (e.g., an Ethernet network), a wireless network (e.g., an 802.xx network or a Wi-Fi network), a cellular network (e.g., a Long Term Evolution (LTE) or an LTE Advanced network, 1G, 2G, 3G, 4G, 5G, etc.), a router, a hub, a switch, a server computer, and / or combinations thereof. In at least one embodiment, the second network 120 and the third network 130 are the same network or include at least some overlapping components. In at least one embodiment, the first network 110, the second network 120, and the third network 130 are parts of the same network or include at least some overlapping components.
[0037] The destination node 135 may include one or more computing devices, such as a rack mount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, a smart phone, an automobile, a drone, a robot, or any mobility device having an operating system, a data store (e.g., a hard disk, memory, a database), a network, software components, and / or hardware components. The destination node 135 may be associated with one or more endpoint devices 105. For example, an entity may sell or buy the endpoint device 105 and may use the destination node 135 to communicate with and / or control the endpoint device 105. In at least one embodiment, the destination node 135 and at least one of the endpoint devices 105 are manufactured and / or sold by different entities.
[0038] A destination node 135 may send one or more messages to a particular endpoint device 105 or to a set of endpoint devices 105. For example, a destination node 135 may send updates (e.g., firmware, software) to a particular endpoint device 105 or to a set of endpoint devices 105. A destination node 135 may send other communications to an endpoint device 105, such as responses to requests from beacons generated by a particular endpoint device 105, or any other type of communication.
[0039] In at least one embodiment, one or more supernodes 125 may receive a message from the destination node 135, and in some embodiments, one or more supernodes 125 may send the message from the destination node 135 to the intermediate device 115. In at least some embodiments, the intermediate device 115 may perform one or more operations in response to receiving the message from the destination node 135. The operations may include operations local to the intermediate device 115 and / or sending the message from the destination node 135 to the endpoint device 105.
[0040] Modifications, additions, or omissions may be made to network architecture 100 without departing from the scope of the present disclosure. The present disclosure applies more generally to network architecture 100 that includes one or more endpoint devices 105, one or more wireless networks, one or more intermediate devices 115, one or more second networks 120, one or more supernodes 125, one or more third networks 130, and one or more destination nodes 135, or any combination thereof.
[0041] Additionally, the separation of various components in the embodiments described herein is not meant to indicate that separation occurs in all embodiments, and it will be understood that with the benefit of the present disclosure, the components described may be integrated together into a single component or separated into multiple components.
[0042] 1B illustrates an example network architecture 150 in which embodiments of the present disclosure may be implemented. Network architecture 150 may include the components illustrated and described in FIG. 1A, such as one or more endpoint devices 105, one or more intermediate devices 115, one or more supernodes 125, one or more destination nodes 135, one or more data storages 145, etc.
[0043] In at least one embodiment, one or more supernodes 125 may receive a message from the destination node 135, and in some embodiments, one or more supernodes 125 may send the message from the destination node 135 to the intermediate device 115b. In at least some embodiments, the intermediate device 115b may perform one or more operations in response to receiving the message from the destination node 135. The operations may include an operation local to the intermediate device 115b and / or sending the message from the destination node 135 to another intermediate device 115a. Any number of intermediate devices 115 may be implemented and may be configured in a mesh network. The intermediate device 115a may perform one or more operations in response to receiving the message from the intermediate device 115b, such as an operation local to the intermediate device 115a and / or sending the message from the destination node 135 to the endpoint device 105 via the network 110a.
[0044] The endpoint device 105 may also send a message to the intermediate device 115a. Rather than directly sending the message to the supernode 125 via the network 120, the intermediate device 115a may send the message to any number of intermediate devices 115. As shown, the intermediate device 115a may send the message to the intermediate device 115b, but any number of intermediate devices may be used to route the message ultimately to the supernode 125. In at least one embodiment, the intermediate device 115a may select another intermediate device 115 when that intermediate device 115 is closer to the intermediate device 115a than the supernode 125. Any factor may be used by the intermediate device 115a to determine where to send the message, including the latency between the intermediate device 115a and the supernode 125, the latency between the intermediate device 115a and another intermediate device 115b, etc.
[0045] The supernode 125 can send a message to a destination node 135 over the network 130 .
[0046] 2 illustrates another example network architecture 200 in which embodiments of the present disclosure may be implemented. Network architecture 200 may include components shown and described in FIG. 1A or 1B, such as one or more endpoint devices 105, one or more intermediate devices 115, one or more supernodes 125, one or more destination nodes 135, one or more data storages 145, etc.
[0047] The data storage 145 may include various data that may be used by the supernode 125. For example, the data storage 145 may include routing data that may be used to route data, verification data that may be used to verify the activity of the intermediate devices 115, storage data for storing various data received by the supernode 125, and insight data that may be used to generate information and statistics relating to the system 200 and operations performed within the system 200.
[0048] 2 illustrates a supernode 125 that may perform routing, verification, storage, and insight operations. For example, the supernode 125 may verify the activity of the intermediate device 115. The supernode 125 may include one or more of a routing manager 205, a verification manager 210, a storage manager 215, and / or an insight manager 220.
[0049] The routing manager 205, the validation manager 210, the storage manager 215, and / or the insight manager 220 may each be implemented using hardware including a processor, a microprocessor, an FPGA, or an ASIC (e.g., for performing one or more operations or for controlling the performance of one or more operations). In some other examples, the routing manager 205 may be implemented using a combination of hardware and software. A software implementation may include rapid activation and deactivation of one or more transistors or transistor elements, such as may be included within the hardware of a computing system (e.g., a supernode 125). Furthermore, instructions defined in the software may operate on information within the transistor elements. An implementation of the software instructions may at least temporarily reconfigure electronic pathways and transform computing hardware.
[0050] The routing manager 205 may route data regarding the endpoint devices 105, the intermediate devices 115, and the destination nodes 135. To route the data, the routing manager 205 may track and / or access relationships between the endpoint devices 105, the intermediate devices 115, and the destination nodes 135. For example, the routing manager 205 may access routing data, such as a routing table or list of endpoint devices associated with a particular destination node 135, in the data storage 145.
[0051] The routing manager 205 can handle communications between the endpoint device 105, the intermediate device 115, and the destination node 135. As an example, the routing manager 205 can receive data (e.g., beacons and / or data packets) from the intermediate device 115 via the second network 120. The data can be sent by the endpoint device 105 to the intermediate device via the wireless network 110. The data can include characteristics about the endpoint device 105, including an identifier (e.g., MAC address, unique ID) of the endpoint device 105, a geographic location of the endpoint device 105, advertisements of UUIDs of services supported by the endpoint device 105, etc. The routing manager 205 can identify the characteristics of the endpoint device 105, such as by parsing the data to identify information about the endpoint device 105. The routing manager 205 can access the data storage 145 to identify the endpoint device 105 and / or the destination node 135 associated with the data based on the characteristics of the endpoint device 105 in the data. For example, an identifier for the endpoint device 105 may be associated with a particular manufacturer that operates a particular destination node 135. The routing manager 205 may identify this particular destination node 135 in the data storage 145 and an address and / or route to send the data to reach the destination node 135. In at least some embodiments, the routing manager 205 may send data, a beacon, or a data packet to the destination node 135 via the third network 130. The data may include a beacon, may not include a beacon, or may include a beacon and information about the endpoint device 105.
[0052] In at least one embodiment, the data may include information and / or data from multiple services associated with the endpoint device 105. Additionally or alternatively, multiple beacons or data packets from a single endpoint device 105 may be generated and broadcast over the wireless network 110. For example, each of these multiple beacons or data packets may be associated with a different service associated with the endpoint device 105. The routing manager 205 may identify the service and, based on information about the service, may identify an appropriate destination node 135 that should receive the data.
[0053] The verification manager 210 can verify activities performed in the system 200. Because the supernode 125 is not typically directly connected to the endpoint device 105, the supernode 125 does not necessarily know if the data actually came from the endpoint device 105. Simply trusting the data from the intermediate device, the verification manager 210 can verify that the intermediate device sent the correct actual data from the endpoint device 105. For example, the verification manager 210 can verify that the intermediate device 115 actually processed the data received from the endpoint device 105.
[0054] In at least one embodiment, the verification manager 210 may also attribute rewards to the intermediate device 115 for activities performed within the system 200. For example, the verification manager 210 may allocate cryptocurrency to the intermediate device 115 (or an account associated with the intermediate device 115). To reduce the possibility of rewarding a device that did not actually perform a particular activity, the verification manager 210 may verify the activities purportedly performed by the intermediate device 115 before allocating the reward.
[0055] In at least one embodiment, in response to receiving the data, the intermediate device 115 can send the data along with metadata to the supernode 125. The verification manager 210 can identify the metadata and can use the metadata to verify the activity of the intermediate device 115. The metadata can be, for example, additional information that is added to or sent along with the data to the supernode 125. The metadata may include data regarding the data received from the endpoint device, such as a timestamp of receipt of the data by the intermediate device 115, a timestamp associated with creation of the data (e.g., a beacon and / or data packet) by the endpoint device, a timestamp of transmission of the data by the intermediate device 115 to the supernode 125, a geolocation associated with the data and / or the endpoint device 105 that created or transmitted the data, sensor data associated with the endpoint device, a geolocation associated with the intermediate device 115, the type of network used to communicate the data from the endpoint to the intermediate device 115, the amount of data received by the endpoint device 105, the amount of data sent by the intermediate device 115, the amount of data received by the supernode 125, endpoint device density, intermediate device density, latency, local sensor data from the intermediate device, etc. The metadata may be stored in the data storage 145 as validation data.
[0056] To verify the activity of the intermediate device 115, the verification manager 210 can extract metadata from the communication received by the supernode 125 from the intermediate device 115. For example, the verification manager 210 can extract one or more timestamps associated with the data. The verification manager 210 can extract, for example, a timestamp of receipt of the data by the intermediate device 115, a timestamp associated with creation of the data by the endpoint device, a timestamp of transmission of the data by the intermediate device 115 to the supernode 125, and can also determine a timestamp for when the supernode 125 received the data. The verification manager 210 can compare at least some of these timestamps to ensure that they make sense. For example, the verification manager 210 can check to see if the timestamp sequence matches the expected route of the data. For example, the timestamp of the data creation should precede any other timestamps, and the receipt of the data at the supernode 125 should follow any other timestamps. In at least one embodiment, when the verification manager 210 determines that the timestamps chronologically align with the expected travel path, the verification manager 210 can determine that the intermediate device 115 did in fact receive data from the endpoint device 105. The verification manager 210 can then attribute a reward to the intermediate device 115 for performing such activity.
[0057] In at least one embodiment, the verification manager 210 can verify the activity of the intermediate device 115 using two or more timestamps. The verification manager 210 can identify a timestamp associated with data received from the intermediate device 115. To verify the activity, the verification manager 210 can identify different dates with different timestamps. For example, the verification manager 210 can identify different data from the intermediate device 115. Additionally or alternatively, the verification manager 210 can identify different data from different intermediate devices 115 within a given geographic region. The verification manager 210 can compare the different timestamp to a timestamp associated with the data. The verification manager 210 can determine that the different timestamp and the timestamp associated with the data are within a similarity threshold. For example, the verification manager 210 can determine that a timestamp time sequence for the different timestamp and the timestamp associated with the data matches an expected route and timing of the data. The verification manager 210 can verify the activity of the intermediate device based on a determination that the extracted timestamp and the timestamp associated with the data are within a similarity threshold.
[0058] There are countless other verification schemes. For example, the verification manager 210 can use any or all of the metadata, or any combination, as part of the verification. The verification manager 210 can determine, for example, via metadata, that the endpoint device 105 sent data to the intermediate device 115 using a close-range network. Then, upon knowing this, the verification manager 210 can compare the geolocations of the endpoint device 105 and the intermediate device 115 for similarity because close-range communication was used between the endpoint device 105 and the intermediate device 115. In response to determining that the geolocation of the endpoint device 105 and the geolocation of the intermediate device 115 are within a threshold range, the verification manager 210 can determine that the intermediate device 115 did in fact receive data from the endpoint device 105.
[0059] In at least one embodiment, validation may be performed using metadata from multiple intermediate devices 115. In at least one embodiment, validation manager 210 on multiple intermediate devices 115 may function as a cluster of validation nodes. For example, multiple intermediate devices 115 in close proximity to each other (e.g., in the same room, the same building, nearby outdoors, etc.) may receive similar information from multiple connected devices. In at least one embodiment, multiple intermediate devices 115 may each receive a similar set of data from nearby endpoint devices 105. Because multiple intermediate devices 115 are not in exactly the same location, multiple intermediate devices 115 may not receive exactly the same data from each other, but may receive at least some of the same data (e.g., beacons, data packets). To validate a particular activity of a particular intermediate device 115, validation manager 210 may query validation data in data storage 145 to determine whether any other received metadata is similar to the metadata associated with the particular intermediate device 115. For example, the verification manager 210 may identify a geolocation of a particular intermediate device 115 and may search the verification data in the data storage 145 for a similar geolocation. In response to identifying a similar geolocation associated with a second intermediate device, the verification manager 210 may examine any data associated with the second intermediate device to determine similarity to the data associated with the particular intermediate device 115. For example, the verification manager 210 may determine that data received from the particular intermediate device 115 included a payload. The verification manager 210 may determine whether the second intermediate device also sent a payload to the supernode 125. In response to determining that the second intermediate device also sent a payload to the supernode 125, the verification manager 210 may verify the activity of the particular intermediate device 115.
[0060] Similar to the above examples, instead of or in addition to comparing payloads, verification manager 210 can determine whether the second intermediate device received two or more beacons or data packets that were also received by the particular intermediate device 115 as part of the verification. In response to determining that the second intermediate device received two or more beacons or data packets that were also received by the particular intermediate device 115, verification manager 210 can verify the activity of the particular intermediate device 115.
[0061] Similar to the above example, verification manager 210 can determine whether two or more intermediate devices received data (or more than one of the same beacon or data packets) that was also received by a particular intermediate device 115 as part of the verification. In response to determining that two or more intermediate devices received data (or more than one of the same beacon or data packets) that was also received by a particular intermediate device 115, verification manager 210 can verify the activity of the particular intermediate device 115.
[0062] Additionally, the verification manager 210 may check for data completeness for similarly located intermediate devices. For example, the verification manager 210 may determine that a set of intermediate devices send generally similar data to the supernode 125, and that an outlier intermediate device (having a geolocation that is a similar geolocation to the set of intermediate devices) sends incomplete data to the supernode 125 as compared to the data received by the supernode 125 by the set of intermediate devices.
[0063] In at least one embodiment, to verify an activity, the verification manager 210 can inspect the payload and compare it to other received payloads. In response to determining that the payload has been received more than a threshold number of times, the verification manager 210 can decline to verify the activity because the sending intermediate device 115 may be sending inaccurate data in an attempt to fraudulently receive a reward.
[0064] Additionally, the verification manager 210 can compare the types of endpoint devices as part of the verification. For example, the supernode 125 can receive data from a plurality of intermediate devices indicating that the plurality of intermediate devices communicate with a sensor, a television, a set-top box, a connected skateboard, a smart watch, and a laptop. An outlier intermediate device in a similar geolocation to the plurality of intermediate devices indicates communication with the sensor, the television, the set-top box, the connected skateboard, the smart watch, and the laptop, but the outlier intermediate device also indicates communication (such as by forwarding beacons or data packets) from additional devices. In response to determining that the plurality of intermediate devices each communicate with similar devices and that the outlier intermediate device also communicates with additional devices, the verification manager 210 can determine that the outlier intermediate device is not sending true and accurate data to the supernode 125. In response, the verification manager 210 may refrain from rewarding the outlier intermediate device, even for genuine beacons or data packets, because it would appear that the outlier intermediate device is attempting to trick the verification manager 210 into rewarding it for activities not actually performed by the outlier intermediate device. In at least one embodiment, the verification manager 210 may also cause the outlier intermediate device to disconnect from the system 200. For example, the verification manager 210 may add the outlier intermediate device (or an identifier for the outlier intermediate device) to a blacklist. The blacklist may be used by the supernode 125 or any other component of the system 200 to refuse or block communication with the outlier intermediate device.
[0065] In at least one embodiment, multiple verification managers 210 may be used to verify activities based on agreement between the multiple verification managers 210. In at least one embodiment, the multiple verification managers 210 may have 100% agreement for verification. Alternatively, the multiple verification managers 210 may have less than 100% agreement for verification, provided that the agreement is above a threshold agreement amount.
[0066] Additionally or alternatively, the verification manager 210 can use data mining, deep learning, artificial intelligence, cryptographic signatures to achieve a more robust verification scheme and determine if the data is valid. For example, data mining can be used to estimate the expected route of a single IoT device 105 or intermediate device 115 to automatically calculate a confidence score regarding the trustworthiness of the intermediate device by measuring the deviation between the received metadata sent by the intermediate device and the expected path.
[0067] In response to successfully verifying an activity, the verification manager 210 may attribute a reward for the activity to the intermediate device 115 or to an account associated with the intermediate device 115. Exemplary rewards may include cryptocurrency, titles, status, upgrades, credits, etc.
[0068] Rewards may be different for different activities. Different data may have different values. For example, relaying relatively small data may be associated with a smaller reward than a larger reward for relaying relatively large data. Additionally or alternatively, an entity may adjust rewards for certain types of activities. For example, a particular entity may want to collect data in a very dense area and at a particular time (e.g., at a sports match). The entity may assign a bounty for verified data received from near the area and during the particular time. The verification manager 210 may attribute this bounty to activities that meet the bounty criteria set by the entity. In at least one embodiment, data collected in a first area may have a different (e.g., higher or lower) value than data collected in a second area.
[0069] In at least one embodiment, the supernode 125 may receive the same data from two different intermediate nodes, and the verification manager 210 may verify the activity of both the different intermediate nodes. The verification manager 210 may split or share the reward between the two different intermediate nodes in some embodiments where the reward is a capped maximum reward. The split or share may be equal or unequal. In an unequal split or share, the verification manager 210 may take any of the metadata into account. For example, the verification manager 210 may determine a first latency associated with a first intermediate node in relaying the data and a second latency associated with a second intermediate node in relaying the data. The verification manager 210 may split the reward based on the latency. Any other metadata or any other data may be used to split or share the reward between any number of different intermediate nodes. Additionally or alternatively, the verification manager 210 may select one of the two different intermediate nodes to receive the entire reward. Similarly, validation manager 210 may use any data to select one of two different intermediate nodes to receive the entire reward. Similar to the above example, validation manager 210 may select a first intermediate node when a first latency associated with the first intermediate node in relaying data is less (e.g., faster) than a second latency associated with the second intermediate node.
[0070] In at least one embodiment, such as an environment including a mesh network, a single intermediate device 115 may not relay data to the supernode 125 on its own. Instead, multiple intermediate devices 115 may relay data through the mesh network until the egress intermediate device sends the data to the supernode 125. For example, a reward may be split between each of the intermediate devices that helped relay the data to the supernode 125. In at least one embodiment, the egress intermediate device may be awarded a larger portion of the reward for its role as the egress intermediate device. In at least one embodiment, the egress intermediate device may be awarded the entire reward for its role as the egress intermediate device.
[0071] The validation manager 210 can create records of activities and contributions, both individually and in aggregate. For example, the validation manager 210 can create records of activities and contributions associated with a particular user account (which may be associated with multiple intermediate devices). In at least one embodiment, the validation manager 210 can create records of activities and contributions in a hash tree data structure and store the hashes in data storage 145 (e.g., IPFS). In at least one embodiment, the validation manager 210 can write the hash or a portion of the hash to a cryptocurrency transaction and / or to the blockchain.
[0072] In at least one embodiment, data received from an intermediate device may not be sent to the destination node 135. The storage manager 215 may store and index the data for later retrieval for verification or other purposes.
[0073] The insight manager 220 can generate various statistics and reports based on all the data that reaches the supernode 125. For example, the insight manager 220 can identify how many activities are validated by a particular validation manager 210.
[0074] Network architecture 100 can be used to exchange any amount of data between any devices capable of network-based communication in a manner other than traditional communication over the Internet.
[0075] As an example, the network architecture 100 can leverage existing smartphone infrastructure to create a connectivity alternative to traditional Internet communications. In at least one embodiment, the network architecture 100 can initially move data to the cloud in a delay-tolerant manner, which can be useful for many types of IoT communications, such as firmware updates, status updates, log file storage, micropayments, etc. The intermediate devices can include software running on smartphones to periodically scan for other devices (e.g., endpoint devices 105), such as industrial devices, smart watches, wearables, logistics trackers, and environmental sensors. These endpoint devices 105 can connect with software clients running on the smartphones to create a large area-wide network for moving data to and within the cloud. The present disclosure can be used to validate communications over this new network.
[0076] Further, it is estimated that 95% of the population is covered by some type of cellular service. The network architecture 100 can be deployed anywhere in the world, allowing areas with low connectivity to improve connectivity. Furthermore, the network architecture 100 can achieve coverage beyond the range of traditional cellular networks, for example, by using software running on a Bluetooth-enabled smartphone. A user may travel to an area with limited or no cellular connectivity, yet still receive data from the endpoint device 105 via the wireless network 110. Using the network architecture 100, for example, a telephone company operator can now easily deploy software updates to the telephone company's user devices to begin communicating with the endpoint device 105 as described herein, achieving higher latency IoT connectivity even to the most remote areas of the world.
[0077] In a particular example, the network architecture 100 can be used for asset tracking and management. For example, the network architecture 100 can be used to find lost items configured as endpoint devices 105, such as skateboards with wireless radio chipsets, attached tracking beacons, Bluetooth tags or stickers, laptops, etc. For example, a user can indicate that an item is missing, such as by using a mobile application or website to indicate to a destination node 135 or a supernode 125 that the item is missing. In a first embodiment, the destination node 135 can send a message to one or more supernodes 125 to note the lost item. The supernode 125 can add an identifier of the lost item to a lost item watchlist. When the intermediate device 115 moves to different geographic locations, the intermediate device 115 can receive data from different endpoint devices 105. The intermediate device 115 then forwards the data to the supernode 125. When the supernode 125 server receives the data, the supernode 125 can analyze the data to verify whether the data originated at an endpoint device 105 that is on the watchlist. When the supernode 125 identifies data that originated at an endpoint device 105 that is on the watch list, the supernode 125 can notify the destination node 135 that the lost item has been found. In at least some embodiments, the supernode 125 can send the notification that the lost item has been found as a push or pull notification (i.e., in response to a request from the destination node 135). In at least some embodiments, the supernode 125 can send the notification that the lost item has been found to a user device that was used by the user to indicate that the item was lost.
[0078] Modifications, additions, or omissions may be made to network architecture 200 without departing from the scope of the present disclosure. The present disclosure applies more generally to network architecture 200 that includes one or more endpoint devices 105, one or more wireless networks, one or more intermediate devices 115, one or more second networks 120, one or more supernodes 125, one or more third networks 130, and one or more destination nodes 135, or any combination thereof.
[0079] Furthermore, the separation of various components in the embodiments described herein is not meant to indicate that the separation occurs in all embodiments. Moreover, it can be understood with the benefit of this disclosure that the components described can be integrated together into a single component or separated into multiple components. The reverse can also be true. For example, as shown in FIG. 2, the routing manager 205, the verification manager 210, the storage manager 215, and the insight manager 220 are all part of a single supernode 125. However, the supernode 125 can include all or less than all of these managers. For example, a supernode 125 dedicated to routing can include only the routing manager. Similarly, a supernode 125 dedicated to verification can include only the verification manager 210. In such an example, the various managers can still communicate with each other over a network or the like. Furthermore, any of the routing manager 205, the verification manager 210, the storage manager 215, and the insight manager 220 can be part of any device or can run on any device. For example, the intermediate device 115 can also include the verification manager 210, which can verify the activity of the intermediate device 115 as well as other intermediate devices. In such an embodiment, the verification manager 210 may be physically or logically separated from other parts of the intermediate device 115 so as to preserve the integrity of the verification manager 210 .
[0080] 3 illustrates an example sequence diagram 300 of a process for verifying activity in a network. Sequence diagram 300 may include components shown and described in FIGS. 1 and 2, such as one or more endpoint devices 105, one or more intermediate devices 115, one or more supernodes 125, and one or more destination nodes 135.
[0081] At 305, the endpoint device 105 may generate data (e.g., a beacon, a data packet). At 310, the endpoint device 105 may broadcast the data. The intermediate device 115 may be listening for the data, and at 310, the intermediate device 115 may receive the data.
[0082] At 315, the intermediate device 115 can add metadata to the packet. For example, the metadata can include any of the metadata described herein, including a device identifier. In at least one embodiment, the device identifier can be anonymized, such as by using homomorphic encryption. As an example, the true identity of the intermediate device can be stored in a container that is only accessible with a key. Externally, the anonymized identifier can be used for the device. At 320, the intermediate device 115 can send the data along with the metadata to the supernode 125.
[0083] At 325, the supernode 125 can verify the activity of the intermediate device based on the metadata. For example, the supernode 125 can confirm or verify that the intermediate device 115 actually received (or most likely received) the data from the endpoint device 105. At 330, the supernode 125 can reward the intermediate device 115 (or an account associated with the intermediate device 115) for the verified activity. At 335, optionally, the supernode 125 can send the data to the destination node 135.
[0084] 4 illustrates another example sequence diagram 400 of a process for verifying activity in a network. Sequence diagram 400 may include components shown and described in FIGS. 1 and 2, such as one or more endpoint devices 105, one or more intermediate devices 115, one or more supernodes 125, and one or more destination nodes 135.
[0085] At 405, the destination node 135 may generate a message. The message may include any message, such as a response to receiving the data. For example, the destination node 135 may generate a response message for the data. The response message may include a message for one or more of a supernode 125, an intermediate device 115, an endpoint device 105 that generated the data, or another endpoint device 105 that did not generate the data. At 410, the destination node 135 may send the response message to the same supernode 125 that sent the data to the destination node 135, or to a different supernode 125 that did not send the data to the destination node 135.
[0086] The supernode 125 may receive a response message regarding the data from the destination node 135. The supernode 125 may process the response message, such as by performing an action at the supernode 125, sending the data to the intermediate device 115 at 415, etc.
[0087] At 420, the intermediate device 115 may send a message to the endpoint 420. At 425, the intermediate device 115 may send an action notification to the supernode 125 to inform the supernode 125 that the intermediate device 115 has performed the action of sending a message to the endpoint device 105.
[0088] At 430, the supernode 125 may verify the activity of the intermediate device based on the activity notification. For example, the supernode 125 may confirm or verify that the intermediate device 115 did in fact receive (or most likely received) data from the endpoint device 105. At 435, the supernode 125 may reward the intermediate device 115 (or an account associated with the intermediate device 115) for the verified activity.
[0089] FIG. 5 illustrates a flow diagram of an exemplary method 500 for validation within a distributed network. The method may be implemented by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (as executed on a general-purpose computer system or dedicated machine), or both, and may be included in the intermediate device 115 and / or supernode 125 of FIG. 1, 2, 3, or 4, or another computer system or device. However, another system or combination of systems may be used to implement the method. For ease of explanation, the methods described herein are illustrated and described as a series of acts. However, acts according to the present disclosure may occur in various orders and / or simultaneously, and with other acts not presented and described herein. Furthermore, not all acts illustrated may be used to implement a method in accordance with the disclosed subject matter. Furthermore, those skilled in the art will understand and appreciate that a method may alternatively be represented as a series of interrelated states by state diagrams and events. Furthermore, the methods disclosed herein may be stored on an article of manufacture, such as a non-transitory computer-readable medium, to facilitate transporting and transferring such methods to a computing device. As used herein, the term article of manufacture is intended to encompass a computer program accessible from any computer-readable device or storage medium. Although illustrated as separate blocks, various blocks may be divided into additional blocks, combined into fewer blocks, or removed, depending on the desired implementation.
[0090] 5 illustrates a flow diagram of an example method 500 for verifying the performance of an activity in a distributed network. For example, the example method 500 may be implemented to handle communications processed by an intermediate device (e.g., intermediate device 115 of FIG. 1A or FIG. 1B).
[0091] Method 500 may begin at block 505, where processing logic may receive data from an intermediate device over a first network. The first intermediate device may include, for example, intermediate device 115a of FIG. 1A or FIG. 1B. The data may have been received by the first intermediate device from an endpoint device (e.g., endpoint device 105a of FIG. 1A or FIG. 1B) over a second network (e.g., wireless network 110a of FIG. 1A or FIG. 1B). In at least some embodiments, the first network is a longer range network or a higher power network compared to the second network. The data may be associated with metadata associated with the data by the intermediate device.
[0092] At block 510, processing logic may extract one or more items from the metadata, which may include identifying characteristics of the data. For example, the data may include data indicative of a geographic location of the endpoint device and an identifier for the endpoint device. Identifying characteristics of the data may include scanning the data to identify data indicative of the geographic location of the endpoint device and an identifier for the endpoint device.
[0093] At block 515, the processing logic may verify the activity of the intermediate device based on the extracted one or more items. In at least one embodiment, the extracted one or more items may include at least one geolocation associated with the data or the intermediate device. In at least one embodiment, verifying the activity of the intermediate device based on the extracted one or more items may include comparing a geolocation associated with the data or the intermediate device to an expected geolocation for the data. In at least one embodiment, verifying the activity of the intermediate device based on the extracted one or more items may include verifying the activity of the intermediate device in response to determining that a geolocation associated with the data or the intermediate device and an expected geolocation for the data are within a threshold geographic distance. In at least one embodiment, verifying the activity of the intermediate device based on the extracted one or more items may include refraining from verifying the activity of the intermediate device in response to determining that a geolocation associated with the data or the intermediate device and an expected geolocation for the data are outside a threshold geographic distance. In at least one embodiment, refraining from verifying activity of the intermediate device may include penalizing the intermediate device in response to a geolocation associated with the data or the intermediate device and an expected geolocation for the data being outside a threshold geographic distance.
[0094] In at least one embodiment, the extracted one or more items may include a geolocation of the intermediate device. In at least one embodiment, verifying the activity of the intermediate device based on the extracted one or more items includes identifying a set of intermediate devices based on the geolocation of the intermediate device. Verifying the activity of the intermediate device may also include identifying a set of data collected by the set of intermediate devices. Verifying the activity of the intermediate device may further include comparing the extracted one or more items to the set of data collected by the set of intermediate devices. Verifying the activity of the intermediate device may also include determining that the extracted one or more items and the set of data collected by the set of intermediate devices are within a similarity threshold. Verifying the activity of the intermediate device may include verifying the activity of the intermediate device based on a determination that the extracted one or more items and the set of data collected by the set of intermediate devices are within a similarity threshold.
[0095] At block 520, processing logic may create and store a record of the verified activity with reference to an account associated with the intermediate device. In at least one embodiment, creating and storing a record of the verified activity with reference to an account associated with the intermediate device may include appending the verified activity to an existing record of past verified activity associated with the account. In at least one embodiment, creating and storing a record of the verified activity with reference to an account associated with the intermediate device may include creating a summary of each activity in the record, generating a hash of the summary, and storing the hash in a distributed data storage system.
[0096] At block 525, processing logic may identify a reward for the verified activity based at least in part on the one or more items from the metadata. At block 530, processing logic may allocate the reward to an account associated with the intermediate device. In at least one embodiment, allocating the reward to an account associated with the intermediate device may include selecting the intermediate device from among the multiple intermediate devices based on the extracted one or more items.
[0097] FIG. 6 shows a diagrammatic representation of a machine in an exemplary form of a computing device 600 capable of executing a set of instructions to cause the machine to perform any one or more of the methodologies discussed herein. The computing device 600 may include a mobile phone, a smart phone, a netbook computer, a rack-mounted server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, or any computing device having at least one processor, etc., capable of executing a set of instructions to cause the machine to perform any one or more of the methodologies discussed herein. In alternative embodiments, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server machine in a client-server network environment. The machine may include a personal computer (PC), a set-top box (STB), a server, a network router, a switch, or a bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by the machine. Additionally, although only a single machine is shown, the term "machine" can also include any collection of machines that individually or together execute a set (or sets) of instructions to perform any one or more of the methodologies discussed herein.
[0098] The exemplary computing device 600 includes a processing device (e.g., a processor) 602, a main memory 604 (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), a static memory 606 (e.g., flash memory, static random access memory (SRAM)), and a data storage device 616, which communicate with each other via a bus 608.
[0099] The processing device 602 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, etc. More specifically, the processing device 602 may include a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor implementing other instruction sets or a combination of instruction sets. The processing device 602 may also include one or more special-purpose processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, etc. The processing device 602 is configured to execute instructions 626 to perform the operations and steps discussed herein.
[0100] Computing device 600 may further include a network interface device 622 capable of communicating with a network 618. Computing device 600 may also include a display device 610 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 612 (e.g., a keyboard), a cursor control device 614 (e.g., a mouse), and a signal generation device 620 (e.g., a speaker). In at least one embodiment, the display device 610, the alphanumeric input device 612, and the cursor control device 614 may be combined into a single component or device (e.g., an LCD touch screen).
[0101] The data storage device 616 may include a computer readable storage medium 624 on which one or more sets of instructions 626 for implementing any one or more of the methods or functions described herein are stored. The instructions 626 may also reside, completely or at least partially, within the main memory 604 and / or the processing device 602 during execution of the instructions 626 by the computing device 600, with the main memory 604 and the processing device 602 also constituting computer readable media. Instructions may further be transmitted or received over the network 618 via the network interface device 622.
[0102] Although the exemplary embodiment shows the computer-readable storage medium 624 to be a single medium, the term "computer-readable storage medium" can include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) that store one or more sets of instructions. The term "computer-readable storage medium" can also include any medium that can store, encode, or carry a set of instructions for execution by a machine and cause the machine to perform any one or more of the methods of the present disclosure. Thus, the term "computer-readable storage medium" can be understood to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0103] The terms used in this specification, and particularly in the appended claims (e.g., the body of the appended claims), are generally intended to be "open" terms (e.g., the term "including" can be interpreted as "including, but not limited to," the term "having" can be interpreted as "having at least," the term "includes" can be interpreted as "includes, but is not limited to," etc.).
[0104] Furthermore, where a particular number of introduced claim recitations is intended, such intent is expressly recited in the claim, and where there is no such recitation, no such intent exists. For example, as an aid to understanding, the following appended claims may include the use of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases cannot be interpreted to suggest that the introduction of a claim recitation with the indefinite article "a" or "an" limits any particular claim that includes such an introduced claim recitation to embodiments that include only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and an indefinite article such as "a" or "an" (e.g., "a" and / or "an" can be interpreted to mean "at least one" or "one or more"), and the same is true for the use of definite articles used to introduce claim recitations.
[0105] Moreover, even when a particular number of introduced claim recitations are explicitly recited, one of ordinary skill in the art will appreciate that such recitations can be interpreted to mean at least the number recited (e.g., a plain recitation of "two recitations" without other qualification means at least two recitations, i.e., two or more recitations). Furthermore, when a convention similar to "at least one of A, B, and C, etc." or "one or more of A, B, and C, etc." is used, generally such a construction is intended to include A only, B only, C only, A and B, A and C, B and C, or A, B, and C, etc. For example, use of the term "and / or" is intended to be interpreted in this manner.
[0106] Additionally, any disjunction or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, can be understood to contemplate the possibility of including one of the terms, either one of the terms, or both terms. For example, the phrase "A or B" can be understood to include the possibilities of "A" or "B" or "A and B."
[0107] The embodiments described herein can be implemented using computer-readable media for carrying or having stored thereon computer-executable instructions or data structures. Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computer. By way of example, and not limitation, such computer-readable media can include non-transitory computer-readable storage media including random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), compact disk read-only memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid-state memory devices), or any other storage medium that can be used to carry or store desired program code in the form of computer-executable instructions or data structures and that can be accessed by a general-purpose or special-purpose computer. Combinations of the above can also be included within the scope of computer-readable media.
[0108] Computer-executable instructions may include, for example, instructions and data that cause a general purpose computer, a special purpose computer, or a special purpose processing device (e.g., one or more processors) to perform a certain function or group of functions. Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
[0109] As used herein, the term "module" or "component" may refer to a specific hardware implementation configured to perform the operations of the module or component, and / or a software object or software routine that may be stored and / or executed by general-purpose hardware (e.g., computer-readable media, processing devices, etc.) of a computing system. In some embodiments, the various components, modules, engines, and services described herein may be implemented as objects or processes that run (e.g., as separate threads) on a computing system. Although some of the systems and methods described herein are generally described as being implemented in software (stored and / or executed on general-purpose hardware), specific hardware implementations, or combinations of software and specific hardware implementations, are also possible and contemplated. In this description, a "computing entity" may be any computing system defined herein above, or any module or combination of modules running on a computing system.
[0110] All examples and conditional language recited in this specification are for educational purposes to help the reader understand the invention and concepts provided by the inventor to advance the art, and should be interpreted without being limited to such specifically recited examples and conditions. Although the embodiments of the present disclosure have been described in detail, it can be understood that various changes, substitutions and alterations can be made to the specification without departing from the spirit and scope of the present disclosure.
Claims
1. receiving data originating at an endpoint node from an intermediate device, said data being associated with metadata associated with said data by said intermediate device; extracting one or more items from the metadata; verifying the activity of the intermediate device based on the extracted one or more items; creating and storing a record of the verified activity by referencing an account associated with the intermediate device; determining a reward for the verified activity based at least in part on the one or more items from the metadata; allocating the reward to the account associated with the intermediate device; Including, creating and storing the record of the verified activity with reference to the account associated with the intermediate device includes appending the verified activity to an existing record of past verified activity using a blockchain. method.
2. the extracted one or more items include at least one geolocation associated with the data or the intermediate device; the step of verifying the activity of the intermediate device based on the extracted one or more items, comparing the geolocation associated with the data or the intermediate device to an expected geolocation for the data; verifying the activity of the intermediate device in response to a determination that the geolocation associated with the data or the intermediate device and the expected geolocation for the data are within a threshold geographic distance; and refraining from verifying the activity of the intermediate device in response to a determination that the geolocation associated with the data or the intermediate device and the expected geolocation for the data are outside a threshold geographic distance; The method of claim 1 , comprising:
3. 3. The method of claim 2, wherein refraining from verifying the activity of the intermediate device comprises penalizing the intermediate device in response to the geolocation associated with the data or the intermediate device and the expected geolocation for the data being outside a threshold geographic distance.
4. the extracted one or more items include a geolocation of the intermediate device, and the step of verifying the activity of the intermediate device based on the extracted one or more items comprises: identifying a set of intermediate devices based on the geolocation of the intermediate devices; identifying a set of data collected by said set of intermediate devices; comparing the extracted one or more items with the set of data collected by the set of intermediate devices; determining that the extracted one or more items and the set of data collected by the set of intermediate devices are within a similarity threshold; and verifying the activity of the intermediate device based on a determination that the extracted one or more items and the set of data collected by the set of intermediate devices are within the similarity threshold; The method of claim 1 , comprising:
5. The method of claim 1 , wherein an existing record of the past verified activity is associated with the account.
6. creating and storing the record of the verified activity with reference to the account associated with the intermediate device; preparing a summary of each activity in said record; generating a hash of the summary; and storing the hash in a distributed data storage system; The method of claim 4 further comprising:
7. 2. The method of claim 1, wherein the step of allocating the reward to the account associated with the intermediate device includes selecting the intermediate device from among a plurality of intermediate devices based on the extracted one or more items.
8. A non-transitory machine-readable storage medium comprising a plurality of machine-readable instructions, the instructions comprising: receiving data originating at an endpoint node from an intermediate device, the data being associated with metadata associated with the data by the intermediate device; extracting one or more items from the metadata; verifying the activity of the intermediate device based on the extracted one or more items; creating and storing a record of the verified activity with reference to an account associated with the intermediate device, the creating and storing including appending the verified activity to an existing record of past verified activity using a blockchain; determining a reward for the verified activity based at least in part on the one or more items from the metadata; and allocating the reward to the account associated with the intermediate device; 16. A non-transitory machine-readable storage medium executable to perform operations including:
9. the extracted one or more items include at least one geolocation associated with the data or the intermediate device; verifying the activity of the intermediate device based on the extracted one or more items; comparing the geolocation associated with the data or the intermediate device to an expected geolocation for the data; verifying the activity of the intermediate device in response to determining that the geolocation associated with the data or the intermediate device and the expected geolocation for the data are within a threshold geographic distance; and refraining from verifying the activity of the intermediate device in response to determining that the geolocation associated with the data or the intermediate device and the expected geolocation for the data are outside a threshold geographic distance; 9. The non-transitory machine-readable storage medium of claim 8, comprising:
10. 10. The non-transitory machine-readable storage medium of claim 9, wherein refraining from verifying the activity of the intermediate device comprises penalizing the intermediate device in response to the geolocation associated with the data or the intermediate device and the expected geolocation for the data being outside a threshold geographic distance.
11. the extracted one or more items include a geolocation of the intermediate device; verifying the activity of the intermediate device based on the extracted one or more items; identifying a set of intermediate devices based on the geolocation of the intermediate devices; identifying a set of data collected by said set of intermediate devices; comparing the extracted one or more items with the set of data collected by the set of intermediate devices; determining that the extracted one or more items and the set of data collected by the set of intermediate devices are within a similarity threshold; and verifying the activity of the intermediate device based on a determination that the extracted one or more items and the set of data collected by the set of intermediate devices are within the similarity threshold; 9. The non-transitory machine-readable storage medium of claim 8, comprising:
12. The non-transitory machine-readable storage medium of claim 8 , wherein an existing record of the past verified activity is associated with the account.
13. creating and storing the record of the verified activity by referencing the account associated with the intermediate device; preparing a summary of each activity in said record; generating a hash of the summary; and storing the hash in a distributed data storage system; 13. The non-transitory machine-readable storage medium of claim 12, further comprising:
14. 10. The non-transitory machine-readable storage medium of claim 8, wherein allocating the reward to the account associated with the intermediate device includes selecting the intermediate device from among a plurality of intermediate devices based on the extracted one or more items.
15. 1. A system comprising: Memory, one or more processors operably coupled to the memory, receiving data originating at an endpoint node from an intermediate device, the data being associated with metadata associated with the data by the intermediate device; extracting one or more items from the metadata; verifying the activity of the intermediate device based on the extracted one or more items; creating and storing a record of the verified activity with reference to an account associated with the intermediate device, the creating and storing including appending the verified activity to an existing record of past verified activity using a blockchain; determining a reward for the verified activity based at least in part on the one or more items from the metadata; and allocating the reward to the account associated with the intermediate device; one or more processors configured to execute operations to cause the system to perform operations including: A system comprising:
16. the extracted one or more items include at least one geolocation associated with the data or the intermediate device; verifying the activity of the intermediate device based on the extracted one or more items; comparing the geolocation associated with the data or the intermediate device to an expected geolocation for the data; verifying the activity of the intermediate device in response to determining that the geolocation associated with the data or the intermediate device and the expected geolocation for the data are within a threshold geographic distance; and refraining from verifying the activity of the intermediate device in response to determining that the geolocation associated with the data or the intermediate device and the expected geolocation for the data are outside a threshold geographic distance; The system of claim 15 , comprising:
17. 17. The system of claim 16, wherein refraining from verifying the activity of the intermediate device comprises penalizing the intermediate device in response to the geolocation associated with the data or the intermediate device and the expected geolocation for the data being outside a threshold geographic distance.
18. the extracted one or more items include a timestamp associated with the data; verifying the activity of the intermediate device based on the extracted one or more items; identifying a plurality of timestamps associated with a plurality of timestamps associated with a set of data; comparing the extracted timestamp with the timestamp associated with the data; determining that the extracted timestamp and the timestamp associated with the data are within a similarity threshold; and verifying the activity of the intermediate device based on the determination that the extracted timestamp and the timestamp associated with the data are within the similarity threshold; The system of claim 15 , comprising:
19. The system of claim 15 , wherein an existing record of the past verified activity is associated with the account.
20. creating and storing the record of the verified activity by referencing the account associated with the intermediate device; preparing a summary of each activity in said record; generating a hash of the summary; and storing the hash in a distributed data storage system; 20. The system of claim 19, further comprising:
Citation Information
Patent Citations
Positional information verification device, repeating device, mobile device, positional information verification program, repeating program and mobile program
JP2015220515A
Peer-to-Peer Relay of Discovery Information
JP2017523630A
JPP7359372B
Relay terminal, base station, charging server, communication system, charging method, program computer data signal, and storage medium
WO2003032617A1