# US 10,771,421 B2 · Systems and methods for fair information exchange using publish-subscribe with blockchain

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,421 B2
- Document ID: US10771421B2
- Status: Granted
- Kind: B2
- Application number: 15/475,317
- Filed: 2017-03-31
- Published: 2018-10-04
- Granted: 2020-09-08
- Earliest claimed: 2017-03-31
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Ned M. Smith; Michael Nolan; Davide Carboni
- Web page: https://patentgrep.com/patent/US10771421B2

## CPC

- H04L 51/42: Mailbox-related aspects, e.g. synchronisation of mailboxes
- H04L 51/23: Reliability checks, e.g. acknowledgments or fault reporting
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, apparatus, systems and articles of manufacture are disclosed to facilitate information exchange using publish-subscribe with blockchain. An example apparatus includes a broker including a processor and a distributed ledger module. The example distributed ledger module stores a message to be relayed by the broker from a publisher to a subscriber. The example processor is to at least compute, triggered by receipt of the message by the broker, a proof-of-work (PoW) function. The example processor is to at least verify the computation of the PoW function. The example processor is to at least transmit, upon verifying the computation of the PoW function, the message to the subscriber. The example processor is to at least process feedback received by the broker to update the PoW function.

## Claims

### Claim 1

A first broker apparatus comprising:
memory including a distributed ledger to store a message to be relayed from a publisher to a first subscriber; and
a processor to at least:
compute, triggered by receipt of the message, a proof-of-work (PoW) function, the PoW function defined based on a latency value associated with the first broker apparatus, to synchronize timing of a) delivery of the message from the first broker apparatus to the first subscriber with b) delivery of the message from a second broker apparatus to a second subscriber;
verify the computation of the PoW function;
transmit, upon verifying the computation of the PoW function, the message to the first subscriber; and
process feedback to update the PoW function.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the PoW function includes a hash of the message and a hashing seed value in comparison to the latency value for the first broker apparatus.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the latency value for the first broker apparatus includes a combination of an ingress latency and an egress latency for the first broker apparatus.

### Claim 4 (depends on 2)

The apparatus of claim 2, wherein the processor is to verify the computation of the PoW function by verifying the comparison of the hash and the latency value.

### Claim 5 (depends on 4)

The apparatus of claim 4, wherein a third broker is to verify the computation of the PoW function for the first broker apparatus.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the processor is to add a result of the computation of the PoW function to the distributed ledger.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the processor is to configure the first broker apparatus for message relay.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein the processor is to configure the first broker apparatus for message relay by:
collecting a performance metric with respect to the first broker apparatus;
determining a weight value based on the performance metric;
determining an ingress latency and an egress latency for the first broker apparatus; and
defining the PoW function based on the weight value, the ingress latency, and the egress latency.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein the processor is to process feedback by comparing a measured time associated with the computation of the PoW function to an expected time.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein, when the measured time exceeds the expected time, a difficulty of the PoW function is decreased by a difficulty correction factor, and, when the expected time exceeds the measured time, the difficulty of the PoW function is increased by the difficulty correction factor.

### Claim 11

A method of relaying a message from a publisher to a subscriber via a first broker, the first broker including a processor and memory including a distributed ledger, the distributed ledger to store a message to be relayed by the first broker from a publisher to a first subscriber, the method comprising:
computing, using the processor triggered by receipt of the message by the first broker, a proof-of-work (PoW) function, the PoW function, defined based on a latency value associated with the first broker, to synchronize timing of a) delivery of the message from the first broker to the first subscriber with b) delivery of the message from a second broker to a second subscriber;
verifying, using the processor, the computation of the PoW function;
transmitting, using the processor upon verifying the computation of the PoW function, the message to the first subscriber; and
processing, using the processor, feedback received by the first broker to update the PoW function.

### Claim 12 (depends on 11)

The method of claim 11, wherein computing the PoW function includes computing a hash of the message and a hashing seed value in comparison to the latency value for the first broker.

### Claim 13 (depends on 12)

The method of claim 12, wherein computing the PoW function includes combining an ingress latency and an egress latency to determine the latency value for the first broker.

### Claim 14 (depends on 12)

The method of claim 12, wherein verifying the computation of the PoW function further includes verifying the comparison of the hash and the latency value.

### Claim 15 (depends on 14)

