US20170031676A1 - Blockchain computer data distribution - Google Patents
Blockchain computer data distribution Download PDFInfo
- Publication number
- US20170031676A1 US20170031676A1 US15/219,261 US201615219261A US2017031676A1 US 20170031676 A1 US20170031676 A1 US 20170031676A1 US 201615219261 A US201615219261 A US 201615219261A US 2017031676 A1 US2017031676 A1 US 2017031676A1
- Authority
- US
- United States
- Prior art keywords
- blockchain
- subb
- payload
- devices
- block
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Definitions
- the disclosed subject matter relates to distribution of computer information and, more particularly, to distribution of computer code, data, or commands via a blockchain mechanism.
- information can be stored electronically in data stores.
- a data store is to store computer programming code or source code electronically.
- computer commands or data can be stored electronically on a data store, e.g., a network server, data repository, etc.
- Computers can then receive stored data from the data store and can perform operations based, at least in part, on the received data.
- the information can comprise computer code, commands, or data.
- the information can comprise computer code to enable patching or updating of software on a device, such as but not limited to, updating firmware, patching software, initiating a state change for a state of a device, distribution of data, etc.
- FIG. 1 is an illustration of a system that facilitates computer data distribution via a blockchain in accordance with aspects of the subject disclosure.
- FIG. 2 is a depiction of a system that facilitates computer data distribution via a blockchain node component in accordance with aspects of the subject disclosure.
- FIG. 3 illustrates a system that facilitates blockchain distribution of segmented computer data in accordance with aspects of the subject disclosure.
- FIG. 4 illustrates a system that facilitates computer data distribution via a distributed blockchain node architecture in accordance with aspects of the subject disclosure.
- FIG. 5 is a depiction of a system that facilitates computer data distribution via a blockchain comprising a plurality of block types in accordance with aspects of the subject disclosure.
- FIG. 6 is a depiction of a system that facilitates receiving computer data via a blockchain in accordance with aspects of the subject disclosure.
- FIG. 7 illustrates a method for facilitating computer data distribution via a blockchain in accordance with aspects of the subject disclosure.
- FIG. 8 illustrates a method for facilitating computer data distribution via a blockchain comprising a checkpoint block in accordance with aspects of the subject disclosure.
- FIG. 9 depicts a schematic block diagram of a sample-computing environment with which the claimed subject matter can interact.
- FIG. 10 illustrates a block diagram of a computing system operable to execute the disclosed systems and methods in accordance with an embodiment.
- information such as computer programming code, source code, computer commands, or data
- the information can comprise computer code to enable patching or updating of software on a device, such as but not limited to, updating firmware, patching software, initiating a state change for a state of a device, distribution of data, etc.
- Computers can then receive stored data from the data store and can perform operations based, at least in part, on the received data.
- the data can be stored on data storage components such that the data can be received by devices from the data store, for example, data can be stored on a networked data storage component and can be received by a device via a wired or wireless network connection to the networked data storage component.
- storage of data can comprise storage of software patches, firmware updates, etc.
- software patches firmware updates
- the discussion herein is generally in the context of distribution of software patches, although the disclosure is expressly not so limited, and distribution of nearly any electronic information in the manner disclosed herein is expressly within the scope of the present disclosure even where not enumerated or otherwise specifically recited.
- computer code for a software patch, or simply a patch can be stored on a data store and can be communicated to and received by a device to implement the patch.
- the patch can be a firmware update, a software update, an application, e.g., ‘app’, update, etc.
- the patch can comprise commands, data, code, etc., that can be consumed or used by the receiving device.
- a first Brand-H device can be of a first type and a second Brand-H device can be of a second type, wherein a patch for the first type can be received from a first data store and the patch for the second type can be received from another data store even though both the first and second type device(s) are of Brand-H origin.
- the heterogeneous nature of the modern computing world, therefor, can result in challenges to distribution of patches or other computer data, commands, etc.
- a patch can be implemented in a blockchain environment.
- blocks which can hold data, can be ‘chained’ together by storing information in a block indicating the preceding block.
- a block can further comprise timestamp information and validation information.
- the blockchain is relied on heavily by some cryptocurrency systems, in particular for maintaining a cryptoledger associated with the cryptocurrency.
- cryptocurrency transactions for a period are stored in a block that is then added to the tail of the blockchain each period, thereby extending the blockchain and enabling the transactional history of the cryptocurrency to be accessed by moving along the blocks of the blockchain.
- the blockchain could be held privately, e.g., in a centralized manner, some cryptoledgers are held publically in a less centralized manner for various political, economic, and dogmatic reasons.
- aspects of a less centralized blockchain include preventing the placement of illegitimate blocks on the blockchain, preventing tampering of blocks already in the blockchain, ensuring that the blockchain is accessible on the blockchain access nodes, etc.
- Cryptocurrency research has resulting in some accepted blockchain practices, e.g., a majority of blockchain nodes confirms a new block is valid before it is added to the blockchain (e.g., the 51% rule), blocks comprise validation features to prevent tampering with existing blocks of the blockchain (e.g., hash/Merkle trees, elliptical curve cryptography, etc.), and incentivizing blockchain access nodes to be available to process transaction (e.g., rewarding ‘miners’ to perform computational tasks that keeps the mining device active).
- a majority of blockchain nodes confirms a new block is valid before it is added to the blockchain (e.g., the 51% rule)
- blocks comprise validation features to prevent tampering with existing blocks of the blockchain (e.g., hash/Merkle trees, elliptical curve cryptography, etc.), and incentivizing blockchain access nodes to be available to process transaction (e.g., rewarding ‘miners’ to perform computational tasks that keeps the mining device active).
- Blockchain architectures are generally considered as able to provide independent nodes an ability to converge on a latest version of a data set, even when the nodes are run anonymously, have poor interconnectivity, are subject to operator agenda(s) such as cheating, fraud, attack, etc.
- blockchains when well designed, can be overwhelmingly difficult to alter, in regard to blocks already in the blockchain.
- a blockchain architecture can be employed to store a patch.
- the patch can then be received by a device via traversing the blockchain.
- the blockchain in some embodiments, can be secured in a manner similar to cryptocurrency-type blockchains.
- the blockchain can be accessible in an ad hoc manner via blockchain access nodes.
- a device accessing the blockchain can also act as a blockchain access node.
- some embodiments can comprise blocks having patches for heterogeneous computing devices.
- blocks can comprise information comprising at least a portion of a patch, command, or data.
- Blocks can comprise identifier(s), which in some embodiments, can enable adaptation of access to a patch in a block.
- a block can comprise navigation information, e.g., checkpoint information, to allow adapting traversal of a blockchain based on a criterion.
- navigation information e.g., checkpoint information
- an embodiment of the disclosed subject matter can comprise some, all, or none of these aspects without departing from, and all such permutations are considered to be within, the scope of the disclosed subject matter.
- FIG. 1 is an illustration of a system 100 , which facilitates computer data distribution via a blockchain in accordance with aspects of the subject disclosure.
- System 100 can include device 110 .
- Device 110 can comprise a processor and memory.
- Device 100 can be, for example, a computer, a smartphone, a laptop computer, a tablet computer, a vehicle computer, a computer enabled appliance, a wearable computer, a sensor device, a drone device, or nearly any other computing device, etc.
- device 110 can be a computer enabled IoT device.
- device 110 can be a member of a swarm of devices, e.g., a device of a group of devices exhibiting collective behavior, etc.
- Device 110 can comprise a blockchain genesis, seed, tail block, etc., for example, installed at creation of the device by a manufacturer.
- Blockchain blocks can then be added as a new head block, e.g., a block that is a most recent block of the blockchain, to form a blockchain originating in a tail block, e.g., the earliest block in the blockchain. Traversing the blockchain from the tail to head can therefore, in some embodiments, provide a sequential set of patches from oldest to newest.
- Device 110 can receive software update blockchain block (SUBB) 120 .
- SUBB 120 can comprise a patch, e.g., code, code segment, command, data, etc.
- SUBB 120 can be received from a data store, not illustrated.
- the data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node, etc.
- a patch of SUBB 120 can be employed, at least in part, by device 110 to perform operations. Operations can comprise updating software/firmware, altering a state of device 110 , update data of device 110 , etc.
- device 110 can store SUBB 120 .
- device 110 can comprise an amount of memory allocated to storing blockchain block(s), e.g., SUBB 120 , etc. Where sufficient allocated memory is available and where SUBB 120 is determined to satisfy a rule relating to storage of SUBB 120 , SUBB 120 can be stored by device 110 .
- the rule can relate to a criterion, such as, a date or time of SUBB 120 , a size of SUBB 120 , a relevancy of SUBB 120 , a redundancy of SUBB 120 , a ranking of SUBB 120 according to importance of the patch, version of the patch, poll of devices determined to receive the patch, etc., source of SUBB 120 , etc.
- a criterion such as, a date or time of SUBB 120 , a size of SUBB 120 , a relevancy of SUBB 120 , a redundancy of SUBB 120 , a ranking of SUBB 120 according to importance of the patch, version of the patch, poll of devices determined to receive the patch, etc., source of SUBB 120 , etc.
- the relevancy of SUBB 120 to device 110 or other devices can be determined and considered in determining storage of SUBB 120 by device 110 .
- device 110 can discard SUBB 120 , e.g., where SUBB 120 is not determined to be stored, for example where device 110 lacks adequate allocated memory, where SUBB 120 does not satisfy the storage rule, etc.
- device 110 can discard blocks that are not relevant to device 110 , e.g., the stored blocks can all be blocks relevant to device 110 where sufficient allocated memory is available and where other criteria are satisfied.
- SUBB 120 can be a block of a longer blockchain. In some embodiments, SUBB 120 can be the only block of a blockchain, e.g., a last block, etc. Further, in some embodiments, SUBB 120 can comprise an entire patch, a portion of a patch, a plurality of patches, etc. In embodiments, where SUBB 120 comprises a portion of a patch, other software update blockchain blocks can be received by device 110 that can comprise other portions of the patch, whereby device 110 can reconstruct the patch from the portions.
- SUBB 120 can comprise a portion of a patch for various reasons, as an example, where a patch is large, e.g., occupies a large amount of memory, the patch can be broken into smaller segments that can each be placed in blocks of the blockchain. This can allow SUBB 120 to be correspondingly smaller in size than were it to comprise an entire patch or a larger segment of the patch. Where SUBB 120 is smaller, it can feasibly be more readily stored on blockchain nodes that have more limited memory resources.
- a patch is 8 Mb and is broken into four 2 Mb portions (ignoring data structure overhead in this example) stored across four blocks of the blockchain
- the devices acting as blockchain nodes, can then make the segmented patch available to another device, for example, a device having 20 Mb of allocated storage available.
- This example can be illustrated as a patch for a tablet computer of 8 MB size is segmented into four 2 Mb size blocks each comprising a segment of the 8 Mb patch.
- the four 2 Mb size patch segment blocks can then be stored, for example in a connected wristwatch, a connected dog collar, a connected parking meter, and a connected pedometer.
- the example tablet computer can then receive the four 2 Mb patch segments, e.g., from the watch, the dog collar, the parking meter, and the pedometer, and reassemble the 8 Mb patch therefrom.
- the tablet computer can then perform operations based on the reassembled 8 Mb size patch.
- This aspect can allow storage of larger patches, via segmentation, on IoT type devices that typically have more limited computing/memory resources, to allow propagation of the blockchain in a heterogeneous environment.
- segmentation of a patch e.g., code, commands, data, etc.
- a patch segment can be communicated faster than an entire patch to facilitate propagation of patch segments in environments where communication is limited, bursty, unreliable, etc., for example where SUBB 120 is communicated between a fixed position device and device 110 as it is in motion past the fixed position device, there may be insufficient time to transmit a larger SUBB 120 in comparison to sufficient time to communicate a smaller SUBB 120 .
- FIG. 2 is a depiction of a system 200 that can facilitate computer data distribution via a blockchain node component in accordance with aspects of the subject disclosure.
- System 200 can include device 210 .
- Device 210 can comprise a processor and memory.
- Device 200 can be, for example, a computer, a smartphone, a laptop computer, a tablet computer, a vehicle computer, a computer enabled appliance, a wearable computer, a sensor device, a drone device, or nearly any other computing device, etc.
- device 210 can be a computer enabled IoT device.
- device 210 can be a member of a swarm of devices, e.g., a device of a group of devices exhibiting collective behavior, etc.
- Device 210 can comprise blockchain node component 240 that can store a blockchain genesis, seed, tail block, etc., for example, installed at creation of the device by a manufacturer.
- Blockchain blocks can then be added to a new head block to form a blockchain originating from a tail block. Traversing, in some embodiments, the blockchain from the tail to the head, or from the head to the tail, therefore, can provide a sequential set of patches via blockchain node component 240 .
- Device 210 can receive SUBB 220 .
- SUBB 220 can comprise a patch, e.g., code, code segment, command, data, etc.
- SUBB 220 can be received from a data store, not illustrated.
- the data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node component of another device, etc.
- a patch of SUBB 220 can be employed, at least in part, by device 210 to perform operations. Operations can comprise updating software/firmware, altering a state of device 210 , update data of device 210 , etc.
- device 210 can store SUBB 220 .
- device 210 can comprise an amount of memory allocated to storing blockchain block(s), e.g., SUBB 220 , etc. Where sufficient allocated memory is available and where SUBB 220 is determined to satisfy a rule relating to storage of SUBB 220 , SUBB 220 can be stored by device 210 .
- the rule can relate to a criterion, such as, a date or time, size in memory, a relevancy, a redundancy, a ranking according, such as, to importance, etc., of the patch, version, number of child devices estimated to receive the patch via blockchain node component 240 , etc., source, etc.
- the relevancy of SUBB 220 to device 210 or other devices can be determined and considered in determining storage of SUBB 220 by device 210 .
- device 210 can discard SUBB 220 .
- device 210 can discard blocks that are not relevant to device 210 .
- Device 210 can enable access to SUBB 230 .
- SUBB 230 can be the same as, or similar to, SUBB 220 .
- device 210 can store SUBB 220 and allow access to SUBB 220 as SUBB 230 .
- SUBB 230 can be the same as SUBB 220 .
- a patch can be extracted from SUBB 220 and used to create SUBB 230 .
- SUBB 230 can be similar to SUBB 220 .
- SUBB 230 can be part of a side chain, e.g., where SUBB 230 is derived from a patch extracted from SUBB 220 , the patch data can be added to a block having data indicating a previous block in a side chain, sub-chain, etc.
- This aspect can be useful, for example, where the full blockchain comprises many blocks that are not relevant to a device type associated with device 210 , a side chain can be formed that is more compact and has a higher density of blocks relevant to the device type of device 210 , such that other devices of the same or similar device type can receive, in some circumstances, the side blockchain in lieu of the full blockchain, e.g., limited memory, limited communication, a more homogeneous area of devices, etc.
- blockchain node component 240 can act as a partial storing node rather than a full storing node.
- SUBB 220 can be a block of a longer blockchain. In some embodiments, SUBB 220 can be the only block of a blockchain, e.g., a last block, etc. Further, in some embodiments, SUBB 220 can comprise an entire patch, a portion of a patch, a plurality of patches, etc. In embodiments, where SUBB 220 comprises a portion of a patch, other SUBBs can be received by device 210 that can comprise other portions of the patch, whereby device 210 can reconstruct the patch from the portions.
- device 210 can refrain from reconstructing the entire patch from the patch segments received by way of one or more SUBBs including SUBB 220 .
- the received SUBB 220 can still be shared as SUBB 230 with, or without, reconstruction of an entire patch from patch segments by device 210 .
- segmentation can enable storage of larger patches on IoT type devices, typically limited computing/memory resources, or other limited memory device, to allow propagation of the blockchain in a heterogeneous environment.
- Segmentation of a patch e.g., code, commands, data, etc.
- a patch segment can be communicated faster than an entire patch to facilitate propagation of patch segments in environments where communication is limited, bursty, unreliable, etc., for example where SUBB 220 is communicated between a user carrying a first device in one direction down a hallway and device 210 as it is carried in the opposite direction down the hallway and passes the first device, there may be only a short time to transmit SUBB 220 , typically meaning that a shorter SUBB can be more likely to fit in the limited transmission time window.
- patch segmentation is considered within the scope of the present disclosure even where not explicitly recited for the sake of clarity and brevity.
- Other examples can include, but are not limited to, limited electrical power or processing resources of a device comprising a blockchain node can limit hashing of an entire patch in comparison to hashing a patch segment, a communications modality limitation, a device density rule (higher density can favor patch segments), a load balancing rule, etc.
- FIG. 3 illustrates a system 300 that facilitates blockchain distribution of segmented computer data in accordance with aspects of the subject disclosure.
- System 300 can include device 310 , 312 , and 314 .
- Devices 310 - 314 can each comprise a processor and memory.
- Devices 300 - 314 can be, for example, a computer, a smartphone, a laptop computer, a tablet computer, a vehicle computer, a computer enabled appliance, a wearable computer, a sensor device, a drone device, or nearly any other computing device, etc.
- devices 310 - 314 can be computer enabled IoT devices.
- devices 310 - 314 can be members of a swarm of devices, e.g., devices of a group of devices exhibiting collective behavior, etc.
- Devices 310 - 314 can comprise blockchain node components, e.g., 340 - 344 , respectively, that can each store a blockchain genesis, seed, tail block, etc. Blockchain blocks can then be added as new head blocks to form blockchains originating from tail blocks.
- Devices 310 - 314 can communicate with other devices, including other devices of devices 310 - 314 . This communication can allow devices 310 - 314 to share information among the devices 310 - 314 , for example, patches extracted from SUBBs received by the respective devices can be shared with other devices including devices 310 - 314 .
- Traversing a blockchain from a tail to a head, or from a head to a tail, can provide a sequential set of patches via blockchain node components, e.g., 340 and 344 .
- non-storing node component 342 can comprise only the genesis, seed, tail block, etc.
- full storing node component 340 can store a full blockchain
- partial storing node component 344 can store up to, but typically less than, a full blockchain.
- Devices 310 - 314 can receive SUBB 320 , 322 , 324 , and 325 , as illustrated.
- SUBB 320 - 325 can each comprise a patch, e.g., code, code segment, command, data, etc.
- SUBB 320 - 325 can be received from a data store of device 302 or 303 , as illustrated.
- the data stores can be comprised in a memory of device 302 , 303 , etc., a storage device, data store of device 302 , 303 , etc., a blockchain node component of device 302 , 303 , etc.
- a patch of SUBB 320 - 325 can be employed, at least in part, by a device 310 - 314 to perform operations, e.g., SUBB 320 can be employed by device 310 , SUBB 322 can be employed by device 310 - 314 via communications between devices 310 - 314 , SUBB 325 can be employed by device 310 - 314 via communications between devices 310 - 314 , etc.
- Operations can comprise updating software/firmware, altering a state of device 310 - 314 , update data of device 310 - 314 , etc.
- devices 310 - 314 can each store SUBB 320 - 325 , either as directly communicated to device 310 - 314 from device 302 or 323 , or as communicated to device 310 - 314 as communicated from another device of devices 310 - 314 .
- devices 310 - 314 can each comprise an amount of memory allocated to storing blockchain block(s), e.g., SUBBs 320 - 325 , etc.
- SUBB 320 - 325 can be stored by one or more of devices 310 - 314 .
- non-storing node component 342 can determine that no SUBB is to be stored by device 312 regardless of available memory or other criterion
- partial storing node component 344 can determine to store up to a full blockchain of SUBBs at device 314
- full storing node component 340 can determine to store a full chain of SUBBs at device 310 up to the allocated memory and other criteria.
- the rule can relate to a criterion, such as, a date or time, size in memory, a relevancy, a redundancy, a ranking according, such as, to importance, etc., of the patch, version, number of child devices estimated to receive the patch via blockchain node components, e.g., 340 - 344 , etc.
- the relevancy of SUBB 320 - 325 to each of devices 310 - 314 or other devices can be determined and considered in determining storage of one or more of SUBB 320 - 325 by respective devices 310 - 314 .
- each of devices 310 - 314 can discard one or more of SUBBs 320 - 325 .
- device 310 can discard block 320 where it is not relevant to device 310
- device 310 can discard block 325 where it is not relevant to device 310
- device 314 can discard each of blocks 320 - 325 where they are not relevant to device 310 , etc.
- Devices 310 and 314 can enable access to SUBBs 330 and 332 , respectively.
- SUBBs 330 - 332 can be the same as, or similar to, at least one of SUBB 320 - 325 .
- SUBB 330 can be the same as, or similar to, SUBB 320
- SUBB 330 can be the same as, or similar to, SUBB 325
- SUBB 332 can be the same as, or similar to, SUBB 325 , etc.
- devices 310 - 314 can store SUBBs 320 - 325 and allow access thereto.
- SUBB 330 can be the same as one of SUBB 320 - 325
- SUBB 332 can be the same as one of SUBB 320 - 325
- a patch can be extracted from one or more of SUBBs 320 - 325 and used to create at least one of SUBBs 330 - 332 .
- SUBB 330 can be based on, or similar to, one or more of SUBBs 320 - 325 .
- one or more of SUBBs 330 - 332 can be part of one or more side chains, e.g., where SUBB 330 is derived from a patch extracted from SUBB 320 , the patch data can be added to a block having data indicating a previous block in a side chain, sub-chain, etc.
- a side chain can be formed that is more compact and has a higher density of blocks relevant to the device type of device 310 , such that other devices of the same or similar device type can receive, in some circumstances, the side blockchain in lieu of the full blockchain, e.g., limited memory, limited communication, a more homogeneous area of devices, etc.
- partial storing node component 344 can store some SUBBs, up to a full blockchain.
- devices 310 - 314 can communicate SUBBs with other devices 310 - 314 , can communicate patches extracted from SUBBs 320 - 325 , etc.
- device 302 can communicate SUBB 320 to device 310 , which can then communicate SUBB 330 to another device or to device 312 or 314 .
- device 302 can communicate SUBB 320 to device 310 , which can then communicate a patch from SUBB 330 to another device or to device 312 or 314 .
- a SUBB can be hashed and represent the patch in a compact format but can require description of the hash to access the patch itself.
- the patch can be less compact than a hash of the patch but can avoid decryption associated with a SUBB.
- inter-device communication can be via sharing a patch and/or sharing a SUBB associated with the patch.
- sharing a patch itself can be devoid of sharing information about a block of the blockchain that can comprise the patch, e.g., the SUBB is a block in the blockchain that typically comprises a hash of the patch, the patch is simply the patch without any block information.
- one or more of SUBBs 320 - 325 can be a block of a longer blockchain. In some embodiments, one or more of SUBBs 320 - 325 can be an only block of a blockchain, e.g., a last block, etc. Further, in some embodiments, one or more of SUBBs 320 - 325 can comprise an entire patch, a portion of a patch, a plurality of patches, etc.
- SUBBs 320 - 325 comprise a portion of a patch
- other SUBBs e.g., another of SUBB 320 - 325
- a device e.g., 310 - 314
- the device can refrain from reconstructing the entire patch from the patch segments received by way of one or more of SUBBs 320 - 325 .
- a received SUBB can still be shared as one or more of SUBBs 330 - 332 with, or without, reconstruction of an entire patch from received patch segments by a device, e.g., 310 - 314 .
- SUBB 320 comprises a hash of a first patch segment
- SUBB 325 can comprise a hash of a related second patch segment, such that the first and second patch segments can be decrypted from their hashes and reconstructed to form an entire patch.
- SUBB 320 comprises a hash of a first patch segment
- SUBB 325 comprises a hash of a related second patch segment
- device 314 determines from the either SUBB 320 or 325 that the patch is not relevant to device 314 , even though the first and second patch segments can be decrypted from their hashes and reconstructed to form an entire patch, device 314 can refrain from decryption, where after partial storing node component 344 can share, but is not required to share, SUBB 320 and/or 325 with other devices, e.g., via sub 332 .
- segmentation can enable storage of larger patches on IoT type devices, typically limited computing/memory resources, or other limited memory device, to allow propagation of the blockchain in a heterogeneous environment.
- Segmentation of a patch e.g., code, commands, data, etc.
- a patch segment can be communicated faster than an entire patch to facilitate propagation of patch segments in environments where communication is limited, bursty, unreliable, etc., for example where SUBB 320 is communicated to device 310 as it travels through a spotty wireless network environment, there may be only a short period to transmit SUBB 320 between wireless network drops, typically meaning that a shorter SUBB can be more likely to fit in the limited transmission time window.
- patch segmentation is considered within the scope of the present disclosure even where not explicitly recited for the sake of clarity and brevity.
- Other examples can include, but are not limited to, limited electrical power or processing resources of a device comprising a blockchain node can limit hashing of an entire patch in comparison to hashing a patch segment, a communications modality limitation, a device density rule (higher density can favor patch segments), a load balancing rule, etc.
- FIG. 4 illustrates a system 400 that facilitates computer data distribution via a distributed blockchain node architecture in accordance with aspects of the subject disclosure.
- System 400 can include devices 404 - 415 .
- Devices 404 - 415 can each comprise a processor and memory.
- Devices 404 - 415 can each be, for example, a computer, a smartphone, a laptop computer, a tablet computer, a vehicle computer, a computer enabled appliance, a wearable computer, a sensor device, a drone device, or nearly any other computing device, etc.
- devices 404 - 415 can be computer enabled IoT devices.
- devices 404 - 415 can be members of a swarm of devices, e.g., devices of a group of devices exhibiting collective behavior, etc.
- Devices 404 - 415 can comprise blockchain node components, e.g., 406 - 445 , respectively, that can each store a blockchain genesis, seed, tail block, etc. Blockchain blocks can then be added as new head blocks to form blockchains originating from tail blocks.
- Devices 404 - 415 can communicate with other devices, including other devices of devices 404 - 415 . This communication can allow devices 410 - 414 to share information among the devices 404 - 415 , for example, SUBBs, e.g., 420 - 435 , received by the respective devices can be shared with other devices including devices 404 - 415 .
- SUBBs e.g., 420 - 435
- Traversing a blockchain in some embodiments, from a tail to head (oldest to newest), or from head to a tail (newest to oldest), can provide a sequential set of patches via one or more blockchain node component, e.g., 406 - 445 .
- devices 412 can receive SUBB 420 from device 404 via signing master blockchain node component 406 .
- signing master blockchain node component 406 can be a node component associated with a source of SUBBs for inclusion on a blockchain, for example, a device manufacturer can publish a new firmware update via SUBB 420 for dissemination via signing master blockchain node component 406 of device 404 .
- SUBB 420 can comprise a patch, e.g., code, code segment, command, data, etc.
- SUBB 420 can be received from a data store of device 404 via signing master blockchain node component 406 .
- the data stores can be comprised in a memory of device 404 , a storage device of device 404 , signing master blockchain node component 406 of device 404 , etc.
- a patch hashed in SUBB 420 can be employed, at least in part, by a device 412 to perform operations, e.g., SUBB 420 can be employed by device 412 .
- devices 414 and/or 410 can employ SUBB 420 , and/or a patch decrypted from SUBB 420 , shared with them from device 412 .
- Operations can comprise updating software/firmware, altering a state of device 410 - 414 , update data of device 410 - 414 , etc.
- Devices 410 - 414 can, via blockchain node component 440 , 442 , and 444 respectively, disseminate SUBB 430 , 432 , and 434 .
- SUBB 430 , 432 , and 434 can each be the same as, or similar to, SUBB 420 .
- SUBB 430 , 432 , and 434 can be the same as SUBB 420 .
- Device 411 can receive SUBB 430 , device 413 can receive SUBB 432 , and device 415 can receive SUBB 434 .
- device 411 can enable access to SUBB 431
- device 413 can enable access to SUBB 433
- device 415 can enable access to SUBB 435 , via blockchain node component 441 , 443 , and 445 respectively.
- SUBB 431 , 433 , and 435 can each be the same as, or similar to, SUBB 430 , 432 , and 434 , respectively.
- SUBB 431 , 433 , and 435 can be the same as SUBB 420 .
- a patch hashed in SUBB 430 , 432 , and 434 can respectively be employed, at least in part, by device 411 , 413 , and 415 , to perform operations.
- system 400 illustrates aspects of distributing and/or use of a blockchain.
- FIG. 5 is a depiction of a system 500 that facilitates computer data distribution via a blockchain comprising a plurality of block types in accordance with aspects of the subject disclosure.
- System 500 can include SUBB head 530 that can be linked or chained to SUBB tail 536 via SUBB 531 , SUBB 532 , SUBB 533 , checkpoint SUBB 534 , SUBB 535 , etc.
- SUBB head 531 , SUB 532 - 533 , 535 , etc., checkpoint SUBB 534 and SUBB tail 536 , collectively SUBB 530 - 536 can each comprise a patch, e.g., code, code segment, command, data, etc.
- SUBB 530 - 536 can represent a blockchain that facilitates computer data distribution.
- SUBB 530 - 536 can be received by devices, e.g., 110 , 210 , 302 , 303 , 310 - 314 , 404 , 410 - 415 , etc.
- SUBB 530 - 536 can be stored in device data stores that can comprise a memory of device, a storage device, a blockchain node component of a device, etc., as disclosed elsewhere herein.
- a patch can be hashed and comprised in SUBB 530 - 536 such that it can be decrypted and employed, at least in part, by a device to perform operations, e.g., SUBB 530 - 536 can be employed by a device.
- Operations can comprise updating software/firmware, altering a state of a device, update data of a device, etc.
- SUBB tail 536 can be a blockchain genesis, seed, tail block, etc.
- Blockchain blocks e.g., SUBB 530 - 535 , etc.
- Traversing a blockchain from a tail to a head can provide a sequential set of patches from oldest to newest via one or more blockchain node component as disclosed hereinabove.
- SUBB tail 536 can comprise a timestamp, signature, nonce, null SUBB hash, Merkle root, and data values comprising an identifier and a payload, wherein the payload can be a firmware or other code segment, a command, or other data. While other payloads can be included, for the sake of clarity and brevity they are not discussed further, although all such payloads are within the scope of the present disclosure where they relate to distribution of computer data via a blockchain-type architecture.
- the timestamp can represent an approximate time of creation of the block, e.g., SUBB tail 536 .
- the signature can represent an authentication of the validity of the block and, in some embodiments can be the same as, or similar to, proof of work as might be found in a cryptocurrency-type blockchain block.
- the proof of work is frequently a value that is easy to verify but difficult to compute, which acts as a security measure to prevent blocks from being modified.
- the signature can therefore be employed to validate the block in that determining the signature is sufficiently time consuming as to prevent computational systems from modifying all subsequent blocks in before new blocks are mined and exposing the illicit attempt at modification.
- the nonce can be a value that when hashed with the block content, e.g., payload, the result is within a determined range of values.
- the null SUBB hash, or previous SUBB hash in blocks other than SUBB tail 536 can be a cryptographic hash of the previous block, however for the tail block, there is no earlier block and a null SUBB hash value can be used.
- the Merkle root can be a value from a hash tree and can allow verification of a hashed payload. In some embodiments, the signature and Merkle root verification can be substituted with other techniques than those explicitly disclosed herein without departing from the disclosed subject matter and those alternate techniques are not disclosed herein simply for the sake of clarity and brevity.
- the identifier can enable identification of the payload. This can be valuable in a heterogeneous device environment by allowing a device to determine, based on the identifier, if the payload is relevant for the device. Relevancy can be premised on, for example, the type of device, model of the device, series of the device, age of the device, attributes of the device, brand of the device, code versions, etc. As an example, a device of Brand A can, from the identifier, determine that a payload if for a Brand A device and indicate that the payload, e.g., code, command, data, is relevant and should be received by the device.
- a payload e.g., code, command, data
- a Brand A device can determine, based on the identifier, that the payload is for a Brand A device of model AA through AV, however the Brand A device can be of model BQ and the payload can be indicated as not relevant, whereby the block can, for example, be deleted, decrypting the payload can be avoided, etc.
- Checkpoint SUBB 534 can comprise checkpoint information as a payload.
- the identifier can be employed to determine which devices may find the checkpoint information relevant.
- the checkpoint information can be based on a determination that one or more subsequent bocks of the blockchain, typically many subsequent blocks, are not relevant to devices associated with the identifier.
- the checkpoint information can be employed to jump ahead in the blockchain and avoid the previously identified irrelevant blocks of the blockchain. This can act as a shortcut for devices associated with the identifier of the checkpoint information.
- a checkpoint block can be inserted into the chain comprising checkpoint information that indicates that no blocks after the checkpoint block will be relevant to the older device.
- the identifier of the checkpoint information can be deemed relevant to the older device such that the older device can be provided information that no further relevant blocks are to be found in the blockchain after checkpoint SUBB 534 . This can enable the older device to avoid consuming resources to traverse the balance of the blockchain after checkpoint SUBB 534 .
- checkpoint SUBB 534 can comprise checkpoint information that indicates that the next relevant block is several thousand blocks more recent, this information can be employed by a device to skip over these several thousand blocks, thereby avoiding the consumption of resource associated with traversing the same.
- the checkpoint can be a valuable improvement over having to traverse the entire blockchain by each device.
- example method(s) that can be implemented in accordance with the disclosed subject matter can be better appreciated with reference to flowcharts in FIG. 6 - FIG. 8 .
- example methods disclosed herein are presented and described as a series of acts; however, it is to be understood and appreciated that the claimed subject matter is not limited by the order of acts, as some acts may occur in different orders and/or concurrently with other acts from that shown and described herein.
- one or more example methods disclosed herein could alternatively be represented as a series of interrelated states or events, such as in a state diagram.
- interaction diagram(s) may represent methods in accordance with the disclosed subject matter when disparate entities enact disparate portions of the methods.
- FIG. 6 illustrates aspects of method 600 facilitating receiving computer data via a blockchain in accordance with aspects of the subject disclosure.
- Method 600 at 610 , can comprise receiving a software update blockchain block (SUBB) from a blockchain.
- the SUBB can comprise a patch, e.g., code, code segment, command, data, etc.
- the SUBB can be received from a data store, not illustrated.
- the data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node, etc.
- a patch hashed in the SUBB e.g., a payload
- Operations can comprise updating software/firmware, altering a state of the device, update data of the device, etc.
- method 600 can comprise, determining a relevancy of the SUBB based on an identifier of the SUBB and a device parameter.
- the identifier can enable identification of the payload. This can be valuable in a heterogeneous device environment by allowing a device to determine, based on the identifier relative to a device parameter, if the payload is relevant for the device. Relevancy can be premised on a device parameter, for example, the type of device, model of the device, series of the device, age of the device, attributes of the device, brand of the device, code versions, etc.
- a device of Brand A can, from the identifier, determine that a payload is for a Brand A device and therefore determine that the payload, e.g., code, command, data, is relevant and should be employed by the device.
- a Brand B device using an operating system of type OS-B can determine, based on the identifier, that the payload is for a Brand A device using an operating system of type OS-B, however the Brand B device can determine that the payload is not relevant as it is for a different brand of device despite both brands using the same OS-B operating system, whereby the block can, for example, be deleted, decrypting the payload can be avoided, etc.
- Method 600 can comprise employing the payload of the SUBB by the device in response to determining that the SUBB is relevant to the device. At this point method 600 can end. Where the identifier and device parameter result in determining that the SUBB is relevant at 620 , method 600 can, at 630 , decrypt the payload and employ the code, code segment, command, data, etc., of the payload by the device.
- FIG. 7 illustrates aspects of method 700 facilitating computer data distribution via a blockchain in accordance with aspects of the subject disclosure.
- method 700 can comprise, receiving a SUBB from a blockchain at a device.
- the SUBB can comprise a patch, e.g., code, code segment, command, data, etc.
- the SUBB can be received from a data store, not illustrated.
- the data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node, etc.
- the SUBB can comprise a hash of a patch, e.g., a payload, which can be employed, at least in part, by a device to perform operations.
- Operations can comprise updating software/firmware, altering a state of the device, update data of the device, etc.
- method 700 can comprise, in response to determining the SUBB is relevant to the device, employing the payload of the SUBB by the device. Determining relevancy of the SUBB can based on an identifier of the SUBB and a device parameter.
- the identifier can enable identification of the payload to allow a device to determine if the payload is relevant to the device, e.g., in a heterogeneous device environment not all payloads can be relevant to all heterogeneous devices. Relevancy can be premised on, for example, a type of device, model of the device, series of the device, age of the device, attributes of the device, brand of the device, code versions, etc.
- a smartphone device can determine, from the identifier, that non-smartphone payloads are not relevant.
- a drone device in a first geographic area can determine that a payload is relevant, where the identifier is associated with drone operations in the same, or similar, geographic area, e.g., the identifier can indicate that the payload is data for use by a drone in a first swampy area, which could be irrelevant to a drone in a desert area but can be relevant to a drone in the first swamp area or a second swampy area.
- Method 700 can comprise storing a least a portion of the blockchain.
- the stored portion of the blockchain can comprise the SUBB.
- the device can then facilitate access to the stored SUBB by another device.
- method 700 can end.
- method 700 enables the device to store up to the full blockchain.
- the stored portion of the blockchain can comprise the SUBB where the SUBB was determined to be relevant at 720 .
- the device can then aid in distribution of the blockchain to other devices. This can result in decentralization of the blockchain, which can make the blockchain distribution of computer data more robust against a failure of any one distribution node.
- a Bluetooth link to a nearby device having a copy of the blockchain stored can enable access to the blockchain with lower power consumption.
- devices can avoid needing a cellular radio component but still be able to get access to the blockchain when in range of another Bluetooth enabled device that has a copy of the blockchain stored thereon.
- it can be beneficial to keep resource consumption low and streamline components, e.g., having only a Bluetooth radio rather than both a Bluetooth radio and a cellular radio, and a Wi-Fi radio, etc.
- FIG. 8 illustrates aspects of method 800 facilitating computer data distribution via a blockchain in accordance with aspects of the subject disclosure.
- method 800 can comprise, receiving a checkpoint SUBB from a blockchain at a device.
- the checkpoint SUBB can comprise checkpoint information.
- the checkpoint SUBB can be received from a data store, not illustrated.
- the data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node, etc.
- the SUBB can comprise a hash of checkpoint information, e.g., a payload, which can be employed, at least in part, by a device to perform operations. Operations can comprise accessing another SUBB of the blockchain.
- method 800 can comprise, in response to determining the checkpoint SUBB is relevant to the device, employing the payload of the checkpoint SUBB by the device. Determining a relevancy of the checkpoint SUBB can based on an identifier of the checkpoint SUBB and a device parameter. The identifier can enable identification of the payload to allow a device to determine if the payload is relevant to the device. Relevancy can be premised on, for example, a type of device, model of the device, series of the device, age of the device, attributes of the device, brand of the device, code versions, etc.
- Employing the checkpoint SUBB payload can comprise navigating the device to another SUBB of the blockchain based on a payload of the checkpoint SUBB. This can enable the device to avoid use of resources associated with receiving and traversing blockchain blocks between the checkpoint SUBB and the other SUBB.
- the checkpoint information of the checkpoint SUBB can be based on a determination that one or more subsequent bocks of the blockchain, typically many subsequent blocks, are not relevant to a device associated with the identifier.
- the checkpoint information can be employed to jump ahead in the blockchain and avoid the previously identified irrelevant blocks of the blockchain. This can act as a shortcut for a device associated with the identifier of the checkpoint information. This can enable the older device to avoid consuming resources to traverse the balance of the blockchain after the checkpoint SUBB up to the other SUBB.
- IoT devices can frequently have limited computational, memory, and power resources available, the checkpoint SUBB can be a valuable implement to constrain resource consumption by facilitating an efficient device traverse of the entire blockchain by skipping known irrelevant blocks of the blockchain.
- Method 800 can comprise storing a least a portion of the blockchain comprising the checkpoint SUBB and the other SUBB.
- the device can then facilitate access to the stored portion of the blockchain by another device.
- method 800 can end.
- method 800 enables the device to store up to the full blockchain.
- the stored portion of the blockchain can comprise the checkpoint SUBB where the checkpoint SUBB was determined to be relevant at 820 .
- the device can then aid in distribution of the blockchain to other devices. In addition to decentralization of the blockchain, this can aid other devices by enabling them to skip known irrelevant blocks in the shared portion of the blockchain.
- FIG. 9 is a schematic block diagram of a sample-computing environment 900 with which the claimed subject matter can interact.
- the system 900 includes one or more remote component(s) 910 , which can include client-side component(s).
- the remote component(s) 910 can be hardware and/or software (e.g., threads, processes, computing devices).
- remote component(s) 910 can include device 110 , 210 , 302 , 303 , 310 - 314 , 404 , 410 - 415 , etc.
- remote component(s) 910 can be a home computer (remote from a virtual blockchain node component executing on a network server device(s)) that can receive SUBB, e.g., 120 , 220 , 230 , 320 - 325 , 330 , 332 , 420 , 430 - 435 , etc.
- SUBB e.g., 120 , 220 , 230 , 320 - 325 , 330 , 332 , 420 , 430 - 435 , etc.
- the system 900 also includes one or more local component(s) 920 , which can include server-side component(s).
- the local component(s) 920 can be hardware and/or software (e.g., threads, processes, computing devices).
- local component(s) 920 can include device 210 , device 302 , 303 , 310 , 314 , 404 , 410 - 415 , etc.
- local component(s) 920 can be a device comprising signing master blockchain node component 406 that can enable access to SUBB 420 by a remote component, e.g., device 412 .
- device 412 can be a local component that can enable access to SUBB 432 by device 413 .
- One possible communication between a remote component(s) 910 and a local component(s) 920 can be in the form of a data packet adapted to be transmitted between two or more computer processes.
- a block of a blockchain e.g., SUBB 120 , 220 , 230 , 320 - 325 , 330 , 332 , 420 , 430 - 435 , etc., set can be communicated between a first device, e.g., remote component 910 , and a second device, e.g., a local component 920 .
- the system 900 includes a communication framework 940 that can be employed to facilitate communications between the remote component(s) 910 and the local component(s) 920 .
- the remote component(s) 910 are operably connected to one or more remote data store(s) 950 that can be employed to store information on the remote component(s) 910 side of communication framework 940 .
- the local component(s) 920 are operably connected to one or more local data store(s) 940 that can be employed to store information on the to the local component(s) 920 side of communication framework 940 .
- FIG. 10 In order to provide a context for the various aspects of the disclosed subject matter, FIG. 10 , and the following discussion, are intended to provide a brief, general description of a suitable environment in which the various aspects of the disclosed subject matter can be implemented. While the subject matter has been described above in the general context of computer-executable instructions of a computer program that runs on a computer and/or computers, those skilled in the art will recognize that the disclosed subject matter also can be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks and/or implement particular abstract data types.
- nonvolatile memory can be included in read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory.
- Volatile memory can include random access memory (RAM), which acts as external cache memory.
- RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
- SRAM synchronous RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDR SDRAM double data rate SDRAM
- ESDRAM enhanced SDRAM
- SLDRAM Synchlink DRAM
- DRRAM direct Rambus RAM
- the disclosed memory components of systems or methods herein are intended to comprise, without being limited to comprising, these and any other suitable types of memory.
- the disclosed subject matter can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, mini-computing devices, mainframe computers, as well as personal computers, hand-held computing devices (e.g., PDA, phone, watch, tablet computers, netbook computers, . . . ), microprocessor-based or programmable consumer or industrial electronics, and the like.
- the illustrated aspects can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network; however, some if not all aspects of the subject disclosure can be practiced on stand-alone computers.
- program modules can be located in both local and remote memory storage devices.
- FIG. 10 illustrates a block diagram of a computing system 1000 operable to execute the disclosed systems and methods in accordance with an embodiment.
- Computer 1012 which can be employed, for example, to distribute a patch, e.g., code, segment of code, command, data, etc., can include a processing unit 1014 , a system memory 1016 , and a system bus 1018 .
- Computer 1012 can also comprise, for example, a blockchain node component 240 , 340 - 344 , 406 , 440 - 445 , etc.
- System bus 1018 couples system components including, but not limited to, system memory 1016 to processing unit 1014 .
- Processing unit 1014 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as processing unit 1014 .
- System bus 1018 can be any of several types of bus structure(s) including a memory bus or a memory controller, a peripheral bus or an external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics, VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), Firewire (IEEE 1194), and Small Computer Systems Interface (SCSI).
- ISA Industrial Standard Architecture
- MSA Micro-Channel Architecture
- EISA Extended ISA
- VLB Intelligent Drive Electronics
- VLB VESA Local Bus
- PCI Peripheral Component Interconnect
- Card Bus Universal Serial Bus
- USB Universal Serial Bus
- AGP Advanced Graphics Port
- PCMCIA Personal Computer Memory Card International Association bus
- Firewire IEEE 1194
- SCSI Small Computer Systems
- System memory 1016 can include volatile memory 1020 and nonvolatile memory 1022 .
- a basic input/output system (BIOS) containing routines to transfer information between elements within computer 1012 , such as during start-up, can be stored in nonvolatile memory 1022 .
- nonvolatile memory 1022 can include ROM, PROM, EPROM, EEPROM, or flash memory.
- Volatile memory 1020 includes RAM, which acts as external cache memory.
- RAM is available in many forms such as SRAM, dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM).
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDR SDRAM double data rate SDRAM
- ESDRAM enhanced SDRAM
- SLDRAM Synchlink DRAM
- RDRAM Rambus direct RAM
- DRAM direct Rambus dynamic RAM
- RDRAM Rambus dynamic RAM
- Disk storage 1024 includes, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, flash memory card, or memory stick.
- disk storage 1024 can include storage media separately or in combination with other storage media including, but not limited to, an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM).
- CD-ROM compact disk ROM device
- CD-R Drive CD recordable drive
- CD-RW Drive CD rewritable drive
- DVD-ROM digital versatile disk ROM drive
- a removable or non-removable interface is typically used, such as interface 1026 .
- Computing devices typically include a variety of media, which can include computer-readable storage media or communications media, which two terms are used herein differently from one another as follows.
- Computer-readable storage media can be any available storage media that can be accessed by the computer and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer-readable storage media can be implemented in connection with any method or technology for storage of information such as computer-readable instructions, program modules, structured data, or unstructured data.
- Computer-readable storage media can include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other tangible media which can be used to store desired information.
- tangible media can include non-transitory media wherein the term “non-transitory” herein as may be applied to storage, memory or computer-readable media, is to be understood to exclude only propagating transitory signals per se as a modifier and does not relinquish coverage of all standard storage, memory or computer-readable media that are not only propagating transitory signals per se.
- Computer-readable storage media can be accessed by one or more local or remote computing devices, e.g., via access requests, queries or other data retrieval protocols, for a variety of operations with respect to the information stored by the medium.
- Communications media typically embody computer-readable instructions, data structures, program modules or other structured or unstructured data in a data signal such as a modulated data signal, e.g., a carrier wave or other transport mechanism, and includes any information delivery or transport media.
- modulated data signal or signals refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in one or more signals.
- communication media include wired media, such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
- FIG. 10 describes software that acts as an intermediary between users and computer resources described in suitable operating environment 1000 .
- Such software includes an operating system 1028 .
- Operating system 1028 which can be stored on disk storage 1024 , acts to control and allocate resources of computer system 1012 .
- System applications 1040 take advantage of the management of resources by operating system 1028 through program modules 1042 and program data 1044 stored either in system memory 1016 or on disk storage 1024 . It is to be noted that the disclosed subject matter can be implemented with various operating systems or combinations of operating systems.
- a user can enter commands or information into computer 1012 through input device(s) 1046 .
- a developer can submit a block comprising a hash of a patch to signing master blockchain node component 406 for distribution to other devices via a blockchain architecture.
- the submission for example, can be by way of a user interface embodied in a touch sensitive display panel allowing a developer to interact with computer 1012 as part of appending the block onto the blockchain.
- Input devices 1046 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, cell phone, smartphone, tablet computer, etc.
- Interface port(s) 1048 include, for example, a serial port, a parallel port, a game port, a universal serial bus (USB), an infrared port, a Bluetooth port, an IP port, or a logical port associated with a wireless service, etc.
- Output device(s) 1040 use some of the same type of ports as input device(s) 1046 .
- a USB port can be used to provide input to computer 1012 and to output information from computer 1012 to an output device 1040 .
- Output adapter 1042 is provided to illustrate that there are some output devices 1040 like monitors, speakers, and printers, among other output devices 1040 , which use special adapters.
- Output adapters 1042 include, by way of illustration and not limitation, video and sound cards that provide means of connection between output device 1040 and system bus 1018 . It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1044 .
- Computer 1012 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1044 .
- Remote computer(s) 1044 can be a personal computer, a server, a router, a network PC, cloud storage, cloud service, a workstation, a microprocessor based appliance, a peer device, or other common network node and the like, and typically includes many or all of the elements described relative to computer 1012 .
- Network interface 1048 encompasses wire and/or wireless communication networks such as local-area networks (LAN) and wide-area networks (WAN).
- LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like.
- WAN technologies include, but are not limited to, point-to-point links, circuit-switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
- ISDN Integrated Services Digital Networks
- DSL Digital Subscriber Lines
- wireless technologies may be used in addition to or in place of the foregoing.
- Communication connection(s) 1050 refer(s) to hardware/software employed to connect network interface 1048 to bus 1018 . While communication connection 1050 is shown for illustrative clarity inside computer 1012 , it can also be external to computer 1012 .
- the hardware/software for connection to network interface 1048 can include, for example, internal and external technologies such as modems, including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
- processor can refer to substantially any computing processing unit or device comprising, but not limited to comprising, single-core processors; single-processors with software multithread execution capability; multi-core processors; multi-core processors with software multithread execution capability; multi-core processors with hardware multithread technology; parallel platforms; and parallel platforms with distributed shared memory.
- a processor can refer to an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein.
- ASIC application specific integrated circuit
- DSP digital signal processor
- FPGA field programmable gate array
- PLC programmable logic controller
- CPLD complex programmable logic device
- processors can exploit nano-scale architectures such as, but not limited to, molecular and quantum-dot based transistors, switches and gates, in order to optimize space usage or enhance performance of user equipment.
- a processor may also be implemented as a combination of computing processing units.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- an application running on a server and the server can be a component.
- One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal).
- a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal).
- a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry, which is operated by a software or firmware application executed by a processor, wherein the processor can be internal or external to the apparatus and executes at least a part of the software or firmware application.
- a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, the electronic components can include a processor therein to execute software or firmware that confers at least in part the functionality of the electronic components.
- the terms “user,” “subscriber,” “customer,” “consumer,” “prosumer,” “agent,” and the like are employed interchangeably throughout the subject specification, unless context warrants particular distinction(s) among the terms. It should be appreciated that such terms can refer to human entities or automated components (e.g., supported through artificial intelligence, as through a capacity to make inferences based on complex mathematical formalisms), that can provide simulated vision, sound recognition and so forth.
Abstract
Description
- The present application claims priority to U.S. Provisional Patent Application No. 62/197,541, entitled “Lichtenberg Link,” filed on 27 Jul. 2015, which application is hereby incorporated by reference in its entirety.
- The disclosed subject matter relates to distribution of computer information and, more particularly, to distribution of computer code, data, or commands via a blockchain mechanism.
- By way of brief background, information, conventionally, can be stored electronically in data stores. As an example, one common use of a data store is to store computer programming code or source code electronically. As another example, computer commands or data can be stored electronically on a data store, e.g., a network server, data repository, etc. Computers can then receive stored data from the data store and can perform operations based, at least in part, on the received data. The information can comprise computer code, commands, or data. As an example, the information can comprise computer code to enable patching or updating of software on a device, such as but not limited to, updating firmware, patching software, initiating a state change for a state of a device, distribution of data, etc.
-
FIG. 1 is an illustration of a system that facilitates computer data distribution via a blockchain in accordance with aspects of the subject disclosure. -
FIG. 2 is a depiction of a system that facilitates computer data distribution via a blockchain node component in accordance with aspects of the subject disclosure. -
FIG. 3 illustrates a system that facilitates blockchain distribution of segmented computer data in accordance with aspects of the subject disclosure. -
FIG. 4 illustrates a system that facilitates computer data distribution via a distributed blockchain node architecture in accordance with aspects of the subject disclosure. -
FIG. 5 is a depiction of a system that facilitates computer data distribution via a blockchain comprising a plurality of block types in accordance with aspects of the subject disclosure. -
FIG. 6 is a depiction of a system that facilitates receiving computer data via a blockchain in accordance with aspects of the subject disclosure. -
FIG. 7 illustrates a method for facilitating computer data distribution via a blockchain in accordance with aspects of the subject disclosure. -
FIG. 8 illustrates a method for facilitating computer data distribution via a blockchain comprising a checkpoint block in accordance with aspects of the subject disclosure. -
FIG. 9 depicts a schematic block diagram of a sample-computing environment with which the claimed subject matter can interact. -
FIG. 10 illustrates a block diagram of a computing system operable to execute the disclosed systems and methods in accordance with an embodiment. - The subject disclosure is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject disclosure. It may be evident, however, that the subject disclosure may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the subject disclosure.
- Conventionally, information, such as computer programming code, source code, computer commands, or data, can be stored electronically in data stores, for example, the information can comprise computer code to enable patching or updating of software on a device, such as but not limited to, updating firmware, patching software, initiating a state change for a state of a device, distribution of data, etc. Computers can then receive stored data from the data store and can perform operations based, at least in part, on the received data. The data can be stored on data storage components such that the data can be received by devices from the data store, for example, data can be stored on a networked data storage component and can be received by a device via a wired or wireless network connection to the networked data storage component.
- In an aspect, storage of data can comprise storage of software patches, firmware updates, etc. For clarity and brevity, the discussion herein is generally in the context of distribution of software patches, although the disclosure is expressly not so limited, and distribution of nearly any electronic information in the manner disclosed herein is expressly within the scope of the present disclosure even where not enumerated or otherwise specifically recited. In view of the foregoing, computer code for a software patch, or simply a patch, can be stored on a data store and can be communicated to and received by a device to implement the patch. The patch can be a firmware update, a software update, an application, e.g., ‘app’, update, etc. Further as previously disclosed, the patch can comprise commands, data, code, etc., that can be consumed or used by the receiving device.
- As computing devices proliferate, the distribution of patches can become increasingly important to effective operation of these many devices. Companies generally dedicate resources to distribution of patches to keep devices associated with those companies operating in an appropriate manner, for example Brand-A smartphones can access a Brand-A operated data store to access and/or receive updates to applications executing on the Brand-A smartphone, Brand-M computers can similarly access/receive software patches via a website operated by Brand-M, etc. This illustrates that conventional distribution of patches typically occurs in a centralized manner, e.g., a company typically controls a data store (or several mirrors, copies, or iterations of the data store) to publish patches to enable updating devices by receiving the patches from the company controlled data store(s). It is not uncommon for these company controlled data stores to be heavily ‘siloed,’ e.g., storing only patches associated with company approved devices. As an example, it can be normal in conventional techniques for Brand-A to store only patches for Brand-A approved devices the Brand-A data store(s) and for Brand-M to store only patches for Brand-M approved devices the Brand-M data store(s). Where consumers can own devices from many companies, this can result in the different devices each needing to receive patches from many different data store silos. Similarly, even devices from the same company can be relegated to receiving a patch from a silo associated with a particular type, class, model, or identity of the device seeking the patch, for example, a first Brand-H device can be of a first type and a second Brand-H device can be of a second type, wherein a patch for the first type can be received from a first data store and the patch for the second type can be received from another data store even though both the first and second type device(s) are of Brand-H origin. The heterogeneous nature of the modern computing world, therefor, can result in challenges to distribution of patches or other computer data, commands, etc.
- Moreover, as the internet of things (IoT) expands, in an aspect, embodying a heterogeneous computing environment with a wide divergence in computational power, storage capacity, electrical power accessibility, etc., for devices, the IoT can present opportunities to deploy patching mechanisms that can be improvements over conventional techniques. In an aspect, a patch can be implemented in a blockchain environment. In a blockchain environment, blocks, which can hold data, can be ‘chained’ together by storing information in a block indicating the preceding block. A block can further comprise timestamp information and validation information.
- The blockchain is relied on heavily by some cryptocurrency systems, in particular for maintaining a cryptoledger associated with the cryptocurrency. In some well-known cryptoledgers, cryptocurrency transactions for a period are stored in a block that is then added to the tail of the blockchain each period, thereby extending the blockchain and enabling the transactional history of the cryptocurrency to be accessed by moving along the blocks of the blockchain. While the blockchain could be held privately, e.g., in a centralized manner, some cryptoledgers are held publically in a less centralized manner for various political, economic, and dogmatic reasons. Aspects of a less centralized blockchain, e.g., where the blockchain is copied to a plurality of blockchain access nodes, etc., include preventing the placement of illegitimate blocks on the blockchain, preventing tampering of blocks already in the blockchain, ensuring that the blockchain is accessible on the blockchain access nodes, etc. Cryptocurrency research has resulting in some accepted blockchain practices, e.g., a majority of blockchain nodes confirms a new block is valid before it is added to the blockchain (e.g., the 51% rule), blocks comprise validation features to prevent tampering with existing blocks of the blockchain (e.g., hash/Merkle trees, elliptical curve cryptography, etc.), and incentivizing blockchain access nodes to be available to process transaction (e.g., rewarding ‘miners’ to perform computational tasks that keeps the mining device active). Blockchain architectures are generally considered as able to provide independent nodes an ability to converge on a latest version of a data set, even when the nodes are run anonymously, have poor interconnectivity, are subject to operator agenda(s) such as cheating, fraud, attack, etc. Moreover, blockchains, when well designed, can be overwhelmingly difficult to alter, in regard to blocks already in the blockchain.
- A blockchain architecture can be employed to store a patch. The patch can then be received by a device via traversing the blockchain. The blockchain, in some embodiments, can be secured in a manner similar to cryptocurrency-type blockchains. In some embodiments, the blockchain can be accessible in an ad hoc manner via blockchain access nodes. In some embodiments, a device accessing the blockchain can also act as a blockchain access node. Further, some embodiments can comprise blocks having patches for heterogeneous computing devices. Moreover, blocks can comprise information comprising at least a portion of a patch, command, or data. Blocks can comprise identifier(s), which in some embodiments, can enable adaptation of access to a patch in a block. In some embodiments, a block can comprise navigation information, e.g., checkpoint information, to allow adapting traversal of a blockchain based on a criterion. Moreover, an embodiment of the disclosed subject matter can comprise some, all, or none of these aspects without departing from, and all such permutations are considered to be within, the scope of the disclosed subject matter.
- The following presents other simplified example embodiments of the disclosed subject matter in order to provide a basic understanding of some aspects of the various embodiments. This is not an extensive overview of the various embodiments. It is intended neither to identify key or critical elements of the various embodiments nor to delineate the scope of the various embodiments. Its sole purpose is to present some concepts of the disclosure in a streamlined form as a prelude to the more detailed description that is presented later.
- To the accomplishment of the foregoing and related ends, the disclosed subject matter, then, comprises one or more of the features hereinafter more fully described. The following description and the annexed drawings set forth in detail certain illustrative aspects of the subject matter. However, these aspects are indicative of but a few of the various ways in which the principles of the subject matter can be employed. Other aspects, advantages, and novel features of the disclosed subject matter will become apparent from the following detailed description when considered in conjunction with the provided drawings.
-
FIG. 1 is an illustration of asystem 100, which facilitates computer data distribution via a blockchain in accordance with aspects of the subject disclosure.System 100 can includedevice 110.Device 110 can comprise a processor and memory.Device 100 can be, for example, a computer, a smartphone, a laptop computer, a tablet computer, a vehicle computer, a computer enabled appliance, a wearable computer, a sensor device, a drone device, or nearly any other computing device, etc. In an embodiment,device 110 can be a computer enabled IoT device. In an embodiment,device 110 can be a member of a swarm of devices, e.g., a device of a group of devices exhibiting collective behavior, etc.Device 110 can comprise a blockchain genesis, seed, tail block, etc., for example, installed at creation of the device by a manufacturer. Blockchain blocks can then be added as a new head block, e.g., a block that is a most recent block of the blockchain, to form a blockchain originating in a tail block, e.g., the earliest block in the blockchain. Traversing the blockchain from the tail to head can therefore, in some embodiments, provide a sequential set of patches from oldest to newest. -
Device 110 can receive software update blockchain block (SUBB) 120.SUBB 120 can comprise a patch, e.g., code, code segment, command, data, etc.SUBB 120 can be received from a data store, not illustrated. The data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node, etc. A patch ofSUBB 120 can be employed, at least in part, bydevice 110 to perform operations. Operations can comprise updating software/firmware, altering a state ofdevice 110, update data ofdevice 110, etc. - In some embodiments,
device 110 can storeSUBB 120. In an aspect,device 110 can comprise an amount of memory allocated to storing blockchain block(s), e.g.,SUBB 120, etc. Where sufficient allocated memory is available and whereSUBB 120 is determined to satisfy a rule relating to storage ofSUBB 120,SUBB 120 can be stored bydevice 110. The rule can relate to a criterion, such as, a date or time ofSUBB 120, a size ofSUBB 120, a relevancy ofSUBB 120, a redundancy ofSUBB 120, a ranking ofSUBB 120 according to importance of the patch, version of the patch, poll of devices determined to receive the patch, etc., source ofSUBB 120, etc. In an aspect, the relevancy ofSUBB 120 todevice 110 or other devices can be determined and considered in determining storage ofSUBB 120 bydevice 110. In some embodiments,device 110 can discardSUBB 120, e.g., whereSUBB 120 is not determined to be stored, for example wheredevice 110 lacks adequate allocated memory, whereSUBB 120 does not satisfy the storage rule, etc. As an example,device 110 can discard blocks that are not relevant todevice 110, e.g., the stored blocks can all be blocks relevant todevice 110 where sufficient allocated memory is available and where other criteria are satisfied. Where another device that can be the same asdevice 110 communicates withdevice 110, the stored relevant blocks can be transferred to the other device without needing to replicate the entire blockchain, this aspect is disclosed herein as a ‘partial storing node’ or other similar terms in contrast to a ‘full storing node’ or similar term that connotes a node that stores a full blockchain. - In some embodiments,
SUBB 120 can be a block of a longer blockchain. In some embodiments,SUBB 120 can be the only block of a blockchain, e.g., a last block, etc. Further, in some embodiments,SUBB 120 can comprise an entire patch, a portion of a patch, a plurality of patches, etc. In embodiments, whereSUBB 120 comprises a portion of a patch, other software update blockchain blocks can be received bydevice 110 that can comprise other portions of the patch, wherebydevice 110 can reconstruct the patch from the portions.SUBB 120 can comprise a portion of a patch for various reasons, as an example, where a patch is large, e.g., occupies a large amount of memory, the patch can be broken into smaller segments that can each be placed in blocks of the blockchain. This can allowSUBB 120 to be correspondingly smaller in size than were it to comprise an entire patch or a larger segment of the patch. WhereSUBB 120 is smaller, it can feasibly be more readily stored on blockchain nodes that have more limited memory resources. As an example, where a patch is 8 Mb and is broken into four 2 Mb portions (ignoring data structure overhead in this example) stored across four blocks of the blockchain, then, for four devices having 5 Mb of allocated memory each, up to two blocks can be stored in each, in contrast to not being able to store the 10 Mb block in any of the four devices. As will be expanded on herein below, the devices, acting as blockchain nodes, can then make the segmented patch available to another device, for example, a device having 20 Mb of allocated storage available. This example can be illustrated as a patch for a tablet computer of 8 MB size is segmented into four 2 Mb size blocks each comprising a segment of the 8 Mb patch. The four 2 Mb size patch segment blocks can then be stored, for example in a connected wristwatch, a connected dog collar, a connected parking meter, and a connected pedometer. The example tablet computer can then receive the four 2 Mb patch segments, e.g., from the watch, the dog collar, the parking meter, and the pedometer, and reassemble the 8 Mb patch therefrom. The tablet computer can then perform operations based on the reassembled 8 Mb size patch. - This aspect can allow storage of larger patches, via segmentation, on IoT type devices that typically have more limited computing/memory resources, to allow propagation of the blockchain in a heterogeneous environment. It is noted that segmentation of a patch, e.g., code, commands, data, etc., can be employed for reasons other than device memory constraints, for example, a patch segment can be communicated faster than an entire patch to facilitate propagation of patch segments in environments where communication is limited, bursty, unreliable, etc., for example where
SUBB 120 is communicated between a fixed position device anddevice 110 as it is in motion past the fixed position device, there may be insufficient time to transmit alarger SUBB 120 in comparison to sufficient time to communicate asmaller SUBB 120. Other reasons for patch segmentation will be readily appreciated and all such examples are considered within the scope of the present disclosure even where not explicitly recited for the sake of clarity and brevity. Other examples can include, but are not limited to, limited electrical power or processing resources of a device comprising a blockchain node can limit hashing of an entire patch in comparison to hashing a patch segment, a communications modality limitation, a device density rule (higher density can favor patch segments), a load balancing rule, etc. -
FIG. 2 is a depiction of asystem 200 that can facilitate computer data distribution via a blockchain node component in accordance with aspects of the subject disclosure.System 200 can includedevice 210.Device 210 can comprise a processor and memory.Device 200 can be, for example, a computer, a smartphone, a laptop computer, a tablet computer, a vehicle computer, a computer enabled appliance, a wearable computer, a sensor device, a drone device, or nearly any other computing device, etc. In an embodiment,device 210 can be a computer enabled IoT device. In an embodiment,device 210 can be a member of a swarm of devices, e.g., a device of a group of devices exhibiting collective behavior, etc. -
Device 210 can compriseblockchain node component 240 that can store a blockchain genesis, seed, tail block, etc., for example, installed at creation of the device by a manufacturer. Blockchain blocks can then be added to a new head block to form a blockchain originating from a tail block. Traversing, in some embodiments, the blockchain from the tail to the head, or from the head to the tail, therefore, can provide a sequential set of patches viablockchain node component 240. -
Device 210 can receive SUBB 220. SUBB 220 can comprise a patch, e.g., code, code segment, command, data, etc. SUBB 220 can be received from a data store, not illustrated. The data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node component of another device, etc. A patch of SUBB 220 can be employed, at least in part, bydevice 210 to perform operations. Operations can comprise updating software/firmware, altering a state ofdevice 210, update data ofdevice 210, etc. - In some embodiments,
device 210 can store SUBB 220. In an aspect,device 210 can comprise an amount of memory allocated to storing blockchain block(s), e.g., SUBB 220, etc. Where sufficient allocated memory is available and where SUBB 220 is determined to satisfy a rule relating to storage of SUBB 220, SUBB 220 can be stored bydevice 210. The rule can relate to a criterion, such as, a date or time, size in memory, a relevancy, a redundancy, a ranking according, such as, to importance, etc., of the patch, version, number of child devices estimated to receive the patch viablockchain node component 240, etc., source, etc. In an aspect, the relevancy of SUBB 220 todevice 210 or other devices can be determined and considered in determining storage of SUBB 220 bydevice 210. In some embodiments,device 210 can discard SUBB 220. As an example,device 210 can discard blocks that are not relevant todevice 210. -
Device 210 can enable access toSUBB 230.SUBB 230 can be the same as, or similar to, SUBB 220. In some embodiments,device 210 can store SUBB 220 and allow access to SUBB 220 asSUBB 230. As such,SUBB 230 can be the same as SUBB 220. In some embodiments, a patch can be extracted from SUBB 220 and used to createSUBB 230. As such,SUBB 230 can be similar to SUBB 220. In some embodiments,SUBB 230 can be part of a side chain, e.g., whereSUBB 230 is derived from a patch extracted from SUBB 220, the patch data can be added to a block having data indicating a previous block in a side chain, sub-chain, etc. This aspect can be useful, for example, where the full blockchain comprises many blocks that are not relevant to a device type associated withdevice 210, a side chain can be formed that is more compact and has a higher density of blocks relevant to the device type ofdevice 210, such that other devices of the same or similar device type can receive, in some circumstances, the side blockchain in lieu of the full blockchain, e.g., limited memory, limited communication, a more homogeneous area of devices, etc. In these circumstances,blockchain node component 240 can act as a partial storing node rather than a full storing node. - In some embodiments, SUBB 220 can be a block of a longer blockchain. In some embodiments, SUBB 220 can be the only block of a blockchain, e.g., a last block, etc. Further, in some embodiments, SUBB 220 can comprise an entire patch, a portion of a patch, a plurality of patches, etc. In embodiments, where SUBB 220 comprises a portion of a patch, other SUBBs can be received by
device 210 that can comprise other portions of the patch, wherebydevice 210 can reconstruct the patch from the portions. In some embodiments, such as where identifier information of the patch segments enable determining that the patch is not relevant todevice 210, etc.,device 210 can refrain from reconstructing the entire patch from the patch segments received by way of one or more SUBBs including SUBB 220. Moreover, the received SUBB 220 can still be shared asSUBB 230 with, or without, reconstruction of an entire patch from patch segments bydevice 210. - In an aspect, segmentation can enable storage of larger patches on IoT type devices, typically limited computing/memory resources, or other limited memory device, to allow propagation of the blockchain in a heterogeneous environment. Segmentation of a patch, e.g., code, commands, data, etc., can be employed for reasons other than device memory constraints, for example, a patch segment can be communicated faster than an entire patch to facilitate propagation of patch segments in environments where communication is limited, bursty, unreliable, etc., for example where SUBB 220 is communicated between a user carrying a first device in one direction down a hallway and
device 210 as it is carried in the opposite direction down the hallway and passes the first device, there may be only a short time to transmit SUBB 220, typically meaning that a shorter SUBB can be more likely to fit in the limited transmission time window. Other reasons for patch segmentation are considered within the scope of the present disclosure even where not explicitly recited for the sake of clarity and brevity. Other examples can include, but are not limited to, limited electrical power or processing resources of a device comprising a blockchain node can limit hashing of an entire patch in comparison to hashing a patch segment, a communications modality limitation, a device density rule (higher density can favor patch segments), a load balancing rule, etc. -
FIG. 3 illustrates asystem 300 that facilitates blockchain distribution of segmented computer data in accordance with aspects of the subject disclosure.System 300 can includedevice - Devices 310-314 can comprise blockchain node components, e.g., 340-344, respectively, that can each store a blockchain genesis, seed, tail block, etc. Blockchain blocks can then be added as new head blocks to form blockchains originating from tail blocks. Devices 310-314 can communicate with other devices, including other devices of devices 310-314. This communication can allow devices 310-314 to share information among the devices 310-314, for example, patches extracted from SUBBs received by the respective devices can be shared with other devices including devices 310-314. Traversing a blockchain from a tail to a head, or from a head to a tail, can provide a sequential set of patches via blockchain node components, e.g., 340 and 344. Note that
non-storing node component 342 can comprise only the genesis, seed, tail block, etc., while full storing node component 340 can store a full blockchain, and partial storing node component 344 can store up to, but typically less than, a full blockchain. - Devices 310-314 can receive
SUBB device device device device SUBB 320 can be employed bydevice 310,SUBB 322 can be employed by device 310-314 via communications between devices 310-314,SUBB 325 can be employed by device 310-314 via communications between devices 310-314, etc. Operations can comprise updating software/firmware, altering a state of device 310-314, update data of device 310-314, etc. - In some embodiments, devices 310-314 can each store SUBB 320-325, either as directly communicated to device 310-314 from
device 302 or 323, or as communicated to device 310-314 as communicated from another device of devices 310-314. In an aspect, devices 310-314 can each comprise an amount of memory allocated to storing blockchain block(s), e.g., SUBBs 320-325, etc. Where sufficient allocated memory is available and where SUBBs 320-325 are determined, by blockchain node component, e.g., 340-344, to satisfy a rule relating to storage of SUBB 320-325, SUBB 320-325 can be stored by one or more of devices 310-314. Of note,non-storing node component 342 can determine that no SUBB is to be stored bydevice 312 regardless of available memory or other criterion, partial storing node component 344 can determine to store up to a full blockchain of SUBBs atdevice 314, and full storing node component 340 can determine to store a full chain of SUBBs atdevice 310 up to the allocated memory and other criteria. The rule can relate to a criterion, such as, a date or time, size in memory, a relevancy, a redundancy, a ranking according, such as, to importance, etc., of the patch, version, number of child devices estimated to receive the patch via blockchain node components, e.g., 340-344, etc. In an aspect, the relevancy of SUBB 320-325 to each of devices 310-314 or other devices can be determined and considered in determining storage of one or more of SUBB 320-325 by respective devices 310-314. In some embodiments, each of devices 310-314 can discard one or more of SUBBs 320-325. As an example,device 310 can discard block 320 where it is not relevant todevice 310,device 310 can discard block 325 where it is not relevant todevice 310,device 314 can discard each of blocks 320-325 where they are not relevant todevice 310, etc. -
Devices SUBBs 330 and 332, respectively. SUBBs 330-332 can be the same as, or similar to, at least one of SUBB 320-325. As examples, SUBB 330 can be the same as, or similar to,SUBB 320, SUBB 330 can be the same as, or similar to,SUBB 325,SUBB 332 can be the same as, or similar to,SUBB 325, etc. In some embodiments, devices 310-314 can store SUBBs 320-325 and allow access thereto. As such, SUBB 330 can be the same as one of SUBB 320-325,SUBB 332 can be the same as one of SUBB 320-325, etc. In some embodiments, a patch can be extracted from one or more of SUBBs 320-325 and used to create at least one of SUBBs 330-332. As such, SUBB 330 can be based on, or similar to, one or more of SUBBs 320-325. In some embodiments, one or more of SUBBs 330-332 can be part of one or more side chains, e.g., where SUBB 330 is derived from a patch extracted fromSUBB 320, the patch data can be added to a block having data indicating a previous block in a side chain, sub-chain, etc. This aspect can be useful, for example, where the full blockchain comprises many blocks that are not relevant to a device type associated withdevice 310, a side chain can be formed that is more compact and has a higher density of blocks relevant to the device type ofdevice 310, such that other devices of the same or similar device type can receive, in some circumstances, the side blockchain in lieu of the full blockchain, e.g., limited memory, limited communication, a more homogeneous area of devices, etc. In these circumstances, partial storing node component 344 can store some SUBBs, up to a full blockchain. Of note, devices 310-314 can communicate SUBBs with other devices 310-314, can communicate patches extracted from SUBBs 320-325, etc. As an example,device 302 can communicateSUBB 320 todevice 310, which can then communicate SUBB 330 to another device or todevice device 302 can communicateSUBB 320 todevice 310, which can then communicate a patch from SUBB 330 to another device or todevice - In some embodiments, one or more of SUBBs 320-325 can be a block of a longer blockchain. In some embodiments, one or more of SUBBs 320-325 can be an only block of a blockchain, e.g., a last block, etc. Further, in some embodiments, one or more of SUBBs 320-325 can comprise an entire patch, a portion of a patch, a plurality of patches, etc. In embodiments, where at least one of SUBBs 320-325 comprise a portion of a patch, other SUBBs, e.g., another of SUBB 320-325, can be received by a device, e.g., 310-314, that can comprise other portions of the patch, whereby the device can reconstruct the patch from the portions. In some embodiments, such as where identifier information of the patch segments enable determining that the patch is not relevant to a device, e.g., 310-314, etc., the device can refrain from reconstructing the entire patch from the patch segments received by way of one or more of SUBBs 320-325. Moreover, a received SUBB, e.g., 320-325, can still be shared as one or more of SUBBs 330-332 with, or without, reconstruction of an entire patch from received patch segments by a device, e.g., 310-314. As an example, where
SUBB 320 comprises a hash of a first patch segment,SUBB 325 can comprise a hash of a related second patch segment, such that the first and second patch segments can be decrypted from their hashes and reconstructed to form an entire patch. As another example, whereSUBB 320 comprises a hash of a first patch segment,SUBB 325 comprises a hash of a related second patch segment, anddevice 314 determines from the eitherSUBB device 314, even though the first and second patch segments can be decrypted from their hashes and reconstructed to form an entire patch,device 314 can refrain from decryption, where after partial storing node component 344 can share, but is not required to share,SUBB 320 and/or 325 with other devices, e.g., viasub 332. - In an aspect, segmentation can enable storage of larger patches on IoT type devices, typically limited computing/memory resources, or other limited memory device, to allow propagation of the blockchain in a heterogeneous environment. Segmentation of a patch, e.g., code, commands, data, etc., can be employed for reasons other than device memory constraints, for example, a patch segment can be communicated faster than an entire patch to facilitate propagation of patch segments in environments where communication is limited, bursty, unreliable, etc., for example where
SUBB 320 is communicated todevice 310 as it travels through a spotty wireless network environment, there may be only a short period to transmitSUBB 320 between wireless network drops, typically meaning that a shorter SUBB can be more likely to fit in the limited transmission time window. Other reasons for patch segmentation are considered within the scope of the present disclosure even where not explicitly recited for the sake of clarity and brevity. Other examples can include, but are not limited to, limited electrical power or processing resources of a device comprising a blockchain node can limit hashing of an entire patch in comparison to hashing a patch segment, a communications modality limitation, a device density rule (higher density can favor patch segments), a load balancing rule, etc. -
FIG. 4 illustrates asystem 400 that facilitates computer data distribution via a distributed blockchain node architecture in accordance with aspects of the subject disclosure.System 400 can include devices 404-415. Devices 404-415 can each comprise a processor and memory. Devices 404-415 can each be, for example, a computer, a smartphone, a laptop computer, a tablet computer, a vehicle computer, a computer enabled appliance, a wearable computer, a sensor device, a drone device, or nearly any other computing device, etc. In an embodiment, devices 404-415 can be computer enabled IoT devices. In an embodiment, devices 404-415 can be members of a swarm of devices, e.g., devices of a group of devices exhibiting collective behavior, etc. - Devices 404-415 can comprise blockchain node components, e.g., 406-445, respectively, that can each store a blockchain genesis, seed, tail block, etc. Blockchain blocks can then be added as new head blocks to form blockchains originating from tail blocks. Devices 404-415 can communicate with other devices, including other devices of devices 404-415. This communication can allow devices 410-414 to share information among the devices 404-415, for example, SUBBs, e.g., 420-435, received by the respective devices can be shared with other devices including devices 404-415. Traversing a blockchain, in some embodiments, from a tail to head (oldest to newest), or from head to a tail (newest to oldest), can provide a sequential set of patches via one or more blockchain node component, e.g., 406-445.
- As illustrated in
system 400,devices 412 can receiveSUBB 420 fromdevice 404 via signing masterblockchain node component 406. In an embodiment, signing masterblockchain node component 406 can be a node component associated with a source of SUBBs for inclusion on a blockchain, for example, a device manufacturer can publish a new firmware update viaSUBB 420 for dissemination via signing masterblockchain node component 406 ofdevice 404.SUBB 420 can comprise a patch, e.g., code, code segment, command, data, etc.SUBB 420 can be received from a data store ofdevice 404 via signing masterblockchain node component 406. The data stores can be comprised in a memory ofdevice 404, a storage device ofdevice 404, signing masterblockchain node component 406 ofdevice 404, etc. A patch hashed inSUBB 420 can be employed, at least in part, by adevice 412 to perform operations, e.g.,SUBB 420 can be employed bydevice 412. Similarly,devices 414 and/or 410 can employSUBB 420, and/or a patch decrypted fromSUBB 420, shared with them fromdevice 412. Operations can comprise updating software/firmware, altering a state of device 410-414, update data of device 410-414, etc. Devices 410-414 can, viablockchain node component SUBB SUBB SUBB 420. In an embodiment whereindevice SUBB SUBB 420. -
Device 411 can receiveSUBB 430,device 413 can receiveSUBB 432, anddevice 415 can receiveSUBB 434. Correspondingly,device 411 can enable access to SUBB 431,device 413 can enable access toSUBB 433, anddevice 415 can enable access toSUBB 435, viablockchain node component SUBB SUBB device SUBB SUBB 420. A patch hashed inSUBB device system 400 illustrates aspects of distributing and/or use of a blockchain. -
FIG. 5 is a depiction of asystem 500 that facilitates computer data distribution via a blockchain comprising a plurality of block types in accordance with aspects of the subject disclosure.System 500 can include SUBB head 530 that can be linked or chained toSUBB tail 536 viaSUBB 531,SUBB 532,SUBB 533,checkpoint SUBB 534,SUBB 535, etc.SUBB head 531, SUB 532-533, 535, etc.,checkpoint SUBB 534 andSUBB tail 536, collectively SUBB 530-536, can each comprise a patch, e.g., code, code segment, command, data, etc. SUBB 530-536 can represent a blockchain that facilitates computer data distribution. In some embodiments, SUBB 530-536 can be received by devices, e.g., 110, 210, 302, 303, 310-314, 404, 410-415, etc. SUBB 530-536 can be stored in device data stores that can comprise a memory of device, a storage device, a blockchain node component of a device, etc., as disclosed elsewhere herein. A patch can be hashed and comprised in SUBB 530-536 such that it can be decrypted and employed, at least in part, by a device to perform operations, e.g., SUBB 530-536 can be employed by a device. Operations can comprise updating software/firmware, altering a state of a device, update data of a device, etc. -
SUBB tail 536 can be a blockchain genesis, seed, tail block, etc. Blockchain blocks, e.g., SUBB 530-535, etc., can then be added as new head blocks to form blockchains originating from a tail block, e.g.,SUB tail 536. Traversing a blockchain from a tail to a head can provide a sequential set of patches from oldest to newest via one or more blockchain node component as disclosed hereinabove.SUBB tail 536 can comprise a timestamp, signature, nonce, null SUBB hash, Merkle root, and data values comprising an identifier and a payload, wherein the payload can be a firmware or other code segment, a command, or other data. While other payloads can be included, for the sake of clarity and brevity they are not discussed further, although all such payloads are within the scope of the present disclosure where they relate to distribution of computer data via a blockchain-type architecture. - The timestamp can represent an approximate time of creation of the block, e.g.,
SUBB tail 536. The signature can represent an authentication of the validity of the block and, in some embodiments can be the same as, or similar to, proof of work as might be found in a cryptocurrency-type blockchain block. In cryptocurrency, the proof of work is frequently a value that is easy to verify but difficult to compute, which acts as a security measure to prevent blocks from being modified. The signature can therefore be employed to validate the block in that determining the signature is sufficiently time consuming as to prevent computational systems from modifying all subsequent blocks in before new blocks are mined and exposing the illicit attempt at modification. The nonce can be a value that when hashed with the block content, e.g., payload, the result is within a determined range of values. The null SUBB hash, or previous SUBB hash in blocks other thanSUBB tail 536, can be a cryptographic hash of the previous block, however for the tail block, there is no earlier block and a null SUBB hash value can be used. The Merkle root can be a value from a hash tree and can allow verification of a hashed payload. In some embodiments, the signature and Merkle root verification can be substituted with other techniques than those explicitly disclosed herein without departing from the disclosed subject matter and those alternate techniques are not disclosed herein simply for the sake of clarity and brevity. - The identifier can enable identification of the payload. This can be valuable in a heterogeneous device environment by allowing a device to determine, based on the identifier, if the payload is relevant for the device. Relevancy can be premised on, for example, the type of device, model of the device, series of the device, age of the device, attributes of the device, brand of the device, code versions, etc. As an example, a device of Brand A can, from the identifier, determine that a payload if for a Brand A device and indicate that the payload, e.g., code, command, data, is relevant and should be received by the device. As another example, a Brand A device can determine, based on the identifier, that the payload is for a Brand A device of model AA through AV, however the Brand A device can be of model BQ and the payload can be indicated as not relevant, whereby the block can, for example, be deleted, decrypting the payload can be avoided, etc.
-
Checkpoint SUBB 534 can comprise checkpoint information as a payload. As before, the identifier can be employed to determine which devices may find the checkpoint information relevant. The checkpoint information can be based on a determination that one or more subsequent bocks of the blockchain, typically many subsequent blocks, are not relevant to devices associated with the identifier. The checkpoint information can be employed to jump ahead in the blockchain and avoid the previously identified irrelevant blocks of the blockchain. This can act as a shortcut for devices associated with the identifier of the checkpoint information. As an example, for an older device that is no longer supported by a manufacturer, new blocks can be non-existent after the end of support date, as such, a checkpoint block can be inserted into the chain comprising checkpoint information that indicates that no blocks after the checkpoint block will be relevant to the older device. Where the example older device traverse the block chain fromSUBB tail 536 tocheckpoint SUBB 534, the identifier of the checkpoint information can be deemed relevant to the older device such that the older device can be provided information that no further relevant blocks are to be found in the blockchain aftercheckpoint SUBB 534. This can enable the older device to avoid consuming resources to traverse the balance of the blockchain aftercheckpoint SUBB 534. In another example,checkpoint SUBB 534 can comprise checkpoint information that indicates that the next relevant block is several thousand blocks more recent, this information can be employed by a device to skip over these several thousand blocks, thereby avoiding the consumption of resource associated with traversing the same. In the IoT paradigm, where devices can frequently have limited computational, memory, and power resources available, the checkpoint can be a valuable improvement over having to traverse the entire blockchain by each device. - In view of the example system(s) described above, example method(s) that can be implemented in accordance with the disclosed subject matter can be better appreciated with reference to flowcharts in
FIG. 6 -FIG. 8 . For purposes of simplicity of explanation, example methods disclosed herein are presented and described as a series of acts; however, it is to be understood and appreciated that the claimed subject matter is not limited by the order of acts, as some acts may occur in different orders and/or concurrently with other acts from that shown and described herein. For example, one or more example methods disclosed herein could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, interaction diagram(s) may represent methods in accordance with the disclosed subject matter when disparate entities enact disparate portions of the methods. Furthermore, not all illustrated acts may be required to implement a described example method in accordance with the subject specification. Further yet, two or more of the disclosed example methods can be implemented in combination with each other, to accomplish one or more aspects herein described. It should be further appreciated that the example methods disclosed throughout the subject specification are capable of being stored on an article of manufacture (e.g., a computer-readable medium) to allow transporting and transferring such methods to computers for execution, and thus implementation, by a processor or for storage in a memory. -
FIG. 6 illustrates aspects of method 600 facilitating receiving computer data via a blockchain in accordance with aspects of the subject disclosure. Method 600, at 610, can comprise receiving a software update blockchain block (SUBB) from a blockchain. The SUBB can comprise a patch, e.g., code, code segment, command, data, etc. The SUBB can be received from a data store, not illustrated. The data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node, etc. A patch hashed in the SUBB, e.g., a payload, can be employed, at least in part, by a device to perform operations. Operations can comprise updating software/firmware, altering a state of the device, update data of the device, etc. - At 620, method 600 can comprise, determining a relevancy of the SUBB based on an identifier of the SUBB and a device parameter. The identifier can enable identification of the payload. This can be valuable in a heterogeneous device environment by allowing a device to determine, based on the identifier relative to a device parameter, if the payload is relevant for the device. Relevancy can be premised on a device parameter, for example, the type of device, model of the device, series of the device, age of the device, attributes of the device, brand of the device, code versions, etc. As an example, a device of Brand A can, from the identifier, determine that a payload is for a Brand A device and therefore determine that the payload, e.g., code, command, data, is relevant and should be employed by the device. As another example, a Brand B device using an operating system of type OS-B can determine, based on the identifier, that the payload is for a Brand A device using an operating system of type OS-B, however the Brand B device can determine that the payload is not relevant as it is for a different brand of device despite both brands using the same OS-B operating system, whereby the block can, for example, be deleted, decrypting the payload can be avoided, etc.
- Method 600, at 630, can comprise employing the payload of the SUBB by the device in response to determining that the SUBB is relevant to the device. At this point method 600 can end. Where the identifier and device parameter result in determining that the SUBB is relevant at 620, method 600 can, at 630, decrypt the payload and employ the code, code segment, command, data, etc., of the payload by the device.
-
FIG. 7 illustrates aspects ofmethod 700 facilitating computer data distribution via a blockchain in accordance with aspects of the subject disclosure. At 710,method 700 can comprise, receiving a SUBB from a blockchain at a device. The SUBB can comprise a patch, e.g., code, code segment, command, data, etc. The SUBB can be received from a data store, not illustrated. The data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node, etc. The SUBB can comprise a hash of a patch, e.g., a payload, which can be employed, at least in part, by a device to perform operations. Operations can comprise updating software/firmware, altering a state of the device, update data of the device, etc. - At 720,
method 700 can comprise, in response to determining the SUBB is relevant to the device, employing the payload of the SUBB by the device. Determining relevancy of the SUBB can based on an identifier of the SUBB and a device parameter. The identifier can enable identification of the payload to allow a device to determine if the payload is relevant to the device, e.g., in a heterogeneous device environment not all payloads can be relevant to all heterogeneous devices. Relevancy can be premised on, for example, a type of device, model of the device, series of the device, age of the device, attributes of the device, brand of the device, code versions, etc. As an example, a smartphone device can determine, from the identifier, that non-smartphone payloads are not relevant. As another example, a drone device in a first geographic area can determine that a payload is relevant, where the identifier is associated with drone operations in the same, or similar, geographic area, e.g., the identifier can indicate that the payload is data for use by a drone in a first swampy area, which could be irrelevant to a drone in a desert area but can be relevant to a drone in the first swamp area or a second swampy area. -
Method 700, at 730, can comprise storing a least a portion of the blockchain. The stored portion of the blockchain can comprise the SUBB. The device can then facilitate access to the stored SUBB by another device. At thispoint method 700 can end. In an aspect,method 700 enables the device to store up to the full blockchain. The stored portion of the blockchain can comprise the SUBB where the SUBB was determined to be relevant at 720. The device can then aid in distribution of the blockchain to other devices. This can result in decentralization of the blockchain, which can make the blockchain distribution of computer data more robust against a failure of any one distribution node. Moreover, where devices can employ less resource intensive communications technologies, accessing the blockchain at lower resource cost can be desirable, for example, rather than having to use a cellular link to access a centralized distribution node, a Bluetooth link to a nearby device having a copy of the blockchain stored can enable access to the blockchain with lower power consumption. Similarly, where the example blockchain can be spread by Bluetooth, devices can avoid needing a cellular radio component but still be able to get access to the blockchain when in range of another Bluetooth enabled device that has a copy of the blockchain stored thereon. For IoT devices, it can be beneficial to keep resource consumption low and streamline components, e.g., having only a Bluetooth radio rather than both a Bluetooth radio and a cellular radio, and a Wi-Fi radio, etc. -
FIG. 8 illustrates aspects ofmethod 800 facilitating computer data distribution via a blockchain in accordance with aspects of the subject disclosure. At 810,method 800 can comprise, receiving a checkpoint SUBB from a blockchain at a device. The checkpoint SUBB can comprise checkpoint information. The checkpoint SUBB can be received from a data store, not illustrated. The data store can be comprised in another device, e.g., a memory of another computing device, etc., a storage device, e.g., a network server, local data store, etc., a blockchain node, etc. The SUBB can comprise a hash of checkpoint information, e.g., a payload, which can be employed, at least in part, by a device to perform operations. Operations can comprise accessing another SUBB of the blockchain. - At 820,
method 800 can comprise, in response to determining the checkpoint SUBB is relevant to the device, employing the payload of the checkpoint SUBB by the device. Determining a relevancy of the checkpoint SUBB can based on an identifier of the checkpoint SUBB and a device parameter. The identifier can enable identification of the payload to allow a device to determine if the payload is relevant to the device. Relevancy can be premised on, for example, a type of device, model of the device, series of the device, age of the device, attributes of the device, brand of the device, code versions, etc. Employing the checkpoint SUBB payload can comprise navigating the device to another SUBB of the blockchain based on a payload of the checkpoint SUBB. This can enable the device to avoid use of resources associated with receiving and traversing blockchain blocks between the checkpoint SUBB and the other SUBB. - The checkpoint information of the checkpoint SUBB can be based on a determination that one or more subsequent bocks of the blockchain, typically many subsequent blocks, are not relevant to a device associated with the identifier. The checkpoint information can be employed to jump ahead in the blockchain and avoid the previously identified irrelevant blocks of the blockchain. This can act as a shortcut for a device associated with the identifier of the checkpoint information. This can enable the older device to avoid consuming resources to traverse the balance of the blockchain after the checkpoint SUBB up to the other SUBB. IoT devices can frequently have limited computational, memory, and power resources available, the checkpoint SUBB can be a valuable implement to constrain resource consumption by facilitating an efficient device traverse of the entire blockchain by skipping known irrelevant blocks of the blockchain.
-
Method 800, at 830, can comprise storing a least a portion of the blockchain comprising the checkpoint SUBB and the other SUBB. The device can then facilitate access to the stored portion of the blockchain by another device. At thispoint method 800 can end. In an aspect,method 800 enables the device to store up to the full blockchain. The stored portion of the blockchain can comprise the checkpoint SUBB where the checkpoint SUBB was determined to be relevant at 820. The device can then aid in distribution of the blockchain to other devices. In addition to decentralization of the blockchain, this can aid other devices by enabling them to skip known irrelevant blocks in the shared portion of the blockchain. -
FIG. 9 is a schematic block diagram of a sample-computing environment 900 with which the claimed subject matter can interact. Thesystem 900 includes one or more remote component(s) 910, which can include client-side component(s). The remote component(s) 910 can be hardware and/or software (e.g., threads, processes, computing devices). In some embodiments, remote component(s) 910 can includedevice - The
system 900 also includes one or more local component(s) 920, which can include server-side component(s). The local component(s) 920 can be hardware and/or software (e.g., threads, processes, computing devices). In some embodiments, local component(s) 920 can includedevice 210,device blockchain node component 406 that can enable access toSUBB 420 by a remote component, e.g.,device 412. Subsequently, for example,device 412 can be a local component that can enable access toSUBB 432 bydevice 413. - One possible communication between a remote component(s) 910 and a local component(s) 920 can be in the form of a data packet adapted to be transmitted between two or more computer processes. As an example, a block of a blockchain, e.g.,
SUBB system 900 includes a communication framework 940 that can be employed to facilitate communications between the remote component(s) 910 and the local component(s) 920. The remote component(s) 910 are operably connected to one or more remote data store(s) 950 that can be employed to store information on the remote component(s) 910 side of communication framework 940. Similarly, the local component(s) 920 are operably connected to one or more local data store(s) 940 that can be employed to store information on the to the local component(s) 920 side of communication framework 940. - In order to provide a context for the various aspects of the disclosed subject matter,
FIG. 10 , and the following discussion, are intended to provide a brief, general description of a suitable environment in which the various aspects of the disclosed subject matter can be implemented. While the subject matter has been described above in the general context of computer-executable instructions of a computer program that runs on a computer and/or computers, those skilled in the art will recognize that the disclosed subject matter also can be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks and/or implement particular abstract data types. - In the subject specification, terms such as “store,” “storage,” “data store,” data storage,” “database,” and substantially any other information storage component relevant to operation and functionality of a component, refer to “memory components,” or entities embodied in a “memory” or components comprising the memory. It will be appreciated that the memory components described herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory, by way of illustration, and not limitation, volatile memory 1020 (see below), non-volatile memory 1022 (see below), disk storage 1024 (see below), and memory storage 1046 (see below). Further, nonvolatile memory can be included in read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM). Additionally, the disclosed memory components of systems or methods herein are intended to comprise, without being limited to comprising, these and any other suitable types of memory.
- Moreover, it will be noted that the disclosed subject matter can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, mini-computing devices, mainframe computers, as well as personal computers, hand-held computing devices (e.g., PDA, phone, watch, tablet computers, netbook computers, . . . ), microprocessor-based or programmable consumer or industrial electronics, and the like. The illustrated aspects can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network; however, some if not all aspects of the subject disclosure can be practiced on stand-alone computers. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
-
FIG. 10 illustrates a block diagram of acomputing system 1000 operable to execute the disclosed systems and methods in accordance with an embodiment.Computer 1012, which can be employed, for example, to distribute a patch, e.g., code, segment of code, command, data, etc., can include aprocessing unit 1014, asystem memory 1016, and asystem bus 1018.Computer 1012 can also comprise, for example, ablockchain node component 240, 340-344, 406, 440-445, etc.System bus 1018 couples system components including, but not limited to,system memory 1016 toprocessing unit 1014.Processing unit 1014 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed asprocessing unit 1014. -
System bus 1018 can be any of several types of bus structure(s) including a memory bus or a memory controller, a peripheral bus or an external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics, VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), Firewire (IEEE 1194), and Small Computer Systems Interface (SCSI). -
System memory 1016 can includevolatile memory 1020 andnonvolatile memory 1022. A basic input/output system (BIOS), containing routines to transfer information between elements withincomputer 1012, such as during start-up, can be stored innonvolatile memory 1022. By way of illustration, and not limitation,nonvolatile memory 1022 can include ROM, PROM, EPROM, EEPROM, or flash memory.Volatile memory 1020 includes RAM, which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as SRAM, dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM). -
Computer 1012 can also include removable/non-removable, volatile/non-volatile computer storage media.FIG. 10 illustrates, for example,disk storage 1024.Disk storage 1024 includes, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, flash memory card, or memory stick. In addition,disk storage 1024 can include storage media separately or in combination with other storage media including, but not limited to, an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM). To facilitate connection of thedisk storage devices 1024 tosystem bus 1018, a removable or non-removable interface is typically used, such asinterface 1026. - Computing devices typically include a variety of media, which can include computer-readable storage media or communications media, which two terms are used herein differently from one another as follows.
- Computer-readable storage media can be any available storage media that can be accessed by the computer and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable storage media can be implemented in connection with any method or technology for storage of information such as computer-readable instructions, program modules, structured data, or unstructured data. Computer-readable storage media can include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other tangible media which can be used to store desired information. In this regard, the term “tangible” herein as may be applied to storage, memory or computer-readable media, is to be understood to exclude only propagating intangible signals per se as a modifier and does not relinquish coverage of all standard storage, memory or computer-readable media that are not only propagating intangible signals per se. In an aspect, tangible media can include non-transitory media wherein the term “non-transitory” herein as may be applied to storage, memory or computer-readable media, is to be understood to exclude only propagating transitory signals per se as a modifier and does not relinquish coverage of all standard storage, memory or computer-readable media that are not only propagating transitory signals per se. Computer-readable storage media can be accessed by one or more local or remote computing devices, e.g., via access requests, queries or other data retrieval protocols, for a variety of operations with respect to the information stored by the medium.
- Communications media typically embody computer-readable instructions, data structures, program modules or other structured or unstructured data in a data signal such as a modulated data signal, e.g., a carrier wave or other transport mechanism, and includes any information delivery or transport media. The term “modulated data signal” or signals refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in one or more signals. By way of example, and not limitation, communication media include wired media, such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
- It can be noted that
FIG. 10 describes software that acts as an intermediary between users and computer resources described insuitable operating environment 1000. Such software includes anoperating system 1028.Operating system 1028, which can be stored ondisk storage 1024, acts to control and allocate resources ofcomputer system 1012.System applications 1040 take advantage of the management of resources byoperating system 1028 throughprogram modules 1042 andprogram data 1044 stored either insystem memory 1016 or ondisk storage 1024. It is to be noted that the disclosed subject matter can be implemented with various operating systems or combinations of operating systems. - A user can enter commands or information into
computer 1012 through input device(s) 1046. As an example, a developer can submit a block comprising a hash of a patch to signing masterblockchain node component 406 for distribution to other devices via a blockchain architecture. The submission, for example, can be by way of a user interface embodied in a touch sensitive display panel allowing a developer to interact withcomputer 1012 as part of appending the block onto the blockchain.Input devices 1046 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, cell phone, smartphone, tablet computer, etc. These and other input devices connect toprocessing unit 1014 throughsystem bus 1018 by way of interface port(s) 1048. Interface port(s) 1048 include, for example, a serial port, a parallel port, a game port, a universal serial bus (USB), an infrared port, a Bluetooth port, an IP port, or a logical port associated with a wireless service, etc. Output device(s) 1040 use some of the same type of ports as input device(s) 1046. - Thus, for example, a USB port can be used to provide input to
computer 1012 and to output information fromcomputer 1012 to anoutput device 1040.Output adapter 1042 is provided to illustrate that there are someoutput devices 1040 like monitors, speakers, and printers, amongother output devices 1040, which use special adapters.Output adapters 1042 include, by way of illustration and not limitation, video and sound cards that provide means of connection betweenoutput device 1040 andsystem bus 1018. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1044. -
Computer 1012 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1044. Remote computer(s) 1044 can be a personal computer, a server, a router, a network PC, cloud storage, cloud service, a workstation, a microprocessor based appliance, a peer device, or other common network node and the like, and typically includes many or all of the elements described relative tocomputer 1012. - For purposes of brevity, only a
memory storage device 1046 is illustrated with remote computer(s) 1044. Remote computer(s) 1044 is logically connected tocomputer 1012 through anetwork interface 1048 and then physically connected by way ofcommunication connection 1050.Network interface 1048 encompasses wire and/or wireless communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like. WAN technologies include, but are not limited to, point-to-point links, circuit-switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL). As noted below, wireless technologies may be used in addition to or in place of the foregoing. - Communication connection(s) 1050 refer(s) to hardware/software employed to connect
network interface 1048 tobus 1018. Whilecommunication connection 1050 is shown for illustrative clarity insidecomputer 1012, it can also be external tocomputer 1012. The hardware/software for connection to networkinterface 1048 can include, for example, internal and external technologies such as modems, including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards. - The above description of illustrated embodiments of the subject disclosure, including what is described in the Abstract, is not intended to be exhaustive or to limit the disclosed embodiments to the precise forms disclosed. While specific embodiments and examples are described herein for illustrative purposes, various modifications are possible that are considered within the scope of such embodiments and examples, as those skilled in the relevant art can recognize.
- In this regard, while the disclosed subject matter has been described in connection with various embodiments and corresponding Figures, where applicable, it is to be understood that other similar embodiments can be used or modifications and additions can be made to the described embodiments for performing the same, similar, alternative, or substitute function of the disclosed subject matter without deviating therefrom. Therefore, the disclosed subject matter should not be limited to any single embodiment described herein, but rather should be construed in breadth and scope in accordance with the appended claims below.
- As it employed in the subject specification, the term “processor” can refer to substantially any computing processing unit or device comprising, but not limited to comprising, single-core processors; single-processors with software multithread execution capability; multi-core processors; multi-core processors with software multithread execution capability; multi-core processors with hardware multithread technology; parallel platforms; and parallel platforms with distributed shared memory. Additionally, a processor can refer to an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Processors can exploit nano-scale architectures such as, but not limited to, molecular and quantum-dot based transistors, switches and gates, in order to optimize space usage or enhance performance of user equipment. A processor may also be implemented as a combination of computing processing units.
- In the subject specification, terms such as “store,” “storage,” “data store,” data storage,” “database,” and substantially any other information storage component relevant to operation and functionality of a component, refer to “memory components,” or entities embodied in a “memory” or components comprising the memory. It will be appreciated that the memory components described herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory.
- As used in this application, the terms “component,” “system,” “platform,” “layer,” “selector,” “interface,” and the like are intended to refer to a computer-related entity or an entity related to an operational apparatus with one or more specific functionalities, wherein the entity can be either hardware, a combination of hardware and software, software, or software in execution. As an example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration and not limitation, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry, which is operated by a software or firmware application executed by a processor, wherein the processor can be internal or external to the apparatus and executes at least a part of the software or firmware application. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, the electronic components can include a processor therein to execute software or firmware that confers at least in part the functionality of the electronic components.
- In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. Moreover, articles “a” and “an” as used in the subject specification and annexed drawings should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
- Furthermore, the terms “user,” “subscriber,” “customer,” “consumer,” “prosumer,” “agent,” and the like are employed interchangeably throughout the subject specification, unless context warrants particular distinction(s) among the terms. It should be appreciated that such terms can refer to human entities or automated components (e.g., supported through artificial intelligence, as through a capacity to make inferences based on complex mathematical formalisms), that can provide simulated vision, sound recognition and so forth.
- What has been described above includes examples of systems and methods illustrative of the disclosed subject matter. It is, of course, not possible to describe every combination of components or methods herein. One of ordinary skill in the art may recognize that many further combinations and permutations of the claimed subject matter are possible. Furthermore, to the extent that the terms “includes,” “has,” “possesses,” and the like are used in the detailed description, claims, appendices and drawings such terms are intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.
Claims (20)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/219,261 US20170031676A1 (en) | 2015-07-27 | 2016-07-25 | Blockchain computer data distribution |
US16/701,214 US10983781B2 (en) | 2015-07-27 | 2019-12-03 | Blockchain computer data distribution |
US17/215,808 US11599350B2 (en) | 2015-07-27 | 2021-03-29 | Blockchain computer data distribution |
US18/104,380 US20230185565A1 (en) | 2015-07-27 | 2023-02-01 | Blockchain Computer Data Distribution |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562197541P | 2015-07-27 | 2015-07-27 | |
US15/219,261 US20170031676A1 (en) | 2015-07-27 | 2016-07-25 | Blockchain computer data distribution |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/701,214 Continuation US10983781B2 (en) | 2015-07-27 | 2019-12-03 | Blockchain computer data distribution |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170031676A1 true US20170031676A1 (en) | 2017-02-02 |
Family
ID=57886003
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/219,261 Abandoned US20170031676A1 (en) | 2015-07-27 | 2016-07-25 | Blockchain computer data distribution |
US16/701,214 Active 2036-07-27 US10983781B2 (en) | 2015-07-27 | 2019-12-03 | Blockchain computer data distribution |
US17/215,808 Active 2036-12-17 US11599350B2 (en) | 2015-07-27 | 2021-03-29 | Blockchain computer data distribution |
US18/104,380 Pending US20230185565A1 (en) | 2015-07-27 | 2023-02-01 | Blockchain Computer Data Distribution |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/701,214 Active 2036-07-27 US10983781B2 (en) | 2015-07-27 | 2019-12-03 | Blockchain computer data distribution |
US17/215,808 Active 2036-12-17 US11599350B2 (en) | 2015-07-27 | 2021-03-29 | Blockchain computer data distribution |
US18/104,380 Pending US20230185565A1 (en) | 2015-07-27 | 2023-02-01 | Blockchain Computer Data Distribution |
Country Status (1)
Country | Link |
---|---|
US (4) | US20170031676A1 (en) |
Cited By (167)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170134161A1 (en) * | 2015-11-06 | 2017-05-11 | Cable Television Laboratories, Inc | Blockchaining for media distribution |
CN107395659A (en) * | 2017-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | A kind of method and device of service handling and common recognition |
US20170346907A1 (en) * | 2016-05-26 | 2017-11-30 | International Business Machines Corporation | Coordinating the use of independent radio receivers associated with a single transmitter |
US20180019867A1 (en) * | 2016-07-15 | 2018-01-18 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
CN107943833A (en) * | 2017-10-25 | 2018-04-20 | 华南农业大学 | A kind of storage of non-stop layer distributed document and search method based on block chain |
US9959065B2 (en) * | 2016-05-23 | 2018-05-01 | Accenture Global Solutions Limited | Hybrid blockchain |
US20180121662A1 (en) * | 2016-11-01 | 2018-05-03 | Bruce A Pelton | Integrated Building Management Sensor System |
US20180137457A1 (en) * | 2016-11-16 | 2018-05-17 | Sap Se | Monitoring inventory based on iot device data |
US20180145836A1 (en) * | 2016-11-18 | 2018-05-24 | Intel Corporation | Technology for secure partitioning and updating of a distributed digital ledger |
US10013246B2 (en) * | 2016-12-03 | 2018-07-03 | Dell Products, Lp | Distributed information handling systems and methods for automatic object code replacement and patching |
WO2018126837A1 (en) * | 2017-01-03 | 2018-07-12 | 华为技术有限公司 | Blockchain-based data processing method, device and system |
US10022613B2 (en) | 2016-05-02 | 2018-07-17 | Bao Tran | Smart device |
US20180225194A1 (en) * | 2016-05-16 | 2018-08-09 | Jpmorgan Chase Bank, N.A. | Method and system for implementing an automation software testing and packaging framework with entitlements |
US10046228B2 (en) | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
WO2018170462A1 (en) | 2017-03-16 | 2018-09-20 | Vector Launch Inc. | Distributed blockchain data management in a satellite environment |
EP3379447A1 (en) * | 2017-03-22 | 2018-09-26 | Siemens Aktiengesellschaft | Method and device for tamper-proof storing of information relating to object-specific measures |
JP2018152050A (en) * | 2017-03-10 | 2018-09-27 | セールスフォース ドット コム インコーポレイティッド | Block chain version control system |
CN108650281A (en) * | 2018-02-28 | 2018-10-12 | 努比亚技术有限公司 | A kind of data managing method, device and computer readable storage medium |
CN108718344A (en) * | 2018-06-11 | 2018-10-30 | 成都谛听科技股份有限公司 | A kind of electric network data storage method and distributed power grid data-storage system |
WO2018214833A1 (en) * | 2017-05-22 | 2018-11-29 | 阿里巴巴集团控股有限公司 | Service execution method and device |
CN108965259A (en) * | 2018-06-21 | 2018-12-07 | 佛山科学技术学院 | A kind of discovery of block chain malicious node and partition method and device |
WO2018232493A1 (en) * | 2017-06-24 | 2018-12-27 | Zeu Crypto Networks Inc. | A network of doubly-chained blockchains capable of cross-chain transactions |
US10169614B2 (en) * | 2016-11-17 | 2019-01-01 | International Business Machines Corporation | Container update system |
CN109224451A (en) * | 2018-09-11 | 2019-01-18 | 北京云派网络科技有限公司 | Development of games method, equipment and storage medium based on block chain subchain |
CN109274754A (en) * | 2018-10-11 | 2019-01-25 | 上海保险交易所股份有限公司 | For the method for synchrodata, equipment and storage medium in block chain network |
EP3445017A1 (en) * | 2017-08-16 | 2019-02-20 | Veoneer Sweden AB | A method relating to a motor vehicle driver assistance system |
WO2019055290A1 (en) * | 2017-09-12 | 2019-03-21 | Northwestern University | Blockchain distribution network |
US10251053B1 (en) * | 2017-08-02 | 2019-04-02 | Sprint Communications Company L.P. | Embedded subscriber identity module (eSIM) implementation on a wireless communication device using distributed ledger technology (DLT) |
US10250708B1 (en) * | 2017-12-26 | 2019-04-02 | Akamai Technologies, Inc. | High performance distributed system of record |
US10257206B2 (en) * | 2016-12-21 | 2019-04-09 | International Business Machines Corporation | Monitoring actions performed by a network of peer devices using a blockchain |
WO2019072670A1 (en) | 2017-10-09 | 2019-04-18 | Koninklijke Kpn N.V. | Blockchain with transaction cancellation |
US10268817B1 (en) | 2018-10-05 | 2019-04-23 | Capital One Services, Llc | Methods, mediums, and systems for establishing and using security questions |
EP3474209A1 (en) | 2017-10-19 | 2019-04-24 | Koninklijke KPN N.V. | Storing blockchain private keys in a sim card |
WO2019077126A1 (en) | 2017-10-20 | 2019-04-25 | Koninklijke Kpn N.V. | Primary and secondary blockchain device |
US10291408B2 (en) * | 2016-12-23 | 2019-05-14 | Amazon Technologies, Inc. | Generation of Merkle trees as proof-of-work |
US10296248B2 (en) | 2017-09-01 | 2019-05-21 | Accenture Global Solutions Limited | Turn-control rewritable blockchain |
US20190156336A1 (en) * | 2017-11-21 | 2019-05-23 | Wipro Limited | System and method to validate blockchain transactions in a distributed ledger network |
US20190156332A1 (en) * | 2017-11-17 | 2019-05-23 | International Business Machines Corporation | Optimization of high volume transaction performance on a blockchain |
WO2019113308A1 (en) * | 2017-12-05 | 2019-06-13 | Franchitti Jean Claude | Active adaptation of networked compute devices using vetted reusable software components |
EP3499789A1 (en) | 2017-12-18 | 2019-06-19 | Koninklijke KPN N.V. | Primary and secondary blockchain device |
US20190197130A1 (en) * | 2017-12-21 | 2019-06-27 | Microsoft Technology Licensing, Llc | Ensuring consistency in distributed incremental content publishing |
US20190207748A1 (en) * | 2017-12-29 | 2019-07-04 | Seagate Technology Llc | Blockchain storage device |
US10367645B2 (en) * | 2016-10-26 | 2019-07-30 | International Business Machines Corporation | Proof-of-work for smart contracts on a blockchain |
CN110069295A (en) * | 2019-05-06 | 2019-07-30 | 百度在线网络技术(北京)有限公司 | Block chain processing method, device, equipment and medium |
CN110086856A (en) * | 2019-04-01 | 2019-08-02 | 深圳前海达闼云端智能科技有限公司 | Control method and device of block chain node, storage medium and electronic equipment |
WO2019148248A1 (en) * | 2018-02-02 | 2019-08-08 | Varughese Ian Arvind | Personal record repository arrangement and method for incentivised data analytics |
WO2019133621A3 (en) * | 2017-12-26 | 2019-08-08 | Akamai Technologies, Inc. | High performance distributed system of record with distributed random oracle |
WO2019156693A1 (en) * | 2018-02-09 | 2019-08-15 | Vector Launch Inc. | Distributed storage management in a satellite environment |
US10388039B2 (en) | 2017-05-31 | 2019-08-20 | International Business Machines Corporation | Accelerating data-driven scientific discovery |
US10437585B2 (en) | 2015-10-23 | 2019-10-08 | Oracle International Corporation | Managing highly scalable continuous delivery pipelines |
US10438170B2 (en) * | 2017-01-05 | 2019-10-08 | International Business Machines Corporation | Blockchain for program code credit and programmer contribution in a collective |
CN110322350A (en) * | 2019-06-25 | 2019-10-11 | 北京众享比特科技有限公司 | Cut method, apparatus, equipment and the storage medium of the common recognition hollow block of network |
US10460289B2 (en) * | 2016-11-30 | 2019-10-29 | International Business Machines Corporation | Auditing certified blockchain checkpoints |
WO2019207019A1 (en) * | 2018-04-25 | 2019-10-31 | Senvion Gmbh | Method for operating a wind turbine, wind turbine and computer program product |
EP3575953A1 (en) * | 2018-05-31 | 2019-12-04 | Nokia Solutions and Networks Oy | A blockchain network agent for verifying and accepting patch requests from a patch initiator and method thereof |
US20190372985A1 (en) * | 2018-05-30 | 2019-12-05 | International Business Machines Corporation | Sensitive information accessibility in blockchain |
CN110582747A (en) * | 2017-05-05 | 2019-12-17 | 国际商业机器公司 | Block chain for open scientific research |
US10511445B1 (en) | 2017-01-05 | 2019-12-17 | Amazon Technologies, Inc. | Signature compression for hash-based signature schemes |
EP3582102A1 (en) * | 2018-06-14 | 2019-12-18 | Honeywell International Inc. | System and method for installing loadable software airplane parts (lsap) of a set of certified orchestrated procedures using a blockchain network |
WO2019241359A1 (en) * | 2018-06-13 | 2019-12-19 | Dynamic Blockchain, Inc. | Blockchain distributed access, storage and transport |
WO2019245167A1 (en) * | 2018-06-14 | 2019-12-26 | 삼성전자 주식회사 | Swarm control apparatus and method using dynamic rule-based blockchain |
WO2019245833A1 (en) * | 2018-06-19 | 2019-12-26 | Cannagri Blockchain, Inc | A method, apparatus and system for production management |
WO2020000708A1 (en) * | 2018-06-29 | 2020-01-02 | 北京金山安全软件有限公司 | Blockchain node synchronization method and device using trust mechanism |
US10530859B1 (en) * | 2016-11-28 | 2020-01-07 | EMC IP Holding Company LLC | Blockchain functionalities in data storage system |
US10536265B2 (en) * | 2016-11-24 | 2020-01-14 | Alibaba Group Holding Limited | Method, system and apparatus for data storage and data access |
US20200019706A1 (en) * | 2018-07-10 | 2020-01-16 | International Business Machines Corporation | Blockchain technique for agile software development framework |
CN110750591A (en) * | 2018-07-04 | 2020-02-04 | 全球智能股份有限公司 | Artificial intelligence knowledge management system and method for forming distributed records by using same |
CN110798331A (en) * | 2018-08-02 | 2020-02-14 | 华为技术有限公司 | Equipment upgrading method and device |
US10567393B2 (en) | 2018-03-16 | 2020-02-18 | Vector Launch Inc. | Distributed blockchain data management in a satellite environment |
TWI685767B (en) * | 2018-06-07 | 2020-02-21 | 艾維克科技股份有限公司 | Decentralized software information creation system and method |
US20200076571A1 (en) * | 2018-08-29 | 2020-03-05 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
CN110915188A (en) * | 2017-06-30 | 2020-03-24 | 区块链控股有限公司 | Probabilistic relaying for efficient propagation in block-chain networks |
US10608824B1 (en) | 2017-01-09 | 2020-03-31 | Amazon Technologies, Inc. | Merkle signature scheme tree expansion |
WO2020072659A1 (en) * | 2018-10-02 | 2020-04-09 | Mutualink, Inc. | Consensus-based voting for network member identification employing blockchain-based identity signature mechanisms |
US10630769B2 (en) | 2017-12-26 | 2020-04-21 | Akamai Technologies, Inc. | Distributed system of record transaction receipt handling in an overlay network |
US10649953B2 (en) * | 2018-05-31 | 2020-05-12 | Alibaba Group Holding Limited | Blockchain-based data migration method and apparatus |
US10659473B2 (en) * | 2017-11-09 | 2020-05-19 | Nokia Solutions And Networks Oy | Method and apparatus for blockchain powered integrity protection system |
WO2020100012A1 (en) | 2018-11-13 | 2020-05-22 | Schur Patrick | System and method for providing an intelligent operating interface and intelligent personal assistant as a service on a crypto secure social media and cross bridge service with continuous prosumer validation based on i-operant tags, i-bubble tags, demojis and demoticons |
CN111274318A (en) * | 2020-01-16 | 2020-06-12 | 杭州趣链科技有限公司 | Block chain state data storage and rollback method, equipment and storage medium |
WO2020139965A1 (en) * | 2018-12-27 | 2020-07-02 | Paypal, Inc. | Blockchain management system |
WO2020139190A1 (en) * | 2018-12-28 | 2020-07-02 | The Flowchain Foundation Limited | Hybrid blockchain architecture with computing pool |
US10713737B1 (en) * | 2019-06-25 | 2020-07-14 | Scientia Potentia Est, LLC | Use of blockchain-based distributed ledger to reference construction metadata and to use smart contracts for a construction project |
WO2020157369A1 (en) * | 2019-01-30 | 2020-08-06 | Nokia Solutions And Networks Oy | Remote blockchain network agent for verifying and accepting patch requests from a patch initiator and method thereof |
US10749959B2 (en) | 2018-02-09 | 2020-08-18 | Lockheed Martin Corporation | Distributed storage management in a spaceborne or airborne environment |
US10747780B2 (en) * | 2017-02-17 | 2020-08-18 | Alibaba Group Holding Limited | Blockchain-based data processing method and device |
US10771384B2 (en) * | 2018-08-17 | 2020-09-08 | Tyson Trautmann | Routing based blockchain |
US10785232B2 (en) * | 2018-02-27 | 2020-09-22 | Alibaba Group Holding Limited | Method, apparatus, system, and electronic device for cross-blockchain interaction |
US10819501B2 (en) * | 2017-05-23 | 2020-10-27 | Centurylink Intellectual Property Llc | Validating one or more blockchains without ledger limitations |
US10826705B2 (en) * | 2018-12-13 | 2020-11-03 | International Business Machines Corporation | Compact state database system |
CN111897498A (en) * | 2018-07-27 | 2020-11-06 | 创新先进技术有限公司 | Multi-level storage method and device for block chain data |
US10841237B2 (en) * | 2018-04-23 | 2020-11-17 | EMC IP Holding Company LLC | Decentralized data management across highly distributed systems |
US10838846B1 (en) * | 2016-05-16 | 2020-11-17 | Jpmorgan Chase Bank, N.A. | Method and system for implementing an automation software testing and packaging framework |
US20200389537A1 (en) * | 2019-06-07 | 2020-12-10 | Microsoft Technology Licensing, Llc | Subscription to edits of blockchain transaction |
US10868865B2 (en) * | 2017-11-20 | 2020-12-15 | Moshe Shadmon | System and apparatus to manage data using a peer-to-peer network and the blockchain |
US10873625B2 (en) * | 2018-02-26 | 2020-12-22 | International Business Machines Corpora ! Ion | Service management for the infrastructure of blockchain networks |
US10891326B2 (en) | 2017-01-05 | 2021-01-12 | International Business Machines Corporation | Representation of a data analysis using a flow graph |
US10901957B2 (en) | 2018-08-29 | 2021-01-26 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US20210035231A1 (en) * | 2019-06-25 | 2021-02-04 | Scientia Potentia Est, LLC. | System for management of management of insurance risk and insurance events |
US10931439B2 (en) | 2017-09-29 | 2021-02-23 | Advanced New Technologies Co., Ltd. | Data storage method, data query method and apparatuses |
US10936302B2 (en) | 2019-06-07 | 2021-03-02 | Volvo Car Corporation | Updating sub-systems of a device using blockchain |
US10942912B1 (en) * | 2016-06-24 | 2021-03-09 | Amazon Technologies, Inc. | Chain logging using key-value data storage |
CN112532753A (en) * | 2021-02-09 | 2021-03-19 | 腾讯科技(深圳)有限公司 | Data synchronization method, device, medium and electronic equipment of block chain system |
US20210110342A1 (en) * | 2019-06-25 | 2021-04-15 | Scientia Potentia Est., LLC. | System for verification and management of paired assets related applications |
US10997150B2 (en) | 2018-05-15 | 2021-05-04 | International Business Machines Corporation | Configuration drift prevention across multiple systems using blockchain |
US11018850B2 (en) | 2017-12-26 | 2021-05-25 | Akamai Technologies, Inc. | Concurrent transaction processing in a high performance distributed system of record |
US11044104B2 (en) | 2018-09-05 | 2021-06-22 | International Business Machines Corporation | Data certification as a service powered by permissioned blockchain network |
US20210209483A1 (en) * | 2018-06-14 | 2021-07-08 | Samsung Electronics Co., Ltd. | Swarm control apparatus and method using dynamic rule-based blockchain |
US20210258145A1 (en) * | 2018-12-19 | 2021-08-19 | Verizon Media Inc. | Blockchain compression using summary and padding blocks |
US20210304155A1 (en) * | 2019-06-25 | 2021-09-30 | Scientia Potentia Est., LLC | System for verification and management of paired assets associated with a structure |
US11153091B2 (en) * | 2016-03-30 | 2021-10-19 | British Telecommunications Public Limited Company | Untrusted code distribution |
US20210326328A1 (en) * | 2019-04-04 | 2021-10-21 | Advanced New Technologies Co., Ltd. | Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger |
US11157622B2 (en) * | 2018-07-10 | 2021-10-26 | International Business Machines Corporation | Blockchain technique for agile software development framework |
US11157295B2 (en) | 2018-01-02 | 2021-10-26 | Patrick Schur | System and method for providing intelligent operant operating interface and intelligent personal assistant as a service on a crypto secure social media and cross bridge service with continuous prosumer validation based on i-operant+198 tags, i-bubble+198 tags, demojis+198 and demoticons+198 |
US11165827B2 (en) | 2018-10-30 | 2021-11-02 | International Business Machines Corporation | Suspending communication to/from non-compliant servers through a firewall |
US11201746B2 (en) | 2019-08-01 | 2021-12-14 | Accenture Global Solutions Limited | Blockchain access control system |
US11206272B2 (en) * | 2016-09-30 | 2021-12-21 | Endress+Hauser Process Solutions Ag | System and method for determining or monitoring a process variable in an automation plant |
US11216781B2 (en) * | 2019-06-25 | 2022-01-04 | Scientia Potentia Est., LLC | System for management and verification of code compliance |
US11216823B2 (en) * | 2019-06-25 | 2022-01-04 | Scientia Potentia Est, LLC. | System for management of warranty information for projects and materials |
US11227282B2 (en) * | 2018-08-20 | 2022-01-18 | Probloch LLC | Time-bounded activity chains with multiple authenticated agent participation bound by distributed single-source-of-truth networks that can enforce automated value transfer |
US20220019901A1 (en) * | 2020-07-20 | 2022-01-20 | International Business Machines Corporation | Managing distributed ledger storage space |
US11232523B2 (en) | 2018-01-02 | 2022-01-25 | Patrick Schur | System and method for providing an intelligent operating interface and intelligent personal assistant as a service on a crypto secure social media and cross bridge service with continuous prosumer validation based on i-operant tags, i-bubble tags, demojis and demoticons |
US11232652B2 (en) * | 2019-06-25 | 2022-01-25 | Scientia Potentia Est, LLC. | System for management of verification of project commencement and completion |
US11251937B2 (en) * | 2018-01-21 | 2022-02-15 | CipherTrace, Inc. | Distributed security mechanism for blockchains and distributed ledgers |
US11249982B2 (en) * | 2018-01-19 | 2022-02-15 | Acronis International Gmbh | Blockchain-based verification of machine learning |
US11256799B2 (en) | 2017-08-29 | 2022-02-22 | Seagate Technology Llc | Device lifecycle distributed ledger |
US11265217B2 (en) | 2019-05-30 | 2022-03-01 | Hewlett Packard Enterprise Development Lp | Distributed ledger for configuration synchronization across groups of network devices |
US11281450B2 (en) | 2020-06-23 | 2022-03-22 | Toyota Motor North America, Inc. | Secure transport software update |
US11283597B2 (en) * | 2017-11-22 | 2022-03-22 | International Business Machines Corporation | Blockchain technology |
WO2022058124A1 (en) * | 2020-09-21 | 2022-03-24 | Nchain Licensing Ag | Blokchain-based system and method for publishing an operating system |
US11288052B2 (en) | 2019-11-21 | 2022-03-29 | General Electric Company | Devices, systems, and methods for providing on-demand engine software using a distributed ledger |
US11288308B2 (en) * | 2019-06-25 | 2022-03-29 | Scientia Potentia Est., LLC | System for a verifiable physical object with a digital representation and related applications |
US11288761B2 (en) * | 2019-06-25 | 2022-03-29 | Scientia Potentia Est., LLC | Decentralized system for verifying participants to an activity |
US20220114600A1 (en) * | 2020-03-05 | 2022-04-14 | Scientia Potentia Est., LLC | System for verification and management for non-fungible tokens |
US11308194B2 (en) | 2018-10-31 | 2022-04-19 | Seagate Technology Llc | Monitoring device components using distributed ledger |
US11307848B2 (en) * | 2019-07-01 | 2022-04-19 | Bank Of America Corporation | System for electronic integration and deployment of computer code in a code development network |
US11334439B2 (en) | 2018-08-29 | 2022-05-17 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US20220188821A1 (en) * | 2019-06-25 | 2022-06-16 | Scientia Potentia Est., LLC | Immutable ledger digital physical asset audit platform |
US11372980B2 (en) * | 2019-06-14 | 2022-06-28 | Netiq Corporation | Blockchains for software component vulnerability databases |
US11386498B1 (en) * | 2017-09-06 | 2022-07-12 | State Farm Mutual Automobile Insurance Company | Using historical data for subrogation on a distributed ledger |
US11416942B1 (en) | 2017-09-06 | 2022-08-16 | State Farm Mutual Automobile Insurance Company | Using a distributed ledger to determine fault in subrogation |
US11416475B2 (en) * | 2018-10-19 | 2022-08-16 | Adobe Inc. | Block quantity reduction in distributed ledgers |
US11423360B2 (en) * | 2019-06-25 | 2022-08-23 | Scientia Potentia Est, LLC. | Digital asset system for management of projects and materials |
US11438175B2 (en) | 2020-12-29 | 2022-09-06 | CipherTrace, Inc. | Systems and methods for correlating cryptographic addresses between blockchain networks |
US11438139B2 (en) * | 2018-02-07 | 2022-09-06 | Raouf Boutaba | Blockchain based secure naming and update verification |
US11461245B2 (en) | 2017-11-16 | 2022-10-04 | Accenture Global Solutions Limited | Blockchain operation stack for rewritable blockchain |
US11482325B2 (en) * | 2019-06-25 | 2022-10-25 | Scientia Potentia Est., LC | System for verification and management of medical objects |
WO2022222527A1 (en) * | 2021-04-21 | 2022-10-27 | 湖南天河国云科技有限公司 | Blockchain-based decentralized file system rebalancing method |
US11507929B2 (en) | 2018-11-09 | 2022-11-22 | Visa International Service Association | Digital fiat currency |
US20220374418A1 (en) * | 2021-05-19 | 2022-11-24 | Micro Focus Llc | Blockchain structure for efficient searching |
US11528611B2 (en) * | 2018-03-14 | 2022-12-13 | Rose Margaret Smith | Method and system for IoT code and configuration using smart contracts |
USRE49334E1 (en) | 2005-10-04 | 2022-12-13 | Hoffberg Family Trust 2 | Multifactorial optimization system and method |
EP3949251A4 (en) * | 2019-03-25 | 2022-12-21 | Micron Technology, Inc. | Local ledger block chain for secure updates |
US11538063B2 (en) | 2018-09-12 | 2022-12-27 | Samsung Electronics Co., Ltd. | Online fraud prevention and detection based on distributed system |
US11544249B2 (en) * | 2018-11-27 | 2023-01-03 | International Business Machines Corporation | Reducing signature verifications of database entries |
US11544014B2 (en) | 2021-01-28 | 2023-01-03 | Kyocera Document Solutions Inc. | Printing system and device for processing transactions in a distributed ledger |
US11546373B2 (en) | 2018-11-20 | 2023-01-03 | CipherTrace, Inc. | Cryptocurrency based malware and ransomware detection systems and methods |
US11593888B1 (en) | 2017-09-06 | 2023-02-28 | State Farm Mutual Automobile Insurance Company | Evidence oracles |
US20230073720A1 (en) * | 2019-06-25 | 2023-03-09 | Scientia Potentia Est II, LLC | System for management and tracking of patient encounters |
US11606190B2 (en) | 2017-12-26 | 2023-03-14 | Akamai Technologies, Inc. | High performance distributed system of record with cryptographic service support |
US11616638B2 (en) | 2018-12-19 | 2023-03-28 | Verizon Patent And Licensing Inc. | Blockchain ledger growth management |
US11675577B2 (en) * | 2020-03-02 | 2023-06-13 | Chainstack Pte. Ltd. | Systems and methods of orchestrating nodes in a blockchain network |
US11750700B2 (en) | 2018-10-24 | 2023-09-05 | Samsung Electronics Co., Ltd. | Method, device, computer-readable medium, and system for managing transactions |
US11836718B2 (en) | 2018-05-31 | 2023-12-05 | CipherTrace, Inc. | Systems and methods for crypto currency automated transaction flow detection |
US11880670B2 (en) * | 2020-06-23 | 2024-01-23 | Toyota Motor North America, Inc. | Execution of transport software update |
US11907940B2 (en) | 2015-11-06 | 2024-02-20 | Cable Television Laboratories, Inc. | Systems and methods for digital asset security ecosystems |
US11941588B2 (en) | 2015-11-06 | 2024-03-26 | Cable Television Laboratories, Inc. | Systems and methods for blockchain virtualization and scalability |
US11940958B2 (en) * | 2018-03-15 | 2024-03-26 | International Business Machines Corporation | Artificial intelligence software marketplace |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210751B2 (en) * | 2020-01-14 | 2021-12-28 | International Business Machines Corporation | Targeting energy units in a blockchain |
US11816475B2 (en) | 2021-07-09 | 2023-11-14 | Micro Focus Llc | Installation and authentication of applications using blockchain |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100058317A1 (en) * | 2008-09-02 | 2010-03-04 | Vasco Data Security, Inc. | Method for provisioning trusted software to an electronic device |
US20110131417A1 (en) * | 2009-12-02 | 2011-06-02 | Microsoft Corporation | Identity based network policy enablement |
US20140372998A1 (en) * | 2013-06-14 | 2014-12-18 | Microsoft Corporation | App package deployment |
US20150128126A1 (en) * | 2013-11-06 | 2015-05-07 | CrowdCare Corporation | System and Method of Dynamic Configuration Engine for Electronic Devices |
US20160253159A1 (en) * | 2015-02-26 | 2016-09-01 | Blackberry Limited | System and Method for Restricting System and Application Software Available for Installation on a Managed Mobile Device |
US20160306982A1 (en) * | 2015-04-14 | 2016-10-20 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
US20170236094A1 (en) * | 2013-09-12 | 2017-08-17 | Netspective Communications Llc | Blockchain-based crowdsourced initiatives tracking system |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418344B2 (en) * | 2001-08-02 | 2008-08-26 | Sandisk Corporation | Removable computer with mass storage |
GB2424811B (en) | 2003-06-17 | 2006-12-06 | Accenture Global Services Gmbh | Method and system for selectively distributing data to a set of network devices |
US8504670B2 (en) * | 2010-03-23 | 2013-08-06 | Riverbed Technology, Inc. | Virtualized data storage applications and optimizations |
US10310824B2 (en) * | 2011-09-07 | 2019-06-04 | Imagine Communications Corp. | Distributed ledger platform for computing applications |
US10838595B2 (en) * | 2011-12-29 | 2020-11-17 | Brandon E. D'Amore | Stranded blockchain |
US10776830B2 (en) * | 2012-05-23 | 2020-09-15 | Google Llc | Methods and systems for identifying new computers and providing matching services |
US9276829B2 (en) * | 2013-02-07 | 2016-03-01 | International Business Machines Corporation | Transparently tracking provenance information in distributed data systems |
US20140289073A1 (en) * | 2013-03-14 | 2014-09-25 | Steven K. Gold | Product Localization and Interaction |
US20150170136A1 (en) | 2013-12-18 | 2015-06-18 | PayRange Inc. | Method and System for Performing Mobile Device-To-Machine Payments |
US10051444B2 (en) * | 2014-04-18 | 2018-08-14 | Gadget Software, Inc. | Application managing application |
US9407645B2 (en) * | 2014-08-29 | 2016-08-02 | Accenture Global Services Limited | Security threat information analysis |
US9716721B2 (en) * | 2014-08-29 | 2017-07-25 | Accenture Global Services Limited | Unstructured security threat information analysis |
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
US9973341B2 (en) * | 2015-01-23 | 2018-05-15 | Daniel Robert Ferrin | Method and apparatus for the limitation of the mining of blocks on a block chain |
CN109783017B (en) * | 2015-01-27 | 2021-05-18 | 华为技术有限公司 | Storage device bad block processing method and device and storage device |
US9967334B2 (en) * | 2015-03-02 | 2018-05-08 | Dell Products Lp | Computing device configuration and management using a secure decentralized transaction ledger |
US9881166B2 (en) | 2015-04-16 | 2018-01-30 | International Business Machines Corporation | Multi-focused fine-grained security framework |
US10304143B2 (en) * | 2016-05-05 | 2019-05-28 | Lance Timothy Kasper | Consensus system for manipulation resistant digital record keeping |
US9870562B2 (en) * | 2015-05-21 | 2018-01-16 | Mastercard International Incorporated | Method and system for integration of market exchange and issuer processing for blockchain-based transactions |
US20160342989A1 (en) * | 2015-05-21 | 2016-11-24 | Mastercard International Incorporated | Method and system for processing blockchain-based transactions on existing payment networks |
-
2016
- 2016-07-25 US US15/219,261 patent/US20170031676A1/en not_active Abandoned
-
2019
- 2019-12-03 US US16/701,214 patent/US10983781B2/en active Active
-
2021
- 2021-03-29 US US17/215,808 patent/US11599350B2/en active Active
-
2023
- 2023-02-01 US US18/104,380 patent/US20230185565A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100058317A1 (en) * | 2008-09-02 | 2010-03-04 | Vasco Data Security, Inc. | Method for provisioning trusted software to an electronic device |
US20110131417A1 (en) * | 2009-12-02 | 2011-06-02 | Microsoft Corporation | Identity based network policy enablement |
US20140372998A1 (en) * | 2013-06-14 | 2014-12-18 | Microsoft Corporation | App package deployment |
US20170236094A1 (en) * | 2013-09-12 | 2017-08-17 | Netspective Communications Llc | Blockchain-based crowdsourced initiatives tracking system |
US20150128126A1 (en) * | 2013-11-06 | 2015-05-07 | CrowdCare Corporation | System and Method of Dynamic Configuration Engine for Electronic Devices |
US20160253159A1 (en) * | 2015-02-26 | 2016-09-01 | Blackberry Limited | System and Method for Restricting System and Application Software Available for Installation on a Managed Mobile Device |
US20160306982A1 (en) * | 2015-04-14 | 2016-10-20 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
Cited By (270)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE49334E1 (en) | 2005-10-04 | 2022-12-13 | Hoffberg Family Trust 2 | Multifactorial optimization system and method |
US10437585B2 (en) | 2015-10-23 | 2019-10-08 | Oracle International Corporation | Managing highly scalable continuous delivery pipelines |
US11941588B2 (en) | 2015-11-06 | 2024-03-26 | Cable Television Laboratories, Inc. | Systems and methods for blockchain virtualization and scalability |
US20170134161A1 (en) * | 2015-11-06 | 2017-05-11 | Cable Television Laboratories, Inc | Blockchaining for media distribution |
US11907940B2 (en) | 2015-11-06 | 2024-02-20 | Cable Television Laboratories, Inc. | Systems and methods for digital asset security ecosystems |
US11153091B2 (en) * | 2016-03-30 | 2021-10-19 | British Telecommunications Public Limited Company | Untrusted code distribution |
US10046228B2 (en) | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
US10022613B2 (en) | 2016-05-02 | 2018-07-17 | Bao Tran | Smart device |
US10838846B1 (en) * | 2016-05-16 | 2020-11-17 | Jpmorgan Chase Bank, N.A. | Method and system for implementing an automation software testing and packaging framework |
US10489278B2 (en) * | 2016-05-16 | 2019-11-26 | Jpmorgan Chase Bank, N.A. | Method and system for implementing an automation software testing and packaging framework with entitlements |
US20180225194A1 (en) * | 2016-05-16 | 2018-08-09 | Jpmorgan Chase Bank, N.A. | Method and system for implementing an automation software testing and packaging framework with entitlements |
US9967088B2 (en) | 2016-05-23 | 2018-05-08 | Accenture Global Solutions Limited | Rewritable blockchain |
US10348707B2 (en) | 2016-05-23 | 2019-07-09 | Accenture Global Solutions Limited | Rewritable blockchain |
US9967096B2 (en) | 2016-05-23 | 2018-05-08 | Accenture Global Solutions Limited | Rewritable blockchain |
US10623387B2 (en) | 2016-05-23 | 2020-04-14 | Accenture Global Solutions Limited | Distributed key secret for rewritable blockchain |
US10356066B2 (en) | 2016-05-23 | 2019-07-16 | Accenture Global Solutions Limited | Wrapped-up blockchain |
US9959065B2 (en) * | 2016-05-23 | 2018-05-01 | Accenture Global Solutions Limited | Hybrid blockchain |
US10110576B2 (en) | 2016-05-23 | 2018-10-23 | Accenture Global Solutions Limited | Distributed key secret for rewritable blockchain |
US10305875B1 (en) | 2016-05-23 | 2019-05-28 | Accenture Global Solutions Limited | Hybrid blockchain |
US10587699B2 (en) * | 2016-05-26 | 2020-03-10 | International Business Machines Corporation | Coordinating the use of independent radio receivers associated with a single transmitter |
US11064035B2 (en) * | 2016-05-26 | 2021-07-13 | International Business Machines Corporation | Coordinating the use of independent radio receivers associated with a single transmitter |
US20170346907A1 (en) * | 2016-05-26 | 2017-11-30 | International Business Machines Corporation | Coordinating the use of independent radio receivers associated with a single transmitter |
US10942912B1 (en) * | 2016-06-24 | 2021-03-09 | Amazon Technologies, Inc. | Chain logging using key-value data storage |
US11811911B2 (en) | 2016-07-15 | 2023-11-07 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
US10097344B2 (en) * | 2016-07-15 | 2018-10-09 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
US20180019867A1 (en) * | 2016-07-15 | 2018-01-18 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
US10505717B2 (en) | 2016-07-15 | 2019-12-10 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
US11082204B2 (en) | 2016-07-15 | 2021-08-03 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
US11206272B2 (en) * | 2016-09-30 | 2021-12-21 | Endress+Hauser Process Solutions Ag | System and method for determining or monitoring a process variable in an automation plant |
US11443050B2 (en) | 2016-10-22 | 2022-09-13 | Bruce A Pelton | Integrated building management sensor system |
US11228440B2 (en) * | 2016-10-26 | 2022-01-18 | International Business Machines Corporation | Proof-of-work for smart contracts on a blockchain |
US10367645B2 (en) * | 2016-10-26 | 2019-07-30 | International Business Machines Corporation | Proof-of-work for smart contracts on a blockchain |
US10754964B2 (en) * | 2016-11-01 | 2020-08-25 | Bruce A Pelton | Integrated building management sensor system |
US20180121662A1 (en) * | 2016-11-01 | 2018-05-03 | Bruce A Pelton | Integrated Building Management Sensor System |
US20180137457A1 (en) * | 2016-11-16 | 2018-05-17 | Sap Se | Monitoring inventory based on iot device data |
US10831933B2 (en) | 2016-11-17 | 2020-11-10 | International Business Machines Corporation | Container update system |
US10599874B2 (en) | 2016-11-17 | 2020-03-24 | International Business Machines Corporation | Container update system |
US10169614B2 (en) * | 2016-11-17 | 2019-01-01 | International Business Machines Corporation | Container update system |
US10540652B2 (en) * | 2016-11-18 | 2020-01-21 | Intel Corporation | Technology for secure partitioning and updating of a distributed digital ledger |
US20180145836A1 (en) * | 2016-11-18 | 2018-05-24 | Intel Corporation | Technology for secure partitioning and updating of a distributed digital ledger |
US10536265B2 (en) * | 2016-11-24 | 2020-01-14 | Alibaba Group Holding Limited | Method, system and apparatus for data storage and data access |
US10938550B2 (en) | 2016-11-24 | 2021-03-02 | Advanced New Technologies Co., Ltd. | Method, system and apparatus for data storage and data access |
US10530859B1 (en) * | 2016-11-28 | 2020-01-07 | EMC IP Holding Company LLC | Blockchain functionalities in data storage system |
US10460289B2 (en) * | 2016-11-30 | 2019-10-29 | International Business Machines Corporation | Auditing certified blockchain checkpoints |
US10013246B2 (en) * | 2016-12-03 | 2018-07-03 | Dell Products, Lp | Distributed information handling systems and methods for automatic object code replacement and patching |
US10257206B2 (en) * | 2016-12-21 | 2019-04-09 | International Business Machines Corporation | Monitoring actions performed by a network of peer devices using a blockchain |
US10425425B2 (en) | 2016-12-21 | 2019-09-24 | International Business Machines Corporation | Monitoring actions performed by a network of peer devices using a blockchain |
US10917414B2 (en) | 2016-12-21 | 2021-02-09 | International Business Machines Corporation | Monitoring actions performed by a network of peer devices using a blockchain |
US10728041B2 (en) | 2016-12-23 | 2020-07-28 | Amazon Technologie, Inc. | Protecting computer systems using merkle trees as proof of-work |
US10291408B2 (en) * | 2016-12-23 | 2019-05-14 | Amazon Technologies, Inc. | Generation of Merkle trees as proof-of-work |
WO2018126837A1 (en) * | 2017-01-03 | 2018-07-12 | 华为技术有限公司 | Blockchain-based data processing method, device and system |
US10511445B1 (en) | 2017-01-05 | 2019-12-17 | Amazon Technologies, Inc. | Signature compression for hash-based signature schemes |
US10938575B2 (en) | 2017-01-05 | 2021-03-02 | Amazon Technologies, Inc. | Signature compression for hash-based signature schemes |
US10922348B2 (en) | 2017-01-05 | 2021-02-16 | International Business Machines Corporation | Representation of a data analysis using a flow graph |
US10891326B2 (en) | 2017-01-05 | 2021-01-12 | International Business Machines Corporation | Representation of a data analysis using a flow graph |
US10832215B2 (en) | 2017-01-05 | 2020-11-10 | International Business Machines Corporation | Blockchain for program code credit and programmer contribution in a collective |
US10438170B2 (en) * | 2017-01-05 | 2019-10-08 | International Business Machines Corporation | Blockchain for program code credit and programmer contribution in a collective |
US10608824B1 (en) | 2017-01-09 | 2020-03-31 | Amazon Technologies, Inc. | Merkle signature scheme tree expansion |
US11240042B2 (en) | 2017-01-09 | 2022-02-01 | Amazon Technologies, Inc. | Merkle signature scheme tree expansion |
US11392612B2 (en) | 2017-02-17 | 2022-07-19 | Advanced New Technologies Co., Ltd. | Data processing method and device |
US10747780B2 (en) * | 2017-02-17 | 2020-08-18 | Alibaba Group Holding Limited | Blockchain-based data processing method and device |
JP7051458B2 (en) | 2017-03-10 | 2022-04-11 | セールスフォース ドット コム インコーポレイティッド | Blockchain version control system |
JP2018152050A (en) * | 2017-03-10 | 2018-09-27 | セールスフォース ドット コム インコーポレイティッド | Block chain version control system |
EP3766190A4 (en) * | 2017-03-16 | 2021-10-27 | Lockheed Martin Corporation | Distributed blockchain data management in a satellite environment |
WO2018170462A1 (en) | 2017-03-16 | 2018-09-20 | Vector Launch Inc. | Distributed blockchain data management in a satellite environment |
EP3379447A1 (en) * | 2017-03-22 | 2018-09-26 | Siemens Aktiengesellschaft | Method and device for tamper-proof storing of information relating to object-specific measures |
WO2018171949A1 (en) * | 2017-03-22 | 2018-09-27 | Siemens Aktiengesellschaft | Method and apparatus for the tamper-proof storage of information about object-related measures |
CN110419045A (en) * | 2017-03-22 | 2019-11-05 | 西门子股份公司 | The device and method for storing the information about the relevant measure of object for the mode to prevent manipulation |
WO2018177239A1 (en) * | 2017-03-28 | 2018-10-04 | 阿里巴巴集团控股有限公司 | Service processing and consensus method and device |
US11943317B2 (en) | 2017-03-28 | 2024-03-26 | Advanced New Technologies Co., Ltd. | Multi-server node service processing and consensus method and device based on heartbeat detection messages |
US10681175B2 (en) | 2017-03-28 | 2020-06-09 | Alibaba Group Holding Limited | Multi-server node service processing and consensus method and device |
CN107395659A (en) * | 2017-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | A kind of method and device of service handling and common recognition |
US11057493B2 (en) | 2017-03-28 | 2021-07-06 | Advanced New Technologies Co., Ltd. | Multi-server node service processing and consensus method and device |
CN110582747A (en) * | 2017-05-05 | 2019-12-17 | 国际商业机器公司 | Block chain for open scientific research |
WO2018214833A1 (en) * | 2017-05-22 | 2018-11-29 | 阿里巴巴集团控股有限公司 | Service execution method and device |
US11188961B2 (en) | 2017-05-22 | 2021-11-30 | Advanced New Technologies Co., Ltd. | Service execution method and device |
US10819501B2 (en) * | 2017-05-23 | 2020-10-27 | Centurylink Intellectual Property Llc | Validating one or more blockchains without ledger limitations |
US10504256B2 (en) | 2017-05-31 | 2019-12-10 | International Business Machines Corporation | Accelerating data-driven scientific discovery |
US11158098B2 (en) | 2017-05-31 | 2021-10-26 | International Business Machines Corporation | Accelerating data-driven scientific discovery |
US10388039B2 (en) | 2017-05-31 | 2019-08-20 | International Business Machines Corporation | Accelerating data-driven scientific discovery |
WO2018232493A1 (en) * | 2017-06-24 | 2018-12-27 | Zeu Crypto Networks Inc. | A network of doubly-chained blockchains capable of cross-chain transactions |
CN110915188A (en) * | 2017-06-30 | 2020-03-24 | 区块链控股有限公司 | Probabilistic relaying for efficient propagation in block-chain networks |
US10531278B1 (en) * | 2017-08-02 | 2020-01-07 | Sprint Communications Company L.P. | Embedded subscriber identity module (eSIM) implementation on a wireless communication device using distributed ledger technology (DLT) |
US10251053B1 (en) * | 2017-08-02 | 2019-04-02 | Sprint Communications Company L.P. | Embedded subscriber identity module (eSIM) implementation on a wireless communication device using distributed ledger technology (DLT) |
WO2019034621A1 (en) * | 2017-08-16 | 2019-02-21 | Autoliv Development Ab | A method relating to a motor vehicle driver assistance system |
JP2022040171A (en) * | 2017-08-16 | 2022-03-10 | ヴィオニア スウェーデン エービー | Method about motor vehicle driver assist system |
JP7041738B2 (en) | 2017-08-16 | 2022-03-24 | ヴィオニア スウェーデン エービー | How to get a motor vehicle driver assistance system |
KR102310252B1 (en) * | 2017-08-16 | 2021-10-08 | 비오니어 스웨덴 에이비 | Methods related to motor vehicle driver assistance systems |
CN111066303A (en) * | 2017-08-16 | 2020-04-24 | 维宁尔瑞典公司 | Method relating to a driver assistance system for a motor vehicle |
EP3445017A1 (en) * | 2017-08-16 | 2019-02-20 | Veoneer Sweden AB | A method relating to a motor vehicle driver assistance system |
JP2020529667A (en) * | 2017-08-16 | 2020-10-08 | ヴィオニア スウェーデン エービー | Method for motor vehicle driver support system |
JP7250411B2 (en) | 2017-08-16 | 2023-04-03 | ヴィオニア スウェーデン エービー | Method for Motor Vehicle Driver Assistance System |
KR20200020003A (en) * | 2017-08-16 | 2020-02-25 | 비오니어 스웨덴 에이비 | Related to the car driver assistance system |
US11256799B2 (en) | 2017-08-29 | 2022-02-22 | Seagate Technology Llc | Device lifecycle distributed ledger |
US10296248B2 (en) | 2017-09-01 | 2019-05-21 | Accenture Global Solutions Limited | Turn-control rewritable blockchain |
US10404455B2 (en) | 2017-09-01 | 2019-09-03 | Accenture Global Solutions Limited | Multiple-phase rewritable blockchain |
US11475527B1 (en) * | 2017-09-06 | 2022-10-18 | State Farm Mutual Automobile Insurance Company | Using historical data for subrogation on a distributed ledger |
US11657460B2 (en) | 2017-09-06 | 2023-05-23 | State Farm Mutual Automobile Insurance Company | Using historical data for subrogation on a distributed ledger |
US11593888B1 (en) | 2017-09-06 | 2023-02-28 | State Farm Mutual Automobile Insurance Company | Evidence oracles |
US11386498B1 (en) * | 2017-09-06 | 2022-07-12 | State Farm Mutual Automobile Insurance Company | Using historical data for subrogation on a distributed ledger |
US11908019B2 (en) | 2017-09-06 | 2024-02-20 | State Farm Mutual Automobile Insurance Company | Evidence oracles |
US11734770B2 (en) | 2017-09-06 | 2023-08-22 | State Farm Mutual Automobile Insurance Company | Using a distributed ledger to determine fault in subrogation |
US11830079B2 (en) | 2017-09-06 | 2023-11-28 | State Farm Mutual Automobile Insurance Company | Evidence oracles |
US11580606B2 (en) | 2017-09-06 | 2023-02-14 | State Farm Mutual Automobile Insurance Company | Using a distributed ledger to determine fault in subrogation |
US11416942B1 (en) | 2017-09-06 | 2022-08-16 | State Farm Mutual Automobile Insurance Company | Using a distributed ledger to determine fault in subrogation |
US11587050B2 (en) | 2017-09-12 | 2023-02-21 | Northwestern University | Blockchain distribution network |
US11010736B2 (en) | 2017-09-12 | 2021-05-18 | Northwestern University | System and method for reducing information volume in a blockchain distribution network |
US11232417B2 (en) | 2017-09-12 | 2022-01-25 | Northwestern University | Back-up sentinel network for a blockchain distribution network |
US10929823B2 (en) | 2017-09-12 | 2021-02-23 | Northwestern University | Peer auditing in a blockchain distribution network |
CN109874409A (en) * | 2017-09-12 | 2019-06-11 | 西北大学 | Block chain distribution network |
US10970690B2 (en) | 2017-09-12 | 2021-04-06 | Northwestern University | Blockchain distribution network with service transparency |
US10977628B2 (en) | 2017-09-12 | 2021-04-13 | Northwestern University | Preventing service discrimination in a blockchain distribution network |
WO2019055290A1 (en) * | 2017-09-12 | 2019-03-21 | Northwestern University | Blockchain distribution network |
US10985908B2 (en) | 2017-09-29 | 2021-04-20 | Advanced New Technologies Co., Ltd. | Data storage method, data query method and apparatuses |
US10931439B2 (en) | 2017-09-29 | 2021-02-23 | Advanced New Technologies Co., Ltd. | Data storage method, data query method and apparatuses |
US11228425B2 (en) | 2017-09-29 | 2022-01-18 | Advanced New Technologies Co., Ltd. | Data storage method, data query method and apparatuses |
US11455643B2 (en) | 2017-10-09 | 2022-09-27 | Koninklijke Kpn N.V. | Blockchain with transaction cancellation |
WO2019072670A1 (en) | 2017-10-09 | 2019-04-18 | Koninklijke Kpn N.V. | Blockchain with transaction cancellation |
US10891384B2 (en) | 2017-10-19 | 2021-01-12 | Koninklijke Kpn N.V. | Blockchain transaction device and method |
EP3474209A1 (en) | 2017-10-19 | 2019-04-24 | Koninklijke KPN N.V. | Storing blockchain private keys in a sim card |
WO2019077126A1 (en) | 2017-10-20 | 2019-04-25 | Koninklijke Kpn N.V. | Primary and secondary blockchain device |
US11316659B2 (en) | 2017-10-20 | 2022-04-26 | Koninklijke Kpn N.V. | Primary and secondary blockchain device |
CN107943833A (en) * | 2017-10-25 | 2018-04-20 | 华南农业大学 | A kind of storage of non-stop layer distributed document and search method based on block chain |
US10659473B2 (en) * | 2017-11-09 | 2020-05-19 | Nokia Solutions And Networks Oy | Method and apparatus for blockchain powered integrity protection system |
US11461245B2 (en) | 2017-11-16 | 2022-10-04 | Accenture Global Solutions Limited | Blockchain operation stack for rewritable blockchain |
US20190156332A1 (en) * | 2017-11-17 | 2019-05-23 | International Business Machines Corporation | Optimization of high volume transaction performance on a blockchain |
US11823178B2 (en) * | 2017-11-17 | 2023-11-21 | International Business Machines Corporation | Optimization of high volume transaction performance on a blockchain |
US10868865B2 (en) * | 2017-11-20 | 2020-12-15 | Moshe Shadmon | System and apparatus to manage data using a peer-to-peer network and the blockchain |
CN109816385A (en) * | 2017-11-21 | 2019-05-28 | 维布络有限公司 | The system and method that block chain transaction in distributed account book network is veritified |
US20190156336A1 (en) * | 2017-11-21 | 2019-05-23 | Wipro Limited | System and method to validate blockchain transactions in a distributed ledger network |
US11283597B2 (en) * | 2017-11-22 | 2022-03-22 | International Business Machines Corporation | Blockchain technology |
US10338913B2 (en) | 2017-12-05 | 2019-07-02 | Archemy, Inc. | Active adaptation of networked compute devices using vetted reusable software components |
WO2019113308A1 (en) * | 2017-12-05 | 2019-06-13 | Franchitti Jean Claude | Active adaptation of networked compute devices using vetted reusable software components |
US11074061B2 (en) | 2017-12-05 | 2021-07-27 | Archemy, Inc. | Active adaptation of networked compute devices using vetted reusable software and hardware components |
US11139979B2 (en) | 2017-12-18 | 2021-10-05 | Koninklijke Kpn N.V. | Primary and secondary blockchain device |
EP3499789A1 (en) | 2017-12-18 | 2019-06-19 | Koninklijke KPN N.V. | Primary and secondary blockchain device |
US20190197130A1 (en) * | 2017-12-21 | 2019-06-27 | Microsoft Technology Licensing, Llc | Ensuring consistency in distributed incremental content publishing |
WO2019133621A3 (en) * | 2017-12-26 | 2019-08-08 | Akamai Technologies, Inc. | High performance distributed system of record with distributed random oracle |
US11606190B2 (en) | 2017-12-26 | 2023-03-14 | Akamai Technologies, Inc. | High performance distributed system of record with cryptographic service support |
US10630769B2 (en) | 2017-12-26 | 2020-04-21 | Akamai Technologies, Inc. | Distributed system of record transaction receipt handling in an overlay network |
US11018850B2 (en) | 2017-12-26 | 2021-05-25 | Akamai Technologies, Inc. | Concurrent transaction processing in a high performance distributed system of record |
US10250708B1 (en) * | 2017-12-26 | 2019-04-02 | Akamai Technologies, Inc. | High performance distributed system of record |
US11736586B2 (en) | 2017-12-26 | 2023-08-22 | Akamai Technologies, Inc. | High performance distributed system of record |
US10972568B2 (en) | 2017-12-26 | 2021-04-06 | Akamai Technologies, Inc. | High performance distributed system of record |
US20190207748A1 (en) * | 2017-12-29 | 2019-07-04 | Seagate Technology Llc | Blockchain storage device |
US11157295B2 (en) | 2018-01-02 | 2021-10-26 | Patrick Schur | System and method for providing intelligent operant operating interface and intelligent personal assistant as a service on a crypto secure social media and cross bridge service with continuous prosumer validation based on i-operant+198 tags, i-bubble+198 tags, demojis+198 and demoticons+198 |
US11232523B2 (en) | 2018-01-02 | 2022-01-25 | Patrick Schur | System and method for providing an intelligent operating interface and intelligent personal assistant as a service on a crypto secure social media and cross bridge service with continuous prosumer validation based on i-operant tags, i-bubble tags, demojis and demoticons |
US11249982B2 (en) * | 2018-01-19 | 2022-02-15 | Acronis International Gmbh | Blockchain-based verification of machine learning |
US11251937B2 (en) * | 2018-01-21 | 2022-02-15 | CipherTrace, Inc. | Distributed security mechanism for blockchains and distributed ledgers |
WO2019148248A1 (en) * | 2018-02-02 | 2019-08-08 | Varughese Ian Arvind | Personal record repository arrangement and method for incentivised data analytics |
US11438139B2 (en) * | 2018-02-07 | 2022-09-06 | Raouf Boutaba | Blockchain based secure naming and update verification |
WO2019156693A1 (en) * | 2018-02-09 | 2019-08-15 | Vector Launch Inc. | Distributed storage management in a satellite environment |
US10749959B2 (en) | 2018-02-09 | 2020-08-18 | Lockheed Martin Corporation | Distributed storage management in a spaceborne or airborne environment |
US10523758B2 (en) | 2018-02-09 | 2019-12-31 | Vector Launch Inc. | Distributed storage management in a satellite environment |
US10873625B2 (en) * | 2018-02-26 | 2020-12-22 | International Business Machines Corpora ! Ion | Service management for the infrastructure of blockchain networks |
JP2021507336A (en) * | 2018-02-27 | 2021-02-22 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | Methods, devices, systems, and electronic devices for cross-blockchain interactions |
US10785232B2 (en) * | 2018-02-27 | 2020-09-22 | Alibaba Group Holding Limited | Method, apparatus, system, and electronic device for cross-blockchain interaction |
US10862899B2 (en) * | 2018-02-27 | 2020-12-08 | Advanced New Technologies Co., Ltd. | Method, apparatus, system, and electronic device for cross-blockchain interaction |
CN108650281A (en) * | 2018-02-28 | 2018-10-12 | 努比亚技术有限公司 | A kind of data managing method, device and computer readable storage medium |
US11528611B2 (en) * | 2018-03-14 | 2022-12-13 | Rose Margaret Smith | Method and system for IoT code and configuration using smart contracts |
US11785466B2 (en) | 2018-03-14 | 2023-10-10 | Rose M. SMITH | Method and system for IoT code and configuration using smart contracts |
US11940958B2 (en) * | 2018-03-15 | 2024-03-26 | International Business Machines Corporation | Artificial intelligence software marketplace |
US10567393B2 (en) | 2018-03-16 | 2020-02-18 | Vector Launch Inc. | Distributed blockchain data management in a satellite environment |
US11240254B2 (en) | 2018-03-16 | 2022-02-01 | Lockheed Martin Corporation | Distributed blockchain data management in a satellite environment |
US10841237B2 (en) * | 2018-04-23 | 2020-11-17 | EMC IP Holding Company LLC | Decentralized data management across highly distributed systems |
WO2019207019A1 (en) * | 2018-04-25 | 2019-10-31 | Senvion Gmbh | Method for operating a wind turbine, wind turbine and computer program product |
US10997150B2 (en) | 2018-05-15 | 2021-05-04 | International Business Machines Corporation | Configuration drift prevention across multiple systems using blockchain |
US11122052B2 (en) * | 2018-05-30 | 2021-09-14 | International Business Machines Corporation | Sensitive information accessibility in blockchain |
US20190372985A1 (en) * | 2018-05-30 | 2019-12-05 | International Business Machines Corporation | Sensitive information accessibility in blockchain |
US11836718B2 (en) | 2018-05-31 | 2023-12-05 | CipherTrace, Inc. | Systems and methods for crypto currency automated transaction flow detection |
EP3575953A1 (en) * | 2018-05-31 | 2019-12-04 | Nokia Solutions and Networks Oy | A blockchain network agent for verifying and accepting patch requests from a patch initiator and method thereof |
US10649953B2 (en) * | 2018-05-31 | 2020-05-12 | Alibaba Group Holding Limited | Blockchain-based data migration method and apparatus |
TWI685767B (en) * | 2018-06-07 | 2020-02-21 | 艾維克科技股份有限公司 | Decentralized software information creation system and method |
CN108718344A (en) * | 2018-06-11 | 2018-10-30 | 成都谛听科技股份有限公司 | A kind of electric network data storage method and distributed power grid data-storage system |
WO2019241359A1 (en) * | 2018-06-13 | 2019-12-19 | Dynamic Blockchain, Inc. | Blockchain distributed access, storage and transport |
US10771240B2 (en) | 2018-06-13 | 2020-09-08 | Dynamic Blockchains Inc | Dynamic blockchain system and method for providing efficient and secure distributed data access, data storage and data transport |
EP3582102A1 (en) * | 2018-06-14 | 2019-12-18 | Honeywell International Inc. | System and method for installing loadable software airplane parts (lsap) of a set of certified orchestrated procedures using a blockchain network |
US20210209483A1 (en) * | 2018-06-14 | 2021-07-08 | Samsung Electronics Co., Ltd. | Swarm control apparatus and method using dynamic rule-based blockchain |
WO2019245167A1 (en) * | 2018-06-14 | 2019-12-26 | 삼성전자 주식회사 | Swarm control apparatus and method using dynamic rule-based blockchain |
WO2019245833A1 (en) * | 2018-06-19 | 2019-12-26 | Cannagri Blockchain, Inc | A method, apparatus and system for production management |
US10754847B2 (en) | 2018-06-19 | 2020-08-25 | Cannagri Blockchain, Inc. | Method, apparatus and system for production management |
CN108965259A (en) * | 2018-06-21 | 2018-12-07 | 佛山科学技术学院 | A kind of discovery of block chain malicious node and partition method and device |
WO2020000708A1 (en) * | 2018-06-29 | 2020-01-02 | 北京金山安全软件有限公司 | Blockchain node synchronization method and device using trust mechanism |
CN110750591A (en) * | 2018-07-04 | 2020-02-04 | 全球智能股份有限公司 | Artificial intelligence knowledge management system and method for forming distributed records by using same |
US20200019706A1 (en) * | 2018-07-10 | 2020-01-16 | International Business Machines Corporation | Blockchain technique for agile software development framework |
US11194911B2 (en) * | 2018-07-10 | 2021-12-07 | International Business Machines Corporation | Blockchain technique for agile software development framework |
US11157622B2 (en) * | 2018-07-10 | 2021-10-26 | International Business Machines Corporation | Blockchain technique for agile software development framework |
CN111897498A (en) * | 2018-07-27 | 2020-11-06 | 创新先进技术有限公司 | Multi-level storage method and device for block chain data |
CN110798331A (en) * | 2018-08-02 | 2020-02-14 | 华为技术有限公司 | Equipment upgrading method and device |
US10771384B2 (en) * | 2018-08-17 | 2020-09-08 | Tyson Trautmann | Routing based blockchain |
US11227282B2 (en) * | 2018-08-20 | 2022-01-18 | Probloch LLC | Time-bounded activity chains with multiple authenticated agent participation bound by distributed single-source-of-truth networks that can enforce automated value transfer |
US10901957B2 (en) | 2018-08-29 | 2021-01-26 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US20200076571A1 (en) * | 2018-08-29 | 2020-03-05 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11334439B2 (en) | 2018-08-29 | 2022-05-17 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11196542B2 (en) * | 2018-08-29 | 2021-12-07 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11044104B2 (en) | 2018-09-05 | 2021-06-22 | International Business Machines Corporation | Data certification as a service powered by permissioned blockchain network |
CN109224451A (en) * | 2018-09-11 | 2019-01-18 | 北京云派网络科技有限公司 | Development of games method, equipment and storage medium based on block chain subchain |
US11538063B2 (en) | 2018-09-12 | 2022-12-27 | Samsung Electronics Co., Ltd. | Online fraud prevention and detection based on distributed system |
US11601256B2 (en) * | 2018-10-02 | 2023-03-07 | Mutualink, Inc. | Consensus-based voting for network member identification employing blockchain-based identity signature mechanisms |
WO2020072659A1 (en) * | 2018-10-02 | 2020-04-09 | Mutualink, Inc. | Consensus-based voting for network member identification employing blockchain-based identity signature mechanisms |
US10826683B2 (en) | 2018-10-02 | 2020-11-03 | Mutualink, Inc. | Consensus-based voting for network member identification employing blockchain-based identity signature mechanisms |
US10268817B1 (en) | 2018-10-05 | 2019-04-23 | Capital One Services, Llc | Methods, mediums, and systems for establishing and using security questions |
US10482236B1 (en) | 2018-10-05 | 2019-11-19 | Capital One Services, Llc | Methods, mediums, and systems for establishing and using security questions |
CN109274754A (en) * | 2018-10-11 | 2019-01-25 | 上海保险交易所股份有限公司 | For the method for synchrodata, equipment and storage medium in block chain network |
US11416475B2 (en) * | 2018-10-19 | 2022-08-16 | Adobe Inc. | Block quantity reduction in distributed ledgers |
US11750700B2 (en) | 2018-10-24 | 2023-09-05 | Samsung Electronics Co., Ltd. | Method, device, computer-readable medium, and system for managing transactions |
US11165827B2 (en) | 2018-10-30 | 2021-11-02 | International Business Machines Corporation | Suspending communication to/from non-compliant servers through a firewall |
US11308194B2 (en) | 2018-10-31 | 2022-04-19 | Seagate Technology Llc | Monitoring device components using distributed ledger |
US11507929B2 (en) | 2018-11-09 | 2022-11-22 | Visa International Service Association | Digital fiat currency |
WO2020100012A1 (en) | 2018-11-13 | 2020-05-22 | Schur Patrick | System and method for providing an intelligent operating interface and intelligent personal assistant as a service on a crypto secure social media and cross bridge service with continuous prosumer validation based on i-operant tags, i-bubble tags, demojis and demoticons |
US11888892B2 (en) | 2018-11-20 | 2024-01-30 | CipherTrace, Inc. | Cryptocurrency based malware and ransomware detection systems and methods |
US11546373B2 (en) | 2018-11-20 | 2023-01-03 | CipherTrace, Inc. | Cryptocurrency based malware and ransomware detection systems and methods |
US11544249B2 (en) * | 2018-11-27 | 2023-01-03 | International Business Machines Corporation | Reducing signature verifications of database entries |
US10826705B2 (en) * | 2018-12-13 | 2020-11-03 | International Business Machines Corporation | Compact state database system |
US20210258145A1 (en) * | 2018-12-19 | 2021-08-19 | Verizon Media Inc. | Blockchain compression using summary and padding blocks |
US11962680B2 (en) | 2018-12-19 | 2024-04-16 | Verizon Patent And Licensing Inc. | Blockchain ledger growth management |
US11569982B2 (en) * | 2018-12-19 | 2023-01-31 | Verizon Patent And Licensing Inc. | Blockchain compression using summary and padding blocks |
US11616638B2 (en) | 2018-12-19 | 2023-03-28 | Verizon Patent And Licensing Inc. | Blockchain ledger growth management |
US11588643B2 (en) | 2018-12-27 | 2023-02-21 | Paypal, Inc. | Blockchain management system |
WO2020139965A1 (en) * | 2018-12-27 | 2020-07-02 | Paypal, Inc. | Blockchain management system |
WO2020139190A1 (en) * | 2018-12-28 | 2020-07-02 | The Flowchain Foundation Limited | Hybrid blockchain architecture with computing pool |
US11902448B2 (en) | 2018-12-28 | 2024-02-13 | The Flowchain Foundation Limited | Hybrid blockchain architecture with computing pool |
TWI717927B (en) * | 2018-12-28 | 2021-02-01 | 智能串流區塊鏈基金會 | Hybrid blockchain architecture with computing pool |
WO2020157369A1 (en) * | 2019-01-30 | 2020-08-06 | Nokia Solutions And Networks Oy | Remote blockchain network agent for verifying and accepting patch requests from a patch initiator and method thereof |
EP3949251A4 (en) * | 2019-03-25 | 2022-12-21 | Micron Technology, Inc. | Local ledger block chain for secure updates |
CN110086856A (en) * | 2019-04-01 | 2019-08-02 | 深圳前海达闼云端智能科技有限公司 | Control method and device of block chain node, storage medium and electronic equipment |
US20210326328A1 (en) * | 2019-04-04 | 2021-10-21 | Advanced New Technologies Co., Ltd. | Integrity verification method, apparatus, and system and device for data in a blockchain-type ledger |
CN110069295A (en) * | 2019-05-06 | 2019-07-30 | 百度在线网络技术(北京)有限公司 | Block chain processing method, device, equipment and medium |
US11265217B2 (en) | 2019-05-30 | 2022-03-01 | Hewlett Packard Enterprise Development Lp | Distributed ledger for configuration synchronization across groups of network devices |
US11606442B2 (en) * | 2019-06-07 | 2023-03-14 | Microsoft Technology Licensing, Llc | Subscription to edits of blockchain transaction |
US20200389537A1 (en) * | 2019-06-07 | 2020-12-10 | Microsoft Technology Licensing, Llc | Subscription to edits of blockchain transaction |
US10936302B2 (en) | 2019-06-07 | 2021-03-02 | Volvo Car Corporation | Updating sub-systems of a device using blockchain |
US11372980B2 (en) * | 2019-06-14 | 2022-06-28 | Netiq Corporation | Blockchains for software component vulnerability databases |
US20230073720A1 (en) * | 2019-06-25 | 2023-03-09 | Scientia Potentia Est II, LLC | System for management and tracking of patient encounters |
US11216823B2 (en) * | 2019-06-25 | 2022-01-04 | Scientia Potentia Est, LLC. | System for management of warranty information for projects and materials |
US11449949B2 (en) * | 2019-06-25 | 2022-09-20 | Scientia Potentia Est, LLC. | System for management of insurance risk and insurance events |
US20210110342A1 (en) * | 2019-06-25 | 2021-04-15 | Scientia Potentia Est., LLC. | System for verification and management of paired assets related applications |
US11216781B2 (en) * | 2019-06-25 | 2022-01-04 | Scientia Potentia Est., LLC | System for management and verification of code compliance |
US20220188821A1 (en) * | 2019-06-25 | 2022-06-16 | Scientia Potentia Est., LLC | Immutable ledger digital physical asset audit platform |
US11288308B2 (en) * | 2019-06-25 | 2022-03-29 | Scientia Potentia Est., LLC | System for a verifiable physical object with a digital representation and related applications |
US11288761B2 (en) * | 2019-06-25 | 2022-03-29 | Scientia Potentia Est., LLC | Decentralized system for verifying participants to an activity |
US11423360B2 (en) * | 2019-06-25 | 2022-08-23 | Scientia Potentia Est, LLC. | Digital asset system for management of projects and materials |
US11482325B2 (en) * | 2019-06-25 | 2022-10-25 | Scientia Potentia Est., LC | System for verification and management of medical objects |
US20210304155A1 (en) * | 2019-06-25 | 2021-09-30 | Scientia Potentia Est., LLC | System for verification and management of paired assets associated with a structure |
US11610202B2 (en) * | 2019-06-25 | 2023-03-21 | Scientia Potentia Est II, LLC | Immutable ledger digital physical asset audit platform |
CN110322350A (en) * | 2019-06-25 | 2019-10-11 | 北京众享比特科技有限公司 | Cut method, apparatus, equipment and the storage medium of the common recognition hollow block of network |
US11521157B2 (en) * | 2019-06-25 | 2022-12-06 | Scientia Potentia Est II, LLC | System for verification and management of paired assets related applications |
US11232652B2 (en) * | 2019-06-25 | 2022-01-25 | Scientia Potentia Est, LLC. | System for management of verification of project commencement and completion |
US10713737B1 (en) * | 2019-06-25 | 2020-07-14 | Scientia Potentia Est, LLC | Use of blockchain-based distributed ledger to reference construction metadata and to use smart contracts for a construction project |
US20210035231A1 (en) * | 2019-06-25 | 2021-02-04 | Scientia Potentia Est, LLC. | System for management of management of insurance risk and insurance events |
US11307848B2 (en) * | 2019-07-01 | 2022-04-19 | Bank Of America Corporation | System for electronic integration and deployment of computer code in a code development network |
US11201746B2 (en) | 2019-08-01 | 2021-12-14 | Accenture Global Solutions Limited | Blockchain access control system |
US11288052B2 (en) | 2019-11-21 | 2022-03-29 | General Electric Company | Devices, systems, and methods for providing on-demand engine software using a distributed ledger |
US11907695B2 (en) | 2019-11-21 | 2024-02-20 | General Electric Company | Devices, systems, and methods for providing on-demand engine software using a distributed ledger |
CN111274318A (en) * | 2020-01-16 | 2020-06-12 | 杭州趣链科技有限公司 | Block chain state data storage and rollback method, equipment and storage medium |
US11675577B2 (en) * | 2020-03-02 | 2023-06-13 | Chainstack Pte. Ltd. | Systems and methods of orchestrating nodes in a blockchain network |
US11574319B2 (en) * | 2020-03-05 | 2023-02-07 | Scientia Potentia Est II, LLC | System for verification and management for non-fungible tokens |
US20220114600A1 (en) * | 2020-03-05 | 2022-04-14 | Scientia Potentia Est., LLC | System for verification and management for non-fungible tokens |
US11281450B2 (en) | 2020-06-23 | 2022-03-22 | Toyota Motor North America, Inc. | Secure transport software update |
US11880670B2 (en) * | 2020-06-23 | 2024-01-23 | Toyota Motor North America, Inc. | Execution of transport software update |
US11782696B2 (en) | 2020-06-23 | 2023-10-10 | Toyota Motor North America, Inc. | Secure transport software update |
US11860856B2 (en) * | 2020-07-20 | 2024-01-02 | International Business Machines Corporation | Managing distributed ledger storage space |
US20220019901A1 (en) * | 2020-07-20 | 2022-01-20 | International Business Machines Corporation | Managing distributed ledger storage space |
WO2022058124A1 (en) * | 2020-09-21 | 2022-03-24 | Nchain Licensing Ag | Blokchain-based system and method for publishing an operating system |
US11438175B2 (en) | 2020-12-29 | 2022-09-06 | CipherTrace, Inc. | Systems and methods for correlating cryptographic addresses between blockchain networks |
US11544014B2 (en) | 2021-01-28 | 2023-01-03 | Kyocera Document Solutions Inc. | Printing system and device for processing transactions in a distributed ledger |
US11733940B2 (en) | 2021-01-28 | 2023-08-22 | Kyocera Document Solutions Inc. | Printing system and device for processing transactions in a distributed ledger |
CN112532753A (en) * | 2021-02-09 | 2021-03-19 | 腾讯科技(深圳)有限公司 | Data synchronization method, device, medium and electronic equipment of block chain system |
WO2022222527A1 (en) * | 2021-04-21 | 2022-10-27 | 湖南天河国云科技有限公司 | Blockchain-based decentralized file system rebalancing method |
US20220374418A1 (en) * | 2021-05-19 | 2022-11-24 | Micro Focus Llc | Blockchain structure for efficient searching |
Also Published As
Publication number | Publication date |
---|---|
US11599350B2 (en) | 2023-03-07 |
US20200142686A1 (en) | 2020-05-07 |
US20210263723A1 (en) | 2021-08-26 |
US20230185565A1 (en) | 2023-06-15 |
US10983781B2 (en) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11599350B2 (en) | Blockchain computer data distribution | |
US11139991B2 (en) | Decentralized edge computing transactions with fine-grained time coordination | |
US11736288B2 (en) | Traceable key block-chain ledger | |
AU2019202887B2 (en) | Peer-to-peer software updates | |
US10606738B2 (en) | Application testing on a blockchain | |
US20210110310A1 (en) | Methods and apparatus to verify trained models in an edge environment | |
US10601900B2 (en) | Supporting distributed ledgers in a micro-services environment | |
US10228925B2 (en) | Systems, devices, and methods for deploying one or more artifacts to a deployment environment | |
WO2019144761A1 (en) | Data synchronization method, distributed system and device | |
US9935819B2 (en) | Daisy chain distribution in data centers | |
US9742884B2 (en) | Retry mechanism for data loading from on-premise datasource to cloud | |
US11886390B2 (en) | Data file partition and replication | |
US20230305837A1 (en) | Data file partition and replication | |
US10511656B1 (en) | Log information transmission integrity | |
US10769586B2 (en) | Implementation of rolling key to identify systems inventories | |
KR102173336B1 (en) | System for providing realtime application distributing service based on react native enviroment | |
US20240022609A1 (en) | Security and resiliency for cloud to edge deployments | |
US20240095215A1 (en) | Updating edge nodes in distributed computing environments using partitions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DEJA VU SECURITY, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CECCHETTI, ADAM;EDDINGTON, MICHAEL;SIGNING DATES FROM 20160719 TO 20160722;REEL/FRAME:039249/0637 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
AS | Assignment |
Owner name: ACCENTURE GLOBAL SOLUTIONS LIMITED, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DEJA VU SECURITY, LLC;REEL/FRAME:050997/0429 Effective date: 20190614 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |