The present application hereby claims priority under 35 U.S.C. § 119 to European patent application number EP 19175897.8 filed May 22, 2019, the entire contents of which are hereby incorporated herein by reference.
At least one embodiment of the invention generally relates to techniques of storing measurement datasets. Various examples of embodiments of the invention specifically relate to storage of a measurement dataset in a non-distributed database and storage of a performance indicator dataset that is associated with the measurement dataset in a distributed database.
Distributed databases—such as the Blockchain—offer increased security against manipulation of data. Thus, various functionality—e.g., sense and control functionality in industrial environments, control of electrical grids, transport systems, etc.—sometimes relies on data stored in a distributed database.
Distributed databases are generally distributed across and replicated across multiple nodes of a corresponding distributed database infrastructure. Therefore, it has been found that storing a large amount of data can require significant computational resources such as communication bandwidth and memory, etc.
Once data has been stored in a distributed database, it is often difficult to remove the data. For example, if the distributed database is implemented in a Blockchain, then the chaining checksums of the sequence of blocks of the Blockchain require that any data once included in the Blockchain remains stored in the Blockchain.
According to reference implementations, such problems have been addressed by storing data off-chain, i.e., not in the Blockchain; and storing a link to the data, e.g., a hash value of the data, on-chain, i.e., in the Blockchain. In such a scenario, modification of the data that is stored off-chain could be detected, because the hash value—securely stored in the Blockchain—would be different from the further hash value determined based on the modified/manipulated off-chain data.
The inventors have discovered that such reference implementations face certain restrictions and drawbacks. For example, such reference implementations may not be easily applied to a smart contract. A smart contract is program code that is implemented on the Blockchain. The program code can implement certain logic functionality and can be invoked by mining nodes of the Blockchain infrastructure. In particular, in scenarios in which a smart contract is used, the inventors have discovered that it is often required that the data is accessible by the smart contract.
Therefore, the inventors have discovered that a need exists for advanced techniques of storing data in a distributed database. In particular, the inventors have discovered that a need exists for techniques which overcome or mitigate at least some of the above-identified restrictions and drawbacks.
A node, in at least one embodiment, includes a control circuitry. The control circuitry is configured to obtain a measurement dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The control circuitry is also configured to determine a performance indicator dataset based on the measurement dataset. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The control circuitry is also configured to trigger storage of the performance indicator dataset in a distributed database. The control circuitry is also configured to trigger storage of the measurement dataset in a non-distributed database.
A computer-implemented method, in at least one embodiment, includes obtaining a measurement dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The method also includes determining a performance indicator dataset based on the measurement dataset. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The method also includes triggering storage of the performance indicator dataset in the distributed database, and storage of the measurement dataset in a non-distributed database.
A computer program or a computer-program product or a computer-readable storage medium, in at least one embodiment, includes program code that can be executed by least one processor. When executing the program code, the processor performs a method. The method includes obtaining a measurement dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The method also includes determining a performance indicator dataset based on the measurement dataset. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The method also includes triggering storage of the performance indicator dataset in the distributed database, and storage of the measurement dataset in a non-distributed database.
A mining node of a distributed database infrastructure, in at least one embodiment, includes control circuitry. The control circuitry is configured to receive a transaction including a measurement dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The transaction also includes a performance indicator dataset. The performance indicator dataset comprises one or more figures of merit of the operational characteristics. The control circuitry is further configured to split the transaction into a first action and into a second section. The first section comprises the performance indicator dataset and the second section comprises the measurement dataset. The performance indicator dataset is stored in the distributed database of the distributed database infrastructure, based on the first section. The measurement dataset is transmitted to a non-distributed database based on the second section.
A computer-implemented method, in at least one embodiment, includes receiving a transaction. The transaction includes a measurement dataset and further includes a performance indicator dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The method includes splitting the transaction into a first section and a second section. The first section includes the performance indicator dataset; and the second section includes a measurement dataset. The method also includes storing the performance indicator dataset in the distributed database based on the first section. The method further includes transmitting the measurement dataset to a non-distributed database based on the second section.
A computer program or a computer-program product or a computer-readable storage medium, in at least one embodiment, includes program code that can be executed by least one processor. When executing the program code, the processor performs a method. The method includes receiving a transaction. The transaction includes a measurement dataset and further includes a performance indicator dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The method includes splitting the transaction into a first section and a second section. The first section includes the performance indicator dataset; and the second section includes a measurement dataset. The method also includes storing the performance indicator dataset in the distributed database based on the first section. The method further includes transmitting the measurement dataset to a non-distributed database based on the second section.
A node, in at least one embodiment, includes a control circuitry. The control circuitry is configured to obtain a performance indicator dataset from a distributed database. The performance indicator dataset includes one or more figures of merit of operational characteristics of an industrial field device. The performance indicator dataset is stored in the distributed database with a cross-reference to a measurement dataset. The control circuitry is also configured to obtain the measurement dataset from a non-distributed database, based on the cross-reference. Then, the control circuitry is configured to perform a comparison between the measurement dataset and the performance indicator dataset, to test an integrity of the performance indicator dataset end of the measurement dataset.
A computer-implemented method, in at least one embodiment, includes obtaining a performance indicator dataset from a distributed database. The performance indicator dataset include one or more figures of merit of operational characteristics of an industrial field device. The performance indicator dataset is stored in the distributed database with a cross-reference to a measurement dataset. The method also includes obtaining, from a non-distributed database, the measurement dataset based on the cross-reference. The method further includes performing a comparison between the measurement dataset and the performance indicator dataset, to test an integrity of the performance indicator dataset end of the measurement dataset.
A computer program or a computer-program product or a computer-readable storage medium, in at least one embodiment, includes program code that can be executed by least one processor. When executing the program code, the processor performs a method. The method includes obtaining a performance indicator dataset from a distributed database. The performance indicator dataset include one or more figures of merit of operational characteristics of an industrial field device. The performance indicator dataset is stored in the distributed database with a cross-reference to a measurement dataset. The method also includes obtaining, from a non-distributed database, the measurement dataset based on the cross-reference. The method further includes performing a comparison between the measurement dataset and the performance indicator dataset, to test an integrity of the performance indicator dataset end of the measurement dataset.
In at least one embodiment, a node comprises:
a control circuitry configured to:
In at least one embodiment, a node, being a mining node of a distributed database infrastructure, comprises:
a control circuitry configured to:
In at least one embodiment, a node comprises:
a control circuitry configured to:
In at least one embodiment, a method comprises:
obtaining a measurement dataset, indicative of operational characteristics of an industrial field device;
determining, based on the measurement dataset obtained, a performance indicator dataset including one or more figures of merit of the operational characteristics; and
triggering storage of the performance indicator dataset in a distributed database and storage of the measurement dataset in a non-distributed database.
In at least one embodiment, a method comprises:
receiving a transaction including a measurement dataset indicative of operational characteristics of an industrial field device and further including a performance indicator dataset including one or more figures of merit of the operational characteristics;
splitting the transaction into a first section and a second section, the first section including the performance indicator dataset and the second section including the measurement dataset;
storing the performance indicator dataset in a distributed database based on the first section; and
transmitting the measurement dataset to a non-distributed database based on the second section.
In at least one embodiment, a method comprises:
obtaining, from a distributed database, a performance indicator dataset including one or more figures of merit of operational characteristics of an industrial field device, the performance indicator dataset being stored in the distributed database with a cross-reference to a measurement dataset;
obtaining, from a non-distributed database, the measurement dataset;
performing a comparison between the measurement dataset and the performance indicator dataset, to test an integrity of the performance indicator dataset and of the measurement dataset.
In at least one embodiment, a non-transitory computer readable storage medium stores program code, loadable and executable by a processor, which when executed by the processor, configures the processor to execute the method of claim 12.
Some examples of the present disclosure generally provide for a plurality of circuits or other electrical devices. All references to the circuits and other electrical devices and the functionality provided by each are not intended to be limited to encompassing only what is illustrated and described herein. While particular labels may be assigned to the various circuits or other electrical devices disclosed, such labels are not intended to limit the scope of operation for the circuits and the other electrical devices. Such circuits and other electrical devices may be combined with each other and/or separated in any manner based on the particular type of electrical implementation that is desired. It is recognized that any circuit or other electrical device disclosed herein may include any number of microcontrollers, a graphics processor unit (GPU), integrated circuits, memory devices (e.g., FLASH, random access memory (RAM), read only memory (ROM), electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), or other suitable variants thereof), and software which co-act with one another to perform operation(s) disclosed herein. In addition, any one or more of the electrical devices may be configured to execute a program code that is embodied in a non-transitory computer readable medium programmed to perform any number of the functions as disclosed.
In the following, embodiments of the invention will be described in detail with reference to the accompanying drawings. It is to be understood that the following description of embodiments is not to be taken in a limiting sense. The scope of the invention is not intended to be limited by the embodiments described hereinafter or by the drawings, which are taken to be illustrative only.
Various example embodiments will now be described more fully with reference to the accompanying drawings in which only some example embodiments are shown. Specific structural and functional details disclosed herein are merely representative for purposes of describing example embodiments. Example embodiments, however, may be embodied in various different forms, and should not be construed as being limited to only the illustrated embodiments. Rather, the illustrated embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the concepts of this disclosure to those skilled in the art. Accordingly, known processes, elements, and techniques, may not be described with respect to some example embodiments. Unless otherwise noted, like reference characters denote like elements throughout the attached drawings and written description, and thus descriptions will not be repeated. The present invention, however, may be embodied in many alternate forms and should not be construed as limited to only the example embodiments set forth herein.
It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, components, regions, layers, and/or sections, these elements, components, regions, layers, and/or sections, should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of example embodiments of the present invention. As used herein, the term “and/or,” includes any and all combinations of one or more of the associated listed items. The phrase “at least one of” has the same meaning as “and/or”.
Spatially relative terms, such as “beneath,” “below,” “lower,” “under,” “above,” “upper,” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is turned over, elements described as “below,” “beneath,” or “under,” other elements or features would then be oriented “above” the other elements or features. Thus, the example terms “below” and “under” may encompass both an orientation of above and below. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly. In addition, when an element is referred to as being “between” two elements, the element may be the only element between the two elements, or one or more other intervening elements may be present.
Spatial and functional relationships between elements (for example, between modules) are described using various terms, including “connected,” “engaged,” “interfaced,” and “coupled.” Unless explicitly described as being “direct,” when a relationship between first and second elements is described in the above disclosure, that relationship encompasses a direct relationship where no other intervening elements are present between the first and second elements, and also an indirect relationship where one or more intervening elements are present (either spatially or functionally) between the first and second elements. In contrast, when an element is referred to as being “directly” connected, engaged, interfaced, or coupled to another element, there are no intervening elements present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., “between,” versus “directly between,” “adjacent,” versus “directly adjacent,” etc.).
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments of the invention. As used herein, the singular forms “a,” “an,” and “the,” are intended to include the plural forms as well, unless the context clearly indicates otherwise. As used herein, the terms “and/or” and “at least one of” include any and all combinations of one or more of the associated listed items. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including,” when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Expressions such as “at least one of,” when preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list. Also, the term “exemplary” is intended to refer to an example or illustration.
When an element is referred to as being “on,” “connected to,” “coupled to,” or “adjacent to,” another element, the element may be directly on, connected to, coupled to, or adjacent to, the other element, or one or more other intervening elements may be present. In contrast, when an element is referred to as being “directly on,” “directly connected to,” “directly coupled to,” or “immediately adjacent to,” another element there are no intervening elements present.
It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed substantially concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which example embodiments belong. It will be further understood that terms, e.g., those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
Before discussing example embodiments in more detail, it is noted that some example embodiments may be described with reference to acts and symbolic representations of operations (e.g., in the form of flow charts, flow diagrams, data flow diagrams, structure diagrams, block diagrams, etc.) that may be implemented in conjunction with units and/or devices discussed in more detail below. Although discussed in a particularly manner, a function or operation specified in a specific block may be performed differently from the flow specified in a flowchart, flow diagram, etc. For example, functions or operations illustrated as being performed serially in two consecutive blocks may actually be performed simultaneously, or in some cases be performed in reverse order. Although the flowcharts describe the operations as sequential processes, many of the operations may be performed in parallel, concurrently or simultaneously. In addition, the order of operations may be re-arranged. The processes may be terminated when their operations are completed, but may also have additional steps not included in the figure. The processes may correspond to methods, functions, procedures, subroutines, subprograms, etc.
Specific structural and functional details disclosed herein are merely representative for purposes of describing example embodiments of the present invention. This invention may, however, be embodied in many alternate forms and should not be construed as limited to only the embodiments set forth herein.
Units and/or devices according to one or more example embodiments may be implemented using hardware, software, and/or a combination thereof. For example, hardware devices may be implemented using processing circuitry such as, but not limited to, a processor, Central Processing Unit (CPU), a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a System-on-Chip (SoC), a programmable logic unit, a microprocessor, or any other device capable of responding to and executing instructions in a defined manner. Portions of the example embodiments and corresponding detailed description may be presented in terms of software, or algorithms and symbolic representations of operation on data bits within a computer memory. These descriptions and representations are the ones by which those of ordinary skill in the art effectively convey the substance of their work to others of ordinary skill in the art. An algorithm, as the term is used here, and as it is used generally, is conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of optical, electrical, or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, or as is apparent from the discussion, terms such as “processing” or “computing” or “calculating” or “determining” of “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device/hardware, that manipulates and transforms data represented as physical, electronic quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
In this application, including the definitions below, the term ‘module’ or the term ‘controller’ may be replaced with the term ‘circuit.’ The term ‘module’ may refer to, be part of, or include processor hardware (shared, dedicated, or group) that executes code and memory hardware (shared, dedicated, or group) that stores code executed by the processor hardware.
The module may include one or more interface circuits. In some examples, the interface circuits may include wired or wireless interfaces that are connected to a local area network (LAN), the Internet, a wide area network (WAN), or combinations thereof. The functionality of any given module of the present disclosure may be distributed among multiple modules that are connected via interface circuits. For example, multiple modules may allow load balancing. In a further example, a server (also known as remote, or cloud) module may accomplish some functionality on behalf of a client module.
Software may include a computer program, program code, instructions, or some combination thereof, for independently or collectively instructing or configuring a hardware device to operate as desired. The computer program and/or program code may include program or computer-readable instructions, software components, software modules, data files, data structures, and/or the like, capable of being implemented by one or more hardware devices, such as one or more of the hardware devices mentioned above. Examples of program code include both machine code produced by a compiler and higher level program code that is executed using an interpreter.
For example, when a hardware device is a computer processing device (e.g., a processor, Central Processing Unit (CPU), a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a microprocessor, etc.), the computer processing device may be configured to carry out program code by performing arithmetical, logical, and input/output operations, according to the program code. Once the program code is loaded into a computer processing device, the computer processing device may be programmed to perform the program code, thereby transforming the computer processing device into a special purpose computer processing device. In a more specific example, when the program code is loaded into a processor, the processor becomes programmed to perform the program code and operations corresponding thereto, thereby transforming the processor into a special purpose processor.
Software and/or data may be embodied permanently or temporarily in any type of machine, component, physical or virtual equipment, or computer storage medium or device, capable of providing instructions or data to, or being interpreted by, a hardware device. The software also may be distributed over network coupled computer systems so that the software is stored and executed in a distributed fashion. In particular, for example, software and data may be stored by one or more computer readable recording mediums, including the tangible or non-transitory computer-readable storage media discussed herein.
Even further, any of the disclosed methods may be embodied in the form of a program or software. The program or software may be stored on a non-transitory computer readable medium and is adapted to perform any one of the aforementioned methods when run on a computer device (a device including a processor). Thus, the non-transitory, tangible computer readable medium, is adapted to store information and is adapted to interact with a data processing facility or computer device to execute the program of any of the above mentioned embodiments and/or to perform the method of any of the above mentioned embodiments.
Example embodiments may be described with reference to acts and symbolic representations of operations (e.g., in the form of flow charts, flow diagrams, data flow diagrams, structure diagrams, block diagrams, etc.) that may be implemented in conjunction with units and/or devices discussed in more detail below. Although discussed in a particularly manner, a function or operation specified in a specific block may be performed differently from the flow specified in a flowchart, flow diagram, etc. For example, functions or operations illustrated as being performed serially in two consecutive blocks may actually be performed simultaneously, or in some cases be performed in reverse order.
According to one or more example embodiments, computer processing devices may be described as including various functional units that perform various operations and/or functions to increase the clarity of the description. However, computer processing devices are not intended to be limited to these functional units. For example, in one or more example embodiments, the various operations and/or functions of the functional units may be performed by other ones of the functional units. Further, the computer processing devices may perform the operations and/or functions of the various functional units without subdividing the operations and/or functions of the computer processing units into these various functional units.
Units and/or devices according to one or more example embodiments may also include one or more storage devices. The one or more storage devices may be tangible or non-transitory computer-readable storage media, such as random access memory (RAM), read only memory (ROM), a permanent mass storage device (such as a disk drive), solid state (e.g., NAND flash) device, and/or any other like data storage mechanism capable of storing and recording data. The one or more storage devices may be configured to store computer programs, program code, instructions, or some combination thereof, for one or more operating systems and/or for implementing the example embodiments described herein. The computer programs, program code, instructions, or some combination thereof, may also be loaded from a separate computer readable storage medium into the one or more storage devices and/or one or more computer processing devices using a drive mechanism. Such separate computer readable storage medium may include a Universal Serial Bus (USB) flash drive, a memory stick, a Blu-ray/DVD/CD-ROM drive, a memory card, and/or other like computer readable storage media. The computer programs, program code, instructions, or some combination thereof, may be loaded into the one or more storage devices and/or the one or more computer processing devices from a remote data storage device via a network interface, rather than via a local computer readable storage medium. Additionally, the computer programs, program code, instructions, or some combination thereof, may be loaded into the one or more storage devices and/or the one or more processors from a remote computing system that is configured to transfer and/or distribute the computer programs, program code, instructions, or some combination thereof, over a network. The remote computing system may transfer and/or distribute the computer programs, program code, instructions, or some combination thereof, via a wired interface, an air interface, and/or any other like medium.
The one or more hardware devices, the one or more storage devices, and/or the computer programs, program code, instructions, or some combination thereof, may be specially designed and constructed for the purposes of the example embodiments, or they may be known devices that are altered and/or modified for the purposes of example embodiments.
A hardware device, such as a computer processing device, may run an operating system (OS) and one or more software applications that run on the OS. The computer processing device also may access, store, manipulate, process, and create data in response to execution of the software. For simplicity, one or more example embodiments may be exemplified as a computer processing device or processor; however, one skilled in the art will appreciate that a hardware device may include multiple processing elements or processors and multiple types of processing elements or processors. For example, a hardware device may include multiple processors or a processor and a controller. In addition, other processing configurations are possible, such as parallel processors.
The computer programs include processor-executable instructions that are stored on at least one non-transitory computer-readable medium (memory). The computer programs may also include or rely on stored data. The computer programs may encompass a basic input/output system (BIOS) that interacts with hardware of the special purpose computer, device drivers that interact with particular devices of the special purpose computer, one or more operating systems, user applications, background services, background applications, etc. As such, the one or more processors may be configured to execute the processor executable instructions.
The computer programs may include: (i) descriptive text to be parsed, such as HTML (hypertext markup language) or XML (extensible markup language), (ii) assembly code, (iii) object code generated from source code by a compiler, (iv) source code for execution by an interpreter, (v) source code for compilation and execution by a just-in-time compiler, etc. As examples only, source code may be written using syntax from languages including C, C++, C #, Objective-C, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5, Ada, ASP (active server pages), PHP, Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, and Python®.
Further, at least one embodiment of the invention relates to the non-transitory computer-readable storage medium including electronically readable control information (processor executable instructions) stored thereon, configured in such that when the storage medium is used in a controller of a device, at least one embodiment of the method may be carried out.
The computer readable medium or storage medium may be a built-in medium installed inside a computer device main body or a removable medium arranged so that it can be separated from the computer device main body. The term computer-readable medium, as used herein, does not encompass transitory electrical or electromagnetic signals propagating through a medium (such as on a carrier wave); the term computer-readable medium is therefore considered tangible and non-transitory. Non-limiting examples of the non-transitory computer-readable medium include, but are not limited to, rewriteable non-volatile memory devices (including, for example flash memory devices, erasable programmable read-only memory devices, or a mask read-only memory devices); volatile memory devices (including, for example static random access memory devices or a dynamic random access memory devices); magnetic storage media (including, for example an analog or digital magnetic tape or a hard disk drive); and optical storage media (including, for example a CD, a DVD, or a Blu-ray Disc). Examples of the media with a built-in rewriteable non-volatile memory, include but are not limited to memory cards; and media with a built-in ROM, including but not limited to ROM cassettes; etc. Furthermore, various information regarding stored images, for example, property information, may be stored in any other form, or it may be provided in other ways.
The term code, as used above, may include software, firmware, and/or microcode, and may refer to programs, routines, functions, classes, data structures, and/or objects. Shared processor hardware encompasses a single microprocessor that executes some or all code from multiple modules. Group processor hardware encompasses a microprocessor that, in combination with additional microprocessors, executes some or all code from one or more modules. References to multiple microprocessors encompass multiple microprocessors on discrete dies, multiple microprocessors on a single die, multiple cores of a single microprocessor, multiple threads of a single microprocessor, or a combination of the above.
Shared memory hardware encompasses a single memory device that stores some or all code from multiple modules. Group memory hardware encompasses a memory device that, in combination with other memory devices, stores some or all code from one or more modules.
The term memory hardware is a subset of the term computer-readable medium. The term computer-readable medium, as used herein, does not encompass transitory electrical or electromagnetic signals propagating through a medium (such as on a carrier wave); the term computer-readable medium is therefore considered tangible and non-transitory. Non-limiting examples of the non-transitory computer-readable medium include, but are not limited to, rewriteable non-volatile memory devices (including, for example flash memory devices, erasable programmable read-only memory devices, or a mask read-only memory devices); volatile memory devices (including, for example static random access memory devices or a dynamic random access memory devices); magnetic storage media (including, for example an analog or digital magnetic tape or a hard disk drive); and optical storage media (including, for example a CD, a DVD, or a Blu-ray Disc). Examples of the media with a built-in rewriteable non-volatile memory, include but are not limited to memory cards; and media with a built-in ROM, including but not limited to ROM cassettes; etc. Furthermore, various information regarding stored images, for example, property information, may be stored in any other form, or it may be provided in other ways.
The apparatuses and methods described in this application may be partially or fully implemented by a special purpose computer created by configuring a general purpose computer to execute one or more particular functions embodied in computer programs. The functional blocks and flowchart elements described above serve as software specifications, which can be translated into the computer programs by the routine work of a skilled technician or programmer.
A node, in at least one embodiment, includes a control circuitry. The control circuitry is configured to obtain a measurement dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The control circuitry is also configured to determine a performance indicator dataset based on the measurement dataset. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The control circuitry is also configured to trigger storage of the performance indicator dataset in a distributed database. The control circuitry is also configured to trigger storage of the measurement dataset in a non-distributed database.
A computer-implemented method, in at least one embodiment, includes obtaining a measurement dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The method also includes determining a performance indicator dataset based on the measurement dataset. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The method also includes triggering storage of the performance indicator dataset in the distributed database, and storage of the measurement dataset in a non-distributed database.
A computer program or a computer-program product or a computer-readable storage medium, in at least one embodiment, includes program code that can be executed by least one processor. When executing the program code, the processor performs a method. The method includes obtaining a measurement dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The method also includes determining a performance indicator dataset based on the measurement dataset. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The method also includes triggering storage of the performance indicator dataset in the distributed database, and storage of the measurement dataset in a non-distributed database.
A mining node of a distributed database infrastructure, in at least one embodiment, includes control circuitry. The control circuitry is configured to receive a transaction including a measurement dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The transaction also includes a performance indicator dataset. The performance indicator dataset comprises one or more figures of merit of the operational characteristics. The control circuitry is further configured to split the transaction into a first action and into a second section. The first section comprises the performance indicator dataset and the second section comprises the measurement dataset. The performance indicator dataset is stored in the distributed database of the distributed database infrastructure, based on the first section. The measurement dataset is transmitted to a non-distributed database based on the second section.
A computer-implemented method, in at least one embodiment, includes receiving a transaction. The transaction includes a measurement dataset and further includes a performance indicator dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The method includes splitting the transaction into a first section and a second section. The first section includes the performance indicator dataset; and the second section includes a measurement dataset. The method also includes storing the performance indicator dataset in the distributed database based on the first section. The method further includes transmitting the measurement dataset to a non-distributed database based on the second section.
A computer program or a computer-program product or a computer-readable storage medium, in at least one embodiment, includes program code that can be executed by least one processor. When executing the program code, the processor performs a method. The method includes receiving a transaction. The transaction includes a measurement dataset and further includes a performance indicator dataset. The measurement dataset is indicative of operational characteristics of an industrial field device. The performance indicator dataset includes one or more figures of merit of the operational characteristics. The method includes splitting the transaction into a first section and a second section. The first section includes the performance indicator dataset; and the second section includes a measurement dataset. The method also includes storing the performance indicator dataset in the distributed database based on the first section. The method further includes transmitting the measurement dataset to a non-distributed database based on the second section.
A node, in at least one embodiment, includes a control circuitry. The control circuitry is configured to obtain a performance indicator dataset from a distributed database. The performance indicator dataset includes one or more figures of merit of operational characteristics of an industrial field device. The performance indicator dataset is stored in the distributed database with a cross-reference to a measurement dataset. The control circuitry is also configured to obtain the measurement dataset from a non-distributed database, based on the cross-reference. Then, the control circuitry is configured to perform a comparison between the measurement dataset and the performance indicator dataset, to test an integrity of the performance indicator dataset end of the measurement dataset.
A computer-implemented method, in at least one embodiment, includes obtaining a performance indicator dataset from a distributed database. The performance indicator dataset include one or more figures of merit of operational characteristics of an industrial field device. The performance indicator dataset is stored in the distributed database with a cross-reference to a measurement dataset. The method also includes obtaining, from a non-distributed database, the measurement dataset based on the cross-reference. The method further includes performing a comparison between the measurement dataset and the performance indicator dataset, to test an integrity of the performance indicator dataset end of the measurement dataset.
A computer program or a computer-program product or a computer-readable storage medium, in at least one embodiment, includes program code that can be executed by least one processor. When executing the program code, the processor performs a method. The method includes obtaining a performance indicator dataset from a distributed database. The performance indicator dataset include one or more figures of merit of operational characteristics of an industrial field device. The performance indicator dataset is stored in the distributed database with a cross-reference to a measurement dataset. The method also includes obtaining, from a non-distributed database, the measurement dataset based on the cross-reference. The method further includes performing a comparison between the measurement dataset and the performance indicator dataset, to test an integrity of the performance indicator dataset end of the measurement dataset.
Unless explicitly stated otherwise the terms “perform”, “calculate”, “computer-implemented”, “calculate”, “establish”, “generate”, “configure”, “reconstruct” and the like preferably relate to actions and/or processes and/or processing steps which modify data and/or which generate data and/or which transform data in other data. Data can be represented by physical quantities or be present as physical quantities, e.g., as electrical pulses. In particular, the term “computer” should be interpreted broadly to cover all electronic devices having data processing capabilities. Computers can, thus, be implemented by personal computers, servers, memory programmable controllers, handheld computer systems, pocket PC devices, wireless communication devices and other communication devices that can process data, processors and other electronic devices for processing data.
In the context of the present disclosure “computer-implemented” can relate to an implementation of a method in which a processor performs at least one method step.
A processor in the context of the present disclosure can be a machine or electronic circuit. A processor can be specifically implemented by a central processing unit (CPU) or a microprocessor or a microcontroller, e.g., an application-specific integrated circuit (ASIC) or a digital signal processor, possibly in combination with a memory unit for storing program code, etc. A processor can alternatively or additionally be implemented by an integrated circuit (IC), specifically a field programmable gate array (FPGA), an ASIC or a digital signal processor (DSP) or a graphic processing unit (GPU). Alternatively or additionally, a processor can be implemented by a virtual processor or a virtual machine or a soft CPU. A processor can be implemented by a programmable processor having configuration interfaces that facilitate configuration of various techniques described herein. The programmable processor can be configured to implement method steps as described herein, components, modules, or other aspects of the techniques described herein.
A “memory” or “memory unit” or “memory module” or the like can be implemented by a volatile memory in the form of random access memory (RAM) or a non-volatile memory such as a hard disc or data carrier.
The term “include”—specifically with respect to data and/or information—can relate to a (computer-implemented) storing of respective information or the respective date in a data structure/data set (which, e.g., in turn is also stored in a memory unit) in the context of the present disclosure.
The term “providing”—in particular in regard to data and/or information—can relate to a computer-implemented providing in connection with the present disclosure. Said providing may be implemented by an interface, e.g., a database interface, a network interface, an interface to a memory unit. It is possible that respective data and/or information are communicated and/or transmitted and/or retrieved and/or received when providing via the interface.
The term “providing” can also relate to a loading or saving, e.g., of a transaction together with respective data in the context of the present disclosure. For example, this can be implemented on or by a memory module.
The term “providing” can also relate to communicating (or transmitting or receiving or transfer) of respective data from a node to another node of the distributed database infrastructure (respectively of the corresponding infrastructure) in the context of the present disclosure.
A “smart-contract process” or “smart-contract functionality” can refer to the execution of program code, e.g., of a control instruction, in a process by way of the distributed database or the respective infrastructure.
A “checksum”, e.g., a data-block checksum, a data checksum, a node checksum, a transaction checksum, a chaining checksum or the like can relate to a cryptographic checksum or a cryptographic hash or hash value, in the context of the present disclosure. Such checksums can, in particular, be determined across a data set and/or data and/or one or more transactions and/or a subsection of a data block, e.g., the block header of a block of the blockchain or the data block header of a data block or only a part of the transaction of a data block. A checksum can be specifically implemented by a checksum or checksums or a hash value or hash values of a hash tree, e.g., a Merkle tree, a Patricia tree. Moreover, a “checksum” can also be implemented by a digital signature or a cryptographic message authentication code. By way of checksums, it is possible to implement cryptographic protection/protection against manipulation for transactions and the associated data and datasets on various levels of the distributed database. For example, if there is a need for an increased level of security, it would be possible to create and validate checksums on transaction level. For example, if a reduced level of security is required, then it would be possible to create and validate checksums on block level—e.g., across the entire block or only across a part of the data block and/or a part of the transaction.
A “data-block checksum” can relate to a checksum which is calculated across a part or all transactions of a data block in the context of the present disclosure. A node can validate/determine the integrity/authenticity of the respective part of the data block by way of data-block checksums. Alternatively or additionally, the data-block checksum can also be formed across transactions of a preceding data block/predecessor data block. The data-block checksum can, in particular, be implemented via a hash tree, e.g., a Merkle tree [1] or a Patricia tree. Here, the data-block checksum can be the root checksum of the Merkle tree of the Patricia tree or of another binary hash tree. It would be possible that transactions are saved by way of further checksums from the Merkle tree or the Patricia tree, respectively, e.g., by using the transaction checksums, wherein in particular the further checksums can relate to leaves of the Merkle tree or the Patricia tree, respectively. The data-block checksum can, thereby, protect the transaction by forming the root checksum from the further checksums. The data-block checksum can, in particular, be calculated for the transactions of a specific data block of the data blocks. In particular, such a data-block checksum can be included in a subsequent data block of the given data block, e.g., to chain this subsequent data block with the preceding data blocks and, in particular to make the integrity of the distributed database infrastructure testable. Thereby, the data-block checksum can implement the chaining checksum or, at least, go into the chaining checksum. The header of a data block (e.g., of a new data block or a data block for which the data-block checksum is determined) can include the data-block checksum.
A “transaction checksum” can relate to a checksum which is determined across a transaction of a data block, in connection with the present disclosure. In addition, the calculation of the data-block checksum of a respective data block can be accelerated, because for this already calculated transactions checksums can be readily used as leaves of a Merkle tree.
A “chaining checksum” in the context of the present disclosure can relate to a checksum which for the respective data block of a Blockchain indicates or references to a preceding data block of the Blockchain—which is often referred to as “previous block hash” in literature [1]. For this, in particular, a respective chaining checksum is determined for the preceding data block. The chaining checksum can be implemented, e.g., by a transaction checksum or a data-block checksum of a data block, i.e., of an existing data block of the Blockchain; to thereby chain a new data block with a (existing) data block of the Blockchain. For example, it would also be possible that a checksum is determined across a header of the preceding data block or across the entire preceding data block to be used as a chaining checksum. For example, this could also be calculated for multiple or all of the preceding data blocks. For example, the chaining checksum could also be implemented by a checksum determined across the header of a data block in the data-block checksum. A respective data block of the Blockchain includes, however, preferably a chaining checksum that has been calculated or relates to a preceding data block, specifically, the next-neighbor preceding data block directly adjacent to the respective data block. For example, it would also be possible that a respective chaining checksum is determined only across a part of the respective data block, e.g., the preceding data block. Thereby, a data block can be implemented which has an integrity protected part and a non-protected part. Thereby, a data block can be implemented that has a non-changeable integrity protected part and that has a non-protected part that can be modified later on. Integrity protected can mean that a change of the integrity protected data can be detected by way of a checksum.
Next, example implementations of a transaction are described.
The data—that is, e.g., stored in or written to a transaction of a data block—can be provided in various manners. Instead of data—e.g., user data such as measurement data or data/ownership structure regarding ASICs—a transaction of a data block can rather include the checksum for such data. The respective checksum can be implemented in various manners. For example, a respective data-block checksum of a data block, e.g., including the respective data, of another database or of the distributed database, a transaction checksum of a data block of the respective data, e.g., of the distributed database or of another database, or a data checksum determined across the data can be used.
In addition, the respective transaction can optionally include a link to or an indication of a memory position—e.g., an address of a file server and indications where the respective data are to be found on the file server, i.e., pertaining to off-chain storage; or an address of another distributed database which includes the data. The respective data could, e.g., also be provided in a further transaction of a further data block of the Blockchain—e.g., if the respective data and the associated checksums are included in different data blocks. It would also be possible that those data are provided via another communication channel—e.g., via another database and/or a cryptographically-secured communication channel.
Further, it would be possible that in addition to the checksum an add-on data set—e.g., a link or an indication to a memory position—is provided in the respective transaction. The add-on data set can, in particular, indicate where the data can be retrieved. This can be helpful to limit the amount of data of the blockchain.
The term “security protected” can, specifically, relate to a protection that can be implemented by a cryptographic method. For example, this can be implemented by using a distributed database infrastructure for the providing or communication or transmitting of respective data/transactions. This can be implemented by a combination of the various checksums—e.g., cryptographic—, by appropriate synergetic interaction between the checksums, to, e.g., increase the security or the cryptographic security for the data of the transactions. In other words, “security protected” in the context of the present disclosure can also relate to “cryptographically protected” and/or “protected against manipulation”, wherein “protected against manipulation” can also be referred to as “protected integrity”.
Insertion of transactions into a distributed database infrastructure can include chaining of data blocks of a Blockchain. The term “chaining of data blocks” in the connection of the present disclosure can relate to the data blocks respectively including information (such as the chaining checksum) which links to another data block or multiple other data blocks [1], [4], [5].
Insertion of transactions into a distributed database can include saving the transactions in one or more data blocks of the Blockchain.
Insertion of transactions can include validating and/or confirming transactions.
The term “insertion of transactions into the distributed database” or “writing of data to the distributed database” and the like can relate to communicating a transaction or transactions or a data block including the transactions to one or more nodes of a distributed database infrastructure. If those transactions are successfully validated, e.g., via the one or more nodes, these transactions can be chained as a new data block with at least one existing data block [1], [4], [5]. For this, the respective transactions are stored in a new data block. In particular, this validating and/or chaining can be implemented by a trusted node, e.g., a mining node, a blockchain oracle or a blockchain platform.
In particular, a blockchain can relate to a blockchain as a service, such as has been proposed by Microsoft or IBM. In particular, trusted nodes and/or other nodes can deposit a node checksum, e.g., a digital signature, in a data block, e.g., in a data block that has been validated by the respective node and which is then chained, in particular to facilitate identification of the creator of the data block and/or identification of the node. Here, the node checksum indicates which node has chained the respective data block with at least one other data block of the Blockchain.
A “transaction” or “transactions” in connection with the present disclosure can relate to a smart contract [4], [5], a data structure or a transaction data set, which, in particular, respectively include a transaction or multiple transactions. The term “transaction” or “transactions” can also relate to the data of a transaction of a data block of a blockchain, in connection with the present disclosure. A transaction can, e.g., include a program code which, e.g., implements a smart contract. For example, a transaction can also relate to a control transaction and/or a confirmation transaction in the context of the present disclosure. Alternative, a transaction can also be implemented by a data structure which saves the data (e.g., the control instructions and/or the contract data and/or other data such as video data, user data, measurement data etc.).
In particular, the term “saving transactions in data blocks”, “saving transaction” and the like can relate to a direct saving or indirect saving. A direct saving can relate to the respective data block of the Blockchain or the respective transaction of the Blockchain including the respective data. An indirect saving can relate to the respective data block or the respective transaction including a checksum and, optionally, an add-on data set, e.g., a link to or an indication of a memory location for respective data; hence, the respective data are not directly saved in the data block (or the transaction). Rather, a checksum is provided for these data in the data block. In particular, these checksums can be validated when saving transactions in data blocks, such as has been explained above with respect to “inserting into the distribute database”.
A “program code”—such as a smart contract—can relate to a program instruction or multiple program instructions which are saved in one or more transactions, in connection with the present disclosure. The program code can be executable and can be executed, e.g., by the distributed database. This can be implemented, e.g., by a runtime environment, e.g., of a virtual machine, wherein the runtime environment or the program code are preferably Turing complete. The program code is preferably executed by the infrastructure of the distributed database [4], [5]. Here, a virtual machine is implemented by the infrastructure of the distributed database. It is possible to execute the program code when validating a corresponding transaction.
A “smart contract” can relate to an executable program code in connection with the present disclosure [4], [5]—see, in particular, explanations with respect to “program code” provided above. The smart contract is preferably saved in a transaction of the distributed database—e.g., a blockchain—, e.g., in a data block. For example, the smart contract can be executed in the same manner as has been described in connection with the definition of “program code”, in particular in connection with the subject disclosure.
The term “proof of work” can relate to solving a computationally expensive task, in particular, depending on the content of a data block or the content of a specific transaction, in connection with the present disclosure [1], [4], [5]. Such a computationally expensive task can also be referred to as cryptographic puzzle.
The term “distributed database”, can generally relate to a decentralized, distributed database, a blockchain, a distributed ledger, a distributed memory system, a distributed ledger technology (DLT) based system (DLTS), a revision secure database system, a cloud, a cloud-service, a blockchain in a cloud or a peer-to-peer database system, in the context of the present disclosure. Also, various implementations of a blockchain or of a DLTS can be used, e.g., such as a blockchain or a DLTS that is implemented by way of a directed acyclic graph (DAG), a cryptographic puzzle, a hash graph or a combination of these variants [6], [7]. It would also be possible to implement different consensus algorithms. For example, a consensus algorithm can be implemented by way of a cryptographic puzzle, a gossip about gossip, a virtual voting or a combination of such techniques (e.g., gossip about gossip combined with virtual voting) [6], [7]. For example, if a blockchain is used, then this can, in particular, be implemented by a bitcoin-based implementation or an Ethereum-based implementation [1], [4], [5]. The term “distributed database” can also relate to a distributed database infrastructure that has at least a part of its nodes and/or devices and/or infrastructure implemented by a cloud. For example, the respective components can be implemented as nodes/devices in the cloud (e.g., as virtual nodes in a virtual machine). This can be implemented by WMware, Amazon web services or Microsoft Azure. Due to the increased flexibility of the described implementation scenarios, it is, in particular, possible to combine partial aspects of the described implementation scenarios with each other, e.g., by using a hash graph as blockchain, wherein the blockchain itself can also be a block batch.
For example, if a directed acyclic graph (DAG) is used (e.g., IOTA or Tangle), transactions or blocks or nodes of the graph are connected with each other via directed edges. I.e., (all) edges are (always) having the same direction, e.g., as observed for time. In other words it is, in particular, not possible to propagate through or visit transactions or blocks or nodes of the graph backwards (i.e., opposite to the common unified direction). Acyclic means, in particular, that there are no loops or ring closures when traversing the graph. For example, a distributed database infrastructure can relate to a public distributed database infrastructure (e.g., a public blockchain) or a closed (private) distributed databased system (e.g., a private blockchain).
For example, in the case of a public distributed database infrastructure, the nodes and/or devices can join the distributed database infrastructure without proof of authorization or authentication or login credentials, respectively be accepted by the distributed database infrastructure without such information. In particular, in such a case the operator of the nodes and/or devices can remain anonymous.
For example, in the case of implementation of the distributed database infrastructure by a closed database system, new nodes and/or devices can require a valid proof of authorization and/or valid authentication information and/or valid credentials and/or valid login information to join the distributed database infrastructure or be accepted by the distribute database infrastructure.
A distributed database infrastructure can also be implemented by a distributed communication system for data exchange. For example, this can be a network or a peer-to-peer network.
The term “data block”—that can be, depending on the context and implementation, also be referred to as “constituent” or “block”—can refer to, in the context of the present disclosure, a data block of a distributed database—e.g., a blockchain or a peer-to-peer database—, which are, in particular, implemented as a data structure and, preferably, include one of the transactions or multiple of the transactions. In an implementation, the database or the database system can be a DLT based system (DLTS) or a blockchain and the data block can be a block of the blockchain or of the DLTS.
As a general rule, a data block can, e.g., include indications of the size—e.g., data volume in bytes—of the data block, a data block header (block header), a transaction counter and one or more transactions [1]. The data block header can include a version, a chaining checksum, a data-block checksum, a timestamp, a proof of work, a Nonce—i.e., a unique value, a random value or a counter which is used for the proof of work [1], [4], [5]. A data block can, e.g., also simply relate to a respective memory range or address range of the overall data that is stored in the distributed database. Thereby, it is possible to implement blockless distributed database infrastructure such as the IOT chain (ITCA), IOTA, Byteball, etc. Here, the functionality of the blocks of a blockchain and of the transactions are combined with each other in such a manner that, e.g., the transactions themselves secure the sequence or chains of transactions of the distribute database, such that they are, in particular, saved in a secured manner. For this the transactions can be chained by way of a chaining checksum, e.g., by using a separate checksum or the transaction checksum of one or more transactions as chaining checksum, which is saved in a new transaction in the distributed database infrastructure when storing the new transaction in the distributed database. In such a scenario, a data block can, e.g., also include one or more transactions, wherein in a simple scenario a data block relates to a single transaction.
The term “Nonce” can relate to, in connection with the present disclosure, a cryptographic nonce—which is an abbreviation for “used only once” [2] or “number used once” [3]. In particular, a Nonce indicates individual numbers or a combination of letters that is preferably only used once in the respective context, e.g., transaction, data communication.
The term “preceding data blocks of a (given) data block of the Blockchain” can relate, in connection with the present disclosure, e.g., to the data block of the Blockchain that is a direct predecessor of the (given) data block. Alternatively, the term “preceding data blocks of a (given) data block of the distribute database” can also relate to all data blocks of the Blockchain that precede the given data block. Thereby, the chaining checksum or the transaction checksum can be determined across the direct preceding data block (respectively the transactions thereof) or all data blocks preceding the given data block (respectively the respective transactions).
The terms “blockchain node”, “node”, “node of an infrastructure of a distributed database”, “mining node” and the like can relate, in the context of the present disclosure, to devices—e.g., mobile devices, wireless communication devices, computers, smartphones, clients or participants—that perform operations associated with the distributed database, e.g., a blockchain [1], [4], [5]. Such nodes can, e.g., execute transactions of a distributed database or the respective data blocks or can insert new data blocks including new transactions into the distributed database by way of new data blocks. In particular, this validation and/or chaining can be implemented by a trusted node, e.g., a mining node, or exclusively by trusted nodes. A trusted node is a node that has additional security measures—e.g., firewalls, access restrictions to the node or the like—to avoid manipulation of the node. Alternatively or additionally, a trusted node can, e.g., save a node checksum—e.g., a digital signature or a certificate—in the new data block when chaining the new data block. Thereby, it is possible to provide the proof that indicates that the respective data block has been inserted by a specific node, respectively indicate the originator.
As a general rule, device or the devices can be implemented by devices of a technical system and/or an industrial plant and/or an automation network and/or a fabrication plant, that can also be nodes of the infrastructure of the distribute database. Thereby, the devices can be mobile devices or devices of the Internet of things that can also be nodes of the infrastructure of the distributed database. Nodes can, e.g., include at least one processor, e.g., to execute their computer-implemented functionality.
The term “blockchain oracle” and the like can relate, in the context of the present disclosure, to nodes, devices or computers that include a security module that has software protection mechanisms—e.g., cryptographic methods—, mechanical protection mechanisms—e.g., a lockable housing—or electric protection measures—e.g., tamper protection or a protection system that deletes data of the security module in the case of unauthorized use/modification of the blockchain oracle. The security module can include, e.g., cryptographic keys that are required for the calculation of checksums—e.g., of transaction checksums or node checksums.
The term “computer” or “device” can relate to a computer (system), a client, a smartphone, a device or a server that are arranged outside of the blockchain, respectively or are not participants of the distributed database infrastructure, i.e., do not execute operations of the distributed database or simply retrieve those without executing transactions, inserting data blocks or calculate proof of works. Alternatively, the term “computer” or “device” can also relate to a node of the infrastructure of the distributed database. In other words, a device can in particular implement a node of the distributed database infrastructure or a device outside of the blockchain and the distributed database, respectively. A device outside of the distributed database infrastructure can, e.g., access the data—e.g., the transactions or the control transactions—of the distributed database. A device outside of the distributed database infrastructure can be controlled by nodes—e.g., by way of smart contracts and/or blockchain oracles. For example, if a control of a device—e.g., a device implemented as a node or a device outside of the distributed database infrastructure—is implemented by a node, then this can occur via a smart contract which, in particular, is saved in a transaction of the distributed database.
Swirlds Tech Report SWIRLDS-TR-2016-01, 31 May 2016, the entire contents of which are hereby incorporated herein by reference.
It is to be understood that the features mentioned above and those yet to be explained below may be used not only in the respective combinations indicated, but also in other combinations or in isolation without departing from the scope of the invention.
Some examples of the present disclosure generally provide for a plurality of circuits or other electrical devices. All references to the circuits and other electrical devices and the functionality provided by each are not intended to be limited to encompassing only what is illustrated and described herein. While particular labels may be assigned to the various circuits or other electrical devices disclosed, such labels are not intended to limit the scope of operation for the circuits and the other electrical devices. Such circuits and other electrical devices may be combined with each other and/or separated in any manner based on the particular type of electrical implementation that is desired. It is recognized that any circuit or other electrical device disclosed herein may include any number of microcontrollers, a graphics processor unit (GPU), integrated circuits, memory devices (e.g., FLASH, random access memory (RAM), read only memory (ROM), electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), or other suitable variants thereof), and software which co-act with one another to perform operation(s) disclosed herein. In addition, any one or more of the electrical devices may be configured to execute a program code that is embodied in a non-transitory computer readable medium programmed to perform any number of the functions as disclosed.
In the following, embodiments of the invention will be described in detail with reference to the accompanying drawings. It is to be understood that the following description of embodiments is not to be taken in a limiting sense. The scope of the invention is not intended to be limited by the embodiments described hereinafter or by the drawings, which are taken to be illustrative only.
The drawings are to be regarded as being schematic representations and elements illustrated in the drawings are not necessarily shown to scale. Rather, the various elements are represented such that their function and general purpose become apparent to a person skilled in the art. Any connection or coupling between functional blocks, devices, components, or other physical or functional units shown in the drawings or described herein may also be implemented by an indirect connection or coupling. A coupling between components may also be established over a wireless connection. Functional blocks may be implemented in hardware, firmware, software, or a combination thereof.
Hereinafter, techniques of storing data are described. The techniques described herein can be applied for various kinds and type of data. Various techniques will be described in connection with storing measurement datasets. Measurement datasets can be indicative of one or more observables of an event. For example, the event may be a software event or a physical event. For example, to obtain a measurement dataset that is indicative of one or more observables of a software event, a so-called software oracle could be used. The software oracle could track or monitor your content of a webpage, traffic on a communication line, the status of report messages issued by an IOT device, etc. For example, the event may be a physical event. To obtain a measurement dataset that is indicative of one or more observables of a physical event, a hardware oracle or sensor device could be used. The sensor device could measure, e.g., one or more of the following physical observables: light, pressure, temperature, current, voltage, humidity, etc.
As a general rule, a measurement dataset can include raw measurement data and/or processed measurement data. Raw measurement data can correspond to the output of the oracle or of the sensor device; while processed measurement data can correspond to the raw measurement data after some processing in accordance with a processing algorithm. There can be a tendency that processed measurement data is smaller if compared to the raw measurement data. To give an example: it would be possible that a 2-D stereo camera outputs to 2D images having pixels, each pixel having a certain color or brightness value. Then, this raw measurement data can be processed to, e.g., identify objects in the 2-D images using object recognition. The objects could be identified with a bounding box or position label and a category label indicative of the type of the object, e.g., vehicle, person, tree, etc. The processed measurement data could also include distances for the object obtained from a comparison of multiple 2-D images at a given frame. In such a scenario, the processed measurement data may be significantly smaller if compared to the raw measurement data. For example, a list of objects with associated categories and distances may be significantly smaller if compared to the set of pixels (e.g., a few megapixels), each pixel having a n-bit value indicating its brightness, etc. While the examples above have been described in connection with an implementation using a 2-D stereo camera as the source of the measurement dataset, the techniques described herein are not limited to such an example. Various other kinds and types of sources of the measurement dataset are conceivable.
More specifically, the measurement datasets as described herein can be indicative of operational characteristics of an industrial field device. I.e., the event for which observables are included in the measurement dataset can be associated with the operation of an industrial field device. Here, the type of the operational characteristics can depend on the type of industrial field device.
As a general rule, the techniques described herein can find application in various fields such as monitoring characteristics of electrical grids and microgrids, the industrial field devices pertaining to nodes of the grids or microgrids; monitoring characteristics of industrial field devices such as turbines, subsea equipment, medical equipment such as magnetic-resonance imaging or computer tomography; monitoring characteristics of vehicles such as trains or ships or airplanes; etc. Along with such different types of industrial field devices, also the measurement datasets vary.
Various techniques are based on the finding that for various kinds and types of measurement datasets it is possible to determine a performance indicator dataset. For example, where the measurement dataset is indicative of operational characteristics of an industrial field device, it is possible to determine the performance indicator dataset, wherein the performance indicator dataset includes one or more figures of merit of the operational characteristics. As such, the performance indicator dataset can correspond to processed measurement data. The figures of merit can summarize the operation of the industrial field device. The figures of merit can describe abnormalities of the operation. The figures of merit can describe average values of the operational characteristics.
The performance indicator dataset can be determined based on raw measurement data or further processed measurement data taking into consideration one or more operational constraints associated with the industrial field device. For example, depending on the particular type of industrial field device, different operational constraints can govern which information is significant for the performance of the industrial field device. To give an example: for a stereo camera, dead times in the refresh rate with which images are obtained from the image sensors can be a significant performance indicator; while, on the other hand, for a disc brake of a train car a spectral power density within a certain part of a vibrational spectrum can be a significant performance indicator. In other words, and more generally: the performance indicator dataset can be unique to the type of industrial field device and be associated with the operational characteristics of the industrial field device.
The performance indicator dataset can, typically, include human-understandable application-layer data regarding the operational characteristics of the industrial field device. I.e., processed information that can be directly output via a human-machine-interface may be included in the performance indicator dataset.
As a general rule, the performance indicator dataset can be smaller than the measurement dataset. The performance indicator dataset could condense or summarize information generally included in the measurement dataset. For example, determining the performance indicator dataset can include applying a low-pass filter, identifying a maximum or minimum, detecting events in the measurement dataset, etc.
To give a few examples, the wherein the performance indicator dataset could include at least one of the following: time-averaged data samples of the measurement dataset; peak data samples of the measurement dataset; event characteristics of the measurement dataset; or time-averaged use characteristics of the industrial field device.
Various techniques employ a distributed database for storing data associated with industrial field devices. In particular, various techniques employ a Blockchain for implementing the distributed database. While various techniques will be described in connection with a scenario in which the distributed database is implemented by a Blockchain, similar techniques may be applied for other kinds and types of distributed databases, e.g., blockless databases, a DLTS, etc.
According to various examples, it is possible to facilitate on-chain storage—i.e., storage on the Blockchain or another distributed database—of a performance indicator dataset that is associated with a measurement dataset. According to various examples, it is possible to facilitate off-chain storage of the measurement dataset—i.e., storage on a non-distributed database. The performance indicator dataset and the measurement dataset can be stored in a cross-referenced manner.
The measurement dataset does not need to be stored on-chain. Since typically the measurement dataset is comparably large in size, not having to store the measurement dataset on-chain helps to relax computational requirements imposed on the Blockchain infrastructure. At the same time, by storing the performance indicator dataset on-chain, a high security against manipulation can be provided. For example, if the measurement dataset was manipulated, this manipulation would most likely also result in a change of the performance indicator dataset (or else the manipulation would be insignificant). This could help to identify the manipulation by comparing the corresponding performance indicator dataset against the performance indicator dataset stored on-chain.
As a general rule, it would be possible to separate/split the performance indicator dataset from the measurement dataset at a mining node of the Blockchain infrastructure. Thus, the mining node could implement switch-point functionality, either routing the performance indicator dataset to the on-chain storage in the Blockchain, or routing the measurement dataset to an off-chain storage to a non-Blockchain database.
The techniques described herein facilitate compatibility with existing Blockchain functionality, in particular with existing smart contract-based functionality. For example, it would be possible that a mining node of the Blockchain infrastructure receives a transaction that includes, both, the measurement dataset, as well as the performance indicator dataset. Then, the mining node could separate the performance indicator dataset and the measurement dataset. A transaction checksum or block checksum or chaining checksum used for the Blockchain could be based on the performance indicator dataset, but not on the measurement dataset.
The integrity and authenticity of the measurement dataset that is stored off-chain can be ensured. For example, an optional signature can be included in the transaction. The integrity can then be checked based on the signature—e.g., using a public-private-key pair—by way of a smart contract implemented in the Blockchain infrastructure. This could also be implemented by a client node.
The system 100 includes a measurement node 101. The measurement node 101 includes a processor 105 and a memory 106, forming a control circuitry. The measurement node 101 also includes a communication interface 107 that is connected to a communication network 171, e.g., the Internet. The measurement node 101 can implement oracle functionality. For example, the measurement node 101 could implement a hardware oracle and/or a software oracle. For example, the measurement node 101 could include or be otherwise coupled to a sensor device. The sensor device could obtain raw measurement data indicative of one or more physical observables of an event associated with an industrial field device 199 (as schematically illustrated in
The system 100 also includes a Blockchain infrastructure 150. The Blockchain infrastructure 150 includes multiple mining nodes, wherein
The system 100 also includes the third-party node 111. The node 111 includes a processor 115 and a memory 116. The processor 115 and the memory 116 implement a control circuitry. The node 111 also includes a communication interface 117. The processor 115 can communicate with the communication network 171 via the communication interface 117.
While in the example of
As illustrated in
As a general rule, the non-distributed database 172 may operate without multiple replicates across different site. I.e., a centralized copy of the non-distributed database may be used for operational access. The non-distributed database 172 may not be implemented as a distributed ledger or Blockchain. The non-distributed database 172, thus, is different from the Blockchain 159.
In particular, various scenarios pertain to storing a measurement dataset. Various scenarios also pertain to storing a performance indicator dataset that is associated with the measurement dataset. Details with respect to the measurement dataset in the performance indicator dataset are illustrated in connection with
Next, details with respect to storing the measurement dataset 210 and the performance indicator dataset 205 are explained in connection with
In box 1001, a measurement dataset is obtained. The measurement dataset is indicative of one or more operational characteristics of an industrial field device. To give an example, the measurement dataset 210 according to the example of
Next, at blocks 1002, a performance indicator dataset is determined based on the measurement dataset of box 1001. To give an example, the performance indicator dataset 205 according to the example of
As a general rule, various options are available for determining the performance indicator dataset in box 1002. To give an example, it would be possible that the performance indicator dataset is determined using a performance metric algorithm. The performance metric algorithm can transform the measurement dataset into the performance indicator dataset. For example, the performance metric algorithm can be unique to the particular industrial field device or type of industrial field device. The performance metric algorithm can reduce the amount of data such that the data size of the measurement dataset is larger than the data size of the performance indicator dataset.
In box 1003, storage of the performance indicator dataset and storage of the measurement dataset is triggered. In particular, the performance indicator dataset is stored in a distributed database, e.g., on-chain in Blockchain 159 (cf
Triggering storage in box 1003 can include, e.g., transmitting the measurement dataset to the non-distributed database. The non-distributed database can be accessed with a WRITE-request. Triggering storage in box 1003 can include, e.g., transmitting the performance indicator dataset to the Blockchain infrastructure 150, e.g., to an appropriate mining node and requesting storage in the Blockchain 159. Triggering storage in box 1003 can also include writing the performance indicator dataset to the Blockchain 159, e.g., appending a corresponding block to the Blockchain 159, e.g., including solving a proof of work or proof of stake algorithm.
According to various examples, it would also be possible that the performance metric algorithm that is used to determine the performance indicator dataset in box 1002 is stored. For example, it would be possible that box 1003 also includes triggering storage of the performance metric algorithm in the distributed database, e.g., in the Blockchain 159. For example, the performance metric algorithm and the performance indicator dataset could be stored cross-referenced with respect to each other.
According to various examples, the performance indicator dataset is determined by a node outside of the Blockchain infrastructure, e.g., by the measurement node 101 (cf
In box 1011, a transaction is received, e.g., from a measurement node such as the measurement node 101. The transactions includes a measurement dataset such as the measurement dataset 210. The transaction also includes a performance indicator dataset such as the performance indicator dataset 205 (cf
Next, in box 1012, the transaction is split into a first action and a second section. The first section includes the performance indicator dataset; while the second section includes the measurement dataset.
Then, the performance indicator dataset is stored in the distributed database, e.g., the Blockchain 159, using the first section of the transaction; box 1013. Differently, in box 1014, the measurement dataset is transmitted to the non-distributed database, e.g., to the database 172, using the second section. Thus, switch-point functionality is implemented.
By storing the performance indicator dataset on-chain, manipulation thereof is prevented or made difficult. By storing the measurement dataset off-chain, it is possible to reduce computational resources required at the Blockchain infrastructure 150.
Furthermore, by implementing a splitting of the transaction at the mining node, the transaction can be determined by the measurement node using conventional techniques. Compatibility is provided for. For example, smart contracts can operate on the transaction using both the measurement dataset, as well as the performance indicator dataset, before the transaction is being split into multiple parts; therefore, existing logic operating based on the transaction can be reused.
By storing the measurement dataset and the performance indicator dataset with a cross-reference, the integrity of the performance indicator dataset and/or of the measurement dataset can be check. Details with respect to checking the integrity of the measurement dataset are explained next in connection with
At box 1021, a performance indicator dataset is obtained from a distributed database. For example, the performance indicator dataset 205 could be obtained from the Blockchain 159. The performance indicator dataset 205 could be obtained, e.g., by using a checksum an associated transaction that includes the performance indicator dataset 205 (cf.
At box 1021, a measurement dataset is obtained from a non-distributed database. For example, the measurement dataset 210 could be obtained from the non-distributed database 172. The measurement dataset 210 could be obtained based on a cross-reference stored along with the performance indicator dataset 205 in the distributed database.
Then, at box 1023, a comparison between the measurement dataset and the performance indicator dataset is performed. This allows to test the integrity of the performance indicator dataset and of the measurement dataset. For example, if one or more of the performance indicator dataset of the measurement dataset would have been manipulated, then the comparison would yield a non-match.
For example, as part of box 1023, it would be possible to determine a reference performance indicator dataset based on the measurement dataset obtained in box 1022. In particular, this can be done using a performance metric algorithm. The performance metric algorithm can determine a rule set for deriving the (reference) performance indicator dataset from the measurement dataset. For example, the performance metric algorithm used in box 1023 could be stored in the distributed database, e.g., in the Blockchain 159. For example, the performance metric algorithm could be stored in the non-distributed database with the cross-reference to the performance indicator dataset obtained in box 1021 and/or with the cross-reference to the measurement dataset obtained in box 1022. By storing the performance metric algorithm in the distributed database, manipulation of the comparison in box 1023 can be avoided. In particular, the reference performance metric dataset can be compared against the performance metric dataset 205, and thereby manipulation of the performance metric dataset 205 could be identified.
Next, a specific example implementation of the methods of
At 2001, a sensor device 181 provides the measurement dataset 210 to the measurement node 101. The measurement dataset 210 is indicative of one or more operational characteristics of the industrial field device 199. The measurement node 101 has a unique identity (the unique identity is labeled “DeviceID” in
At 2001, the measurement node 101 determines a signature of the measurement dataset 210 in at least some examples using the cryptographic keying material, e.g., a private key. As will be appreciated, the measurement dataset 210 is signed close to its origin, i.e., close to the sensor device 181 and prior to providing the measurement dataset 210 to the Blockchain infrastructure 150. Accordingly, manipulation of the measurement dataset 210 could be detected, e.g., by checking the signature using the public key.
As a general rule, while in the example of
At 2002, the measurement node 101 determines a transaction 290 that includes the measurement dataset 210 (the measurement dataset is labeled “RAW” in the
The measurement dataset 210 included in the transaction 290 serves to protect the integrity of the performance indicator dataset 205. For example, if the integrity of the performance indicator dataset 205 is challenged, the integrity can be validated using the measurement dataset 210. For example, the measurement dataset 210 can include raw data points indicative of, e.g., a current consumption of the industrial field device 199, production numbers of products fabricated using the industrial field device 199, positioning data or trace information of the movable parts of the industrial field device 199. The performance indicator dataset 205 can condense/concentrate or summarize the measurement dataset 210. This is done using a performance metric algorithm. The performance metric algorithm can operate event-driven.
The transaction 290 includes a respective signature (labelled “TRANSACTION signature” in
At 2002, the transaction 290 is transmitted by the measurement node 101 to the Blockchain infrastructure 150 and received by the mining node 151-1. The mining node 151-1 can check the validity of the transaction 290 using the smart contract 158. This can include checking the signature of the transaction 290 and optionally checking the signature of the measurement dataset 210. More generally speaking, checking the validity of the transaction 290 can include determining an integrity of the measurement dataset 210 based on the signature of the transaction 290 included in the transaction 290 and/or the signature of the measurement dataset 210. It would then be possible to selectively store the performance indicator dataset 205 in the Blockchain 159 if there is a successful outcome of the integrity check.
In case of a successfully verified transaction 290, including, in particular, a successfully checked integrity of the measurement dataset 210, it is then possible to proceed by, firstly, splitting the transaction 290 into a first section and into a second section. The first section includes the performance indicator dataset 205; while the second section includes the measurement dataset 210.
The measurement dataset 210 included in the first section has already been signed by the measurement node 101. The first section includes the measurement dataset 210 and the corresponding signature. Thus, the mining node 151-1 does not have to process the second section any further which generally reduces the computational resources required in handling the transaction 290. The mining node 151-1, at 2003, thus transmits the second section including the measurement dataset 210 and its signature to the database 172 for storage.
The mining node 151-1 can also write the second section to the Blockchain 159 at 2004, to store the performance indicator dataset 205 on-chain. For example, the mining node 151-1 can append a new block to the Blockchain 159 at 2004, the new block including the first section of the transaction 290. It would be possible that the performance indicator dataset 205 is signed, e.g., by the measurement node 101 or the mining node 151-1 determining the corresponding signature; then, the first section of the transaction 290 appended to the Blockchain in a new block can also include the corresponding signature of the performance indicator dataset 205.
Based on such techniques it is then possible to determine a report on the operation of the industrial field device 199. For example, such report may include information on the performance of the operation of the industrial field device 199 and/or information on the maintenance date or operational state of the industrial field device 199, and/or information on consumed resources by the industrial field device 199, that may be used, e.g., on pay-per-use scenarios. The operator node 111-1 may request a respective report message at the Blockchain infrastructure 150.
At 2005, the mining node 151-1 transmits a respective report message to the operator node 111-1. The report message can include the performance indicator dataset 205 that is stored in the Blockchain 159. The report message can optionally include an output of the smart contract 158 that has performed the validity check including determining the integrity of the measurement dataset 210.
At 2006, the operator node 111-1 can forward the report message received at 2005 to a client node 111-2. The report message can include a checksum of the measurement dataset 210. In some examples, the checksum of the measurement dataset 210 can provide an index value to address the measurement dataset 210 in the database 172.
As a general rule, it would be possible that the measurement dataset 210 and the performance indicator dataset 205 are stored cross-referenced with respect to each other in the database 172 and the Blockchain 159, respectively, using the checksum of the measurement dataset 210 and/or a checksum of the performance indicator dataset 205.
Sometimes, the client node 111-2 may wish to verify the performance indicator dataset 205 as provided in a report message at 2006 by the operator node 111-1. To do so, the client node 111-2 can request, at 2007, the performance indicator dataset 205 at the Blockchain infrastructure 150, in the scenario of
At 2008, the mining node 151-2 can then retrieve the performance indicator dataset 205 from the Blockchain 159 (a local copy of the Blockchain 159 is stored at, both, the mining node 151-1 and the mining node 151-2, using conventional techniques of Blockchain synchronization at 2009). The mining node 151-2 can transmit the correspondingly retrieved performance indicator dataset 205 to the client node 111-2 and the client node 111-2 can perform a comparison between this instance of the performance indicator dataset 205 and the further instance of the performance indicator dataset 205 received at 2006. Manipulation of the performance indicator dataset 205 by the operator node 111-1 could thereby be identified.
Sometimes, the correctness of the performance indicator dataset 205 itself may be questionable. In such a scenario, the client node 111-2, at 2010, can receive—e.g., in response to a corresponding request—the measurement dataset 210 from the database 172. This can be based, e.g., the checksum of the measurement dataset 210 and/or a checksum of the corresponding performance indicator dataset 205. More generally speaking, the measurement dataset 210 and the performance indicator dataset 205 can be stored cross-referenced in the database 172 and the Blockchain 159, respectively. I.e., a respective cross-reference can be used to read the measurement dataset 210.
The measurement dataset 210 stored in the database 172 is secured by the two-layer digital signature, i.e., the signature of the measurement dataset 210 and the signature of the transaction 290.
Once the measurement dataset 210 is available at the client node 111-2, the client node 111-2 can determine a reference performance indicator dataset based on the measurement dataset 210 and compare the reference performance indicator dataset with the performance indicator dataset included in the report message received at 2006.
The operation of the system 100 according to the example of
In
The measurement node 101 then determines the transaction 290. The transaction 290 is transmitted by the measurement node 101, at 2002, to the Blockchain infrastructure 150, more specifically to one or more mining nodes 151, 151-1, 151-2.
The transaction 290 includes an address of a smart contract 158 used to check its integrity; the unique identity 451 of the measurement node 101; optionally an account identity associated with the measurement node 101; the measurement dataset 210; a signature of the measurement dataset 210; a checksum of the measurement dataset 210; and the performance indicator dataset 205.
At 2051, based on the address of the smart contract 158 included in the transaction 290, corresponding data 401 is transmitted to the smart contract 158 and there checked for validity. The respective functionality of the smart contract 158 is executed.
The result 402 of the validity check—here, a positive result—is provided back by the smart contract 158, at 2052.
At 2053, the Blockchain infrastructure 150 optionally reports the checksum 403 of the transaction 290 to the measurement node 101.
At 2003, the second section 412 of the transaction 290 is provided by the Blockchain infrastructure 150 to the database 172, for off-chain storage. The second section 412 includes the measurement dataset 210, the checksum of the measurement dataset 210, and the signature of the measurement dataset 210. The second section 412 could also include the transaction checksum 403.
The first section 411 of the transaction 290 is stored in the Blockchain 159 at 2004. The first section 411 includes the unique identity of the measurement node 101; optionally the account identity; the signature of the measurement data 210; the checksum of the measurement data 210; and the performance indicator dataset 205. The first section 411 may optionally include the checksum 403 of the transaction 290.
As will be appreciated, the checksum of the measurement dataset 210 is stored in, both, the Blockchain 159, as well as the database 172 and, thus, helps to cross-reference the measurement dataset 210 and the performance indicator dataset 205.
Turning to
Then, a respective query at the Blockchain 159 is implemented, at 2061. At 2062, the Blockchain 159 responds with the first section 411. At 2005-2, the first section 411 of the transaction 290 is provided to the operator node 111-1. The first section 411 implements the report.
The operator node 111-1 can then transmit, at 2006, a report 461 that includes the performance indicator dataset 205 and the unique identity 451 of the measurement node 101. The client node 111-2 can receive the report 461.
As will be appreciated from the above, the unique identity 451 can hence serve as a reference to the performance indicator dataset 205.
The client node 111-2 can then check whether the performance indicator dataset 205 provided at 2006 as part of the report 461 has been manipulated. This is illustrated in
At 2007-1, the client node 111-2 transmits the transaction checksum 452 of the transaction 290 to the Blockchain infrastructure 150, e.g., to one of the mining nodes 151, 151-1, 151-2.
At 2071, 2072, the corresponding query/response at the Blockchain 159 is implemented, based on the transaction checksum 452. At 2072, the Blockchain 159 provides the first section 411 of the transaction 290 and, at 2007-2, the first section 411 is returned to the client node 111-2. The client node 111-2 can thus compare the performance indicator dataset 205 included in the first section 411 as obtained in 2007—to with the performance indicator dataset 205 included in the report 461 obtained in 2006 (cf.
As will be appreciated, here, the transaction checksum 452 serves as the reference to the performance indicator dataset 205.
For example, in case of a discrepancy between the performance indicator datasets 205, at 2010-1, the client node 111-2 can transmit the checksum 471 of the measurement dataset 210 to the database 172 and, based on this query, receive at 2010—to the measurement dataset 210. It would then be possible that the client node 111-2 determines, based on the measurement dataset 210 as obtained in 2010-2, a reference performance indicator dataset and compares it with the performance indicator dataset 205 included in the first section 411 obtained at 2007-2.
As will be appreciated, here the checksum 471 of the measurement dataset 210 serves as a reference to the measurement dataset 210.
Summarizing, techniques have been described which facilitate separating measurement datasets and performance indicator datasets from transactions for off-chain storage and on-chain storage, respectively. A checksum of a corresponding transaction is not destroyed by such splitting of the transaction. The authenticity of the source of the measurement dataset remains unchanged.
Although the invention has been shown and described with respect to certain preferred embodiments, equivalents and modifications will occur to others skilled in the art upon the reading and understanding of the specification. The present invention includes all such equivalents and modifications and is limited only by the scope of the appended claims.
For illustration, various techniques have been described in which a cross-reference between a measurement dataset stored off-chain and a performance indicator dataset stored on-chain is implemented by a checksum of the measurement dataset. In various examples, different crossreferences can be used, e.g., a transaction checksum, a unique identity of a measurement node, etc.
For further illustration, various techniques have been described in which a measurement dataset is stored off-chain and a performance indicator dataset is stored on-chain. According to various examples, different kinds and type of data can be stored on-chain and off-chain, respectively. In particular, it can be generally possible to condense first data to human-readable second data and store the first data off-chain and store the second data on-chain.
For further illustration, various techniques have been described in which a Blockchain is used as a distributed database. Generally, it would be possible to implement different kinds and types of distributed databases, e.g., distributed ledgers, etc.
The patent claims of the application are formulation proposals without prejudice for obtaining more extensive patent protection. The applicant reserves the right to claim even further combinations of features previously disclosed only in the description and/or drawings.
References back that are used in dependent claims indicate the further embodiment of the subject matter of the main claim by way of the features of the respective dependent claim; they should not be understood as dispensing with obtaining independent protection of the subject matter for the combinations of features in the referred-back dependent claims. Furthermore, with regard to interpreting the claims, where a feature is concretized in more specific detail in a subordinate claim, it should be assumed that such a restriction is not present in the respective preceding claims.
Since the subject matter of the dependent claims in relation to the prior art on the priority date may form separate and independent inventions, the applicant reserves the right to make them the subject matter of independent claims or divisional declarations. They may furthermore also contain independent inventions which have a configuration that is independent of the subject matters of the preceding dependent claims.
None of the elements recited in the claims are intended to be a means-plus-function element within the meaning of 35 U.S.C. § 112(f) unless an element is expressly recited using the phrase “means for” or, in the case of a method claim, using the phrases “operation for” or “step for.”
Example embodiments being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the present invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
19175897.8 | May 2019 | EP | regional |