The method of claim 14, wherein verifying the computation of the PoW function includes using a third broker to verify the computation of the PoW function for the first broker.

### Claim 16 (depends on 11)

The method of claim 11, further including adding a result of the computation of the PoW function to the distributed ledger.

### Claim 17 (depends on 11)

The method of claim 11, wherein configuring the first broker for message relay further includes:
collecting a performance metric with respect to the first broker;
determining a weight value based on the performance metric;
determining an ingress latency and an egress latency for the first broker; and
defining the PoW function based on the weight value, the ingress latency, and the egress latency.

### Claim 18 (depends on 11)

The method of claim 11, wherein processing feedback further includes comparing a measured time associated with the computation of the PoW function to an expected time.

### Claim 19 (depends on 18)

The method of claim 18, wherein processing includes, when the measured time exceeds the expected time, decreasing a difficulty of the PoW function by a difficulty correction factor, and, when the expected time exceeds the measured time, increasing the difficulty of the PoW function by the difficulty correction factor.

### Claim 20

A tangible computer readable storage medium comprising computer readable instructions which, when executed, cause a processor to at least implement a method of relaying a message from a publisher to a subscriber via a first broker, the first broker including the processor and a distributed ledger, the distributed ledger to store a message to be relayed by the first broker from a publisher to a first subscriber, the method comprising:
computing, triggered by receipt of the message by the first broker, a proof-of-work (PoW) function, the PoW function, defined based on a latency value associated with the first broker, to synchronize timing of a) delivery of the message from the first broker to the first subscriber with b) delivery of the message from a second broker to a second subscriber;
verifying the computation of the PoW function;
transmitting, upon verifying the computation of the PoW function, the message to the subscriber; and
processing feedback received by the first broker to update the PoW function.

### Claim 21 (depends on 20)

The storage medium of claim 20, wherein the PoW function includes a hash of the message and a hashing seed value in comparison to the latency value for the first broker.

### Claim 22 (depends on 21)

The storage medium of claim 21, wherein the latency value for the first broker includes a combination of an ingress latency and an egress latency for the first broker.

### Claim 23 (depends on 21)

The storage medium of claim 21, wherein the processor is to verify the computation of the PoW function by verifying the comparison of the hash and the latency value.

### Claim 24 (depends on 23)

The storage medium of claim 23, wherein a third broker verifies the computation of the PoW function for the first broker.

### Claim 25 (depends on 20)

The storage medium of claim 20, wherein the processor is to add a result of the computation of the PoW function to the distributed ledger.

### Claim 26 (depends on 20)

The storage medium of claim 20, wherein the processor is to configure the first broker for message relay.

### Claim 27 (depends on 26)

The storage medium of claim 26, wherein the processor is to configure the first broker for message relay by:
collecting a performance metric with respect to the first broker;
determining a weight value based on the performance metric;
determining an ingress latency and an egress latency for the first broker; and
defining the PoW function based on the weight value, the ingress latency, and the egress latency.

### Claim 28 (depends on 20)

The storage medium of claim 20, wherein the processor is to process feedback by comparing a measured time associated with the computation of the PoW function to an expected time.

### Claim 29 (depends on 28)

The storage medium of claim 28, wherein, when the measured time exceeds the expected time, a difficulty of the PoW function is decreased by a difficulty correction factor, and, when the expected time exceeds the measured time, the difficulty of the PoW function is increased by the difficulty correction factor.

### Claim 30 (depends on 20)

The storage medium of claim 20, wherein the message includes time-sensitive information of a value that degrades over time.

### Claim 31 (depends on 20)

The storage medium of claim 20, wherein the distributed ledger implements a blockchain.

### Claim 32 (depends on 1)

The apparatus of claim 1, wherein the message includes time-sensitive information of a value that degrades over time.

### Claim 33 (depends on 1)

The apparatus of claim 1, wherein the distributed ledger implements a blockchain.

### Claim 34 (depends on 1)

The apparatus of claim 1, wherein the processor is to compute the PoW function to synchronize delivery of the message from the first broker apparatus to the first subscriber at a first delivery time with delivery of the message from the second broker apparatus to a second subscriber at the first delivery time.

### Claim 35 (depends on 11)

The method of claim 11, further including storing the message in a blockchain implemented by the distributed ledger.
