Bilateral assertion model and ledger implementation thereof
First Claim
1. A computer implemented method for facilitating interaction with a shared data structure, stored in a memory, by a plurality of participants, the method comprising:
- receiving, by a processor via a network interface coupled with the processor, a first request data transaction message from a first participant of the plurality of participants, the first request data transaction message comprising data indicative of a request to modify data stored in the shared data structure, the shared data structure comprising a bilateral distributed ledger;
identifying, by the processor, based on the first request data transaction message, at least one other participant of the plurality of participants to validate modifications to the data;
generating, by the processor, a notification data transaction message for each of the identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data;
transmitting, by the network interface via the processor, the generated notification data transaction message to each of the identified at least one other participant;
receiving, by the processor via the network interface responsive to the transmitted notification data transaction message, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the notification data transaction message;
determining, by the processor, based on the received validation data transaction messages, whether all of the identified at least one other participant have validated the request to modify the data, and, based thereon, when all of the identified at least one other participant have validated the request to modify the data;
generating, by the processor, a confirmation data transaction message;
transmitting, by the processor via the network interface, the confirmation data transaction message to the first participant; and
modifying, by the processor, the data stored in the memory in the shared data structure according to the request to modify the data; and
when less than all of the identified at least one other participant have validated the request;
generating, by the processor, a rejection data transaction message;
transmitting, by the processor via the network interface, the rejection data transaction message to the first participant; and
not modifying, by the processor, the data stored in the memory in the shared data structure according to the request to modify the data;
receiving, by the processor via the network interface, a data transaction request message comprising a second request data transaction message from a second participant of the plurality of participants comprising data indicative of a request by the second participant to modify data stored in the portion of the shared data structure, wherein the portion of the shared data structure comprises a sub-data structure for separately storing data indicative of transactions between each permutation of the second participant and others from the plurality of participants, wherein each of the transactions is linked to the other; and
when the data transaction message comprises a second request data transaction message;
identifying, by the processor, based on the second request data transaction message, at least one other participant of the plurality of participants to validate modifications to the data, and based thereon modifying the portion of the shared data structure to indicate validation is pending;
generating, by the processor, a notification data transaction message for each identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data in the portion of the shared data structure;
transmitting, by the network interface coupled with the processor, each of the generated notification data transaction messages to the associated one of the identified at least one other participant;
receiving, by the processor via the network interface responsive to the notification data transaction messages, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the request to modify data stored in the portion of the shared data structure;
determining, by the processor, based on the received validation data transaction messages, whether all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure, and based thereon, when all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure;
generating, by the processor, a response data transaction message for each of the identified at least one other participant comprising data indicative of a confirmation of the modification to the data in the portion of the shared data structure;
transmitting, by the network interface via the processor, the response data transaction message to each of the identified at least one other participant;
modifying, in the memory via the processor, the data stored in the portion of the shared data structure according to the request to modify the data; and
when less than all of the identified at least one other participant have validated the request;
generating, by the processor, a response data transaction message for each of the identified at least one other participant comprising data indicative that the data in the portion of the shared data structure has not been modified;
not modifying, in the memory via the processor, the data stored in the portion of the shared data structure according to the request to modify the data.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer implemented method for implementing a real time reconciling shared data structure is disclosed. The shared data structure may be stored in a memory, and a portion of the shared data structure may be coupled with a processor. The computer implemented method may be used for interacting with the shared data structure. The method may comprise the exchange of messages, requesting to change data in the shared data structure, between selected participants, wherein some of the participants must validate requested changes to the shared data. If all participants validate the requests to change data the changes to the data are made, and if less than all participants validate the requests then the changes are not made.
39 Citations
41 Claims
-
1. A computer implemented method for facilitating interaction with a shared data structure, stored in a memory, by a plurality of participants, the method comprising:
-
receiving, by a processor via a network interface coupled with the processor, a first request data transaction message from a first participant of the plurality of participants, the first request data transaction message comprising data indicative of a request to modify data stored in the shared data structure, the shared data structure comprising a bilateral distributed ledger; identifying, by the processor, based on the first request data transaction message, at least one other participant of the plurality of participants to validate modifications to the data; generating, by the processor, a notification data transaction message for each of the identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data; transmitting, by the network interface via the processor, the generated notification data transaction message to each of the identified at least one other participant; receiving, by the processor via the network interface responsive to the transmitted notification data transaction message, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the notification data transaction message; determining, by the processor, based on the received validation data transaction messages, whether all of the identified at least one other participant have validated the request to modify the data, and, based thereon, when all of the identified at least one other participant have validated the request to modify the data; generating, by the processor, a confirmation data transaction message; transmitting, by the processor via the network interface, the confirmation data transaction message to the first participant; and modifying, by the processor, the data stored in the memory in the shared data structure according to the request to modify the data; and when less than all of the identified at least one other participant have validated the request; generating, by the processor, a rejection data transaction message; transmitting, by the processor via the network interface, the rejection data transaction message to the first participant; and not modifying, by the processor, the data stored in the memory in the shared data structure according to the request to modify the data; receiving, by the processor via the network interface, a data transaction request message comprising a second request data transaction message from a second participant of the plurality of participants comprising data indicative of a request by the second participant to modify data stored in the portion of the shared data structure, wherein the portion of the shared data structure comprises a sub-data structure for separately storing data indicative of transactions between each permutation of the second participant and others from the plurality of participants, wherein each of the transactions is linked to the other; and when the data transaction message comprises a second request data transaction message; identifying, by the processor, based on the second request data transaction message, at least one other participant of the plurality of participants to validate modifications to the data, and based thereon modifying the portion of the shared data structure to indicate validation is pending; generating, by the processor, a notification data transaction message for each identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data in the portion of the shared data structure; transmitting, by the network interface coupled with the processor, each of the generated notification data transaction messages to the associated one of the identified at least one other participant; receiving, by the processor via the network interface responsive to the notification data transaction messages, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the request to modify data stored in the portion of the shared data structure; determining, by the processor, based on the received validation data transaction messages, whether all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure, and based thereon, when all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure; generating, by the processor, a response data transaction message for each of the identified at least one other participant comprising data indicative of a confirmation of the modification to the data in the portion of the shared data structure; transmitting, by the network interface via the processor, the response data transaction message to each of the identified at least one other participant; modifying, in the memory via the processor, the data stored in the portion of the shared data structure according to the request to modify the data; and when less than all of the identified at least one other participant have validated the request; generating, by the processor, a response data transaction message for each of the identified at least one other participant comprising data indicative that the data in the portion of the shared data structure has not been modified; not modifying, in the memory via the processor, the data stored in the portion of the shared data structure according to the request to modify the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for facilitating interaction with a shared data structure, stored in a memory, by a plurality of participants, the system comprising:
-
a transaction receiver, coupled with a network interface, operative to receive a first request data transaction message from a first participant of the plurality of participants, the first request data transaction message comprising data indicative of a request to modify data stored in the shared data structure, the shared data structure comprising a bilateral distributed ledger; an identification processor, coupled with the transaction receiver, operative to identify based on the first request data transaction message, at least one other participant of the plurality of participants to validate modifications to the data; a message generator, coupled to the identification processor, operative to generate a notification data transaction message for each of the identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data; a message transmitter, coupled to the message generator, operative to transmit the generated notification data transaction message to each one of the identified at least one other participant; the transaction receiver further operative to receive, responsive to the transmitted notification data transaction message, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the notification data transaction message; a validation determiner, coupled to the transaction receiver, operative to determine based on the received validation data transaction messages, whether all of the identified at least one other participant have validated the request to modify the data, and, based thereon; the message generator further operative to, wherein when all of the identified at least one other participant have validated the request to modify the data, generate a confirmation data transaction message; the message transmitter further operative to transmit the confirmation data transaction message to the first participant; and a data modifier, coupled with the validation determiner, operative to modify the data stored in the memory in the shared data structure according to the request to modify the data; the message generator further operative to, wherein when less than all of the identified at least one other participant have validated the request, generate a rejection data transaction message; the message transmitter further operative to transmit the rejection data transaction message to the first participant; and the data modifier further operative to not modify the data stored in the memory in the shared data structure according to the request to modify the data; the transaction receiver is further coupled with a portion of the shared data structure and operative to receive a data transaction request message comprising a second request data transaction message from a second participant of the plurality of participants comprising data indicative of a request by the second participant to modify data stored in the portion of the shared data structure, wherein the portion of the shared data structure comprises a sub-data structure for separately storing data indicative of transactions between each permutation of the second participant and others of the plurality of participants, wherein the sub-data structure for each combination includes data indicative of at least one transaction there between, each of which is linked to the other; the identification processor is further operative to, wherein the data transaction message comprises a second request data transaction message, based on the second request data transaction message, identify at least one other participant of the plurality of participants to validate modifications to the data, and a data modifier, coupled to the identification processor, operative to, based on the second request data transaction message, modify the portion of the shared data structure to indicate validation is pending; the message generator is further operative to generate a notification data transaction message for each identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data in the portion of the shared data structure; the message transmitter is further operative to transmit each of the generated notification data transaction messages to the associated one of the identified at least one other participant; the transaction receiver further operative to receive, responsive to the notification data transaction messages, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the request to modify data stored in the portion of the shared data structure; the validation determiner is further operative to, based on the received validation data transaction messages, validate whether all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure, and based thereon; the message generator being further operative to, wherein when all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure, generate a response data transaction message for each of the identified at least one other participant comprising data indicative of a confirmation of the modification to the data in the portion of the shared data structure; the message transmitter being further operative to transmit the response data transaction message to each of the identified at least one other participant; the data modifier further operative to modify the data stored in the portion of the shared data structure according to the request to modify the data; and the message generator further operative to, wherein when less than all of the identified at least one other participant have validated the request, generate a response data transaction message for each of the identified at least one other participants comprising data indicative that the data in the portion of the shared data structure has not been modified; the message transmitter further operative to transmit the response data transaction message to each of the identified at least one other participant; the data modifier further operative to not modify the data stored in the portion of the shared data structure according to the request to modify the data. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A system for facilitating interaction with a shared data structure, stored in a memory, by a plurality of participants, the system comprising:
-
a first logic component stored in the memory and executable by a processor coupled therewith and coupled to a network interface, to cause the processor to receive a first request data transaction message from a first participant of the plurality of participants, the first request data transaction message comprising data indicative of a request to modify data stored in the shared data structure, the shared data structure comprising a bilateral distributed ledger; a second logic component, coupled with the first logic component, stored in the memory and executable by the processor to cause the processor to identify based on the first request data transaction message, at least one other participant of the plurality of participants to validate modifications to the data; a third logic component, coupled to the second logic component, stored in the memory and executable by the processor to cause the processor to generate a notification data transaction message for each of the identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data; a fourth logic component, coupled to the third logic component, stored in the memory and executable by the processor to cause the processor to transmit the generated notification data transaction messages to each of the identified at least one other participant; the first logic component further executable by the processor to cause the processor to receive, responsive to the notification data transaction message, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the notification data transaction message; a fifth logic component, coupled to the first logic component, stored in the memory and executable by the processor to cause the processor to determine based on the received validation data transaction messages, whether all of the identified at least one other participant have validated the request to modify the data, and, based thereon; the third logic component further executable by the processor to cause the processor to, wherein when all of the identified at least one other participant have validated the request to modify the data, generate a confirmation data transaction message; the fourth logic component further executable by the processor to cause the processor to transmit the confirmation data transaction message to the first participant; and a sixth logic component, coupled with the fifth logic component, stored in the memory and executable by the processor to cause the processor to modify the data stored in the memory in the shared data structure according to the request to modify the data; the third logic component further executable by the processor to cause the processor to, wherein when less than all of the identified at least one other participant have validated the request, generate a rejection data transaction message; the fourth logic component further executable by the processor to cause the processor to transmit the rejection data transaction message to the first participant; and the sixth logic component further executable by the processor to cause the processor to not modify the data stored in the memory in the shared data structure according to the request to modify the data; wherein the first logic component is further coupled with a portion of the data structure and executable by the processor to cause the processor to receive a data transaction message from a second participant of the plurality of participants comprising a second request data transaction message comprising data indicative of a request by the second participant to modify data stored in the portion of the shared data structure, wherein the portion of the shared data structure comprises a sub-data structure for separately storing data indicative of transactions between each permutation of the second participant and others from the plurality of participants, wherein each of the transactions is linked to the other; the second logic component executable by the processor to cause the processor to, wherein the data transaction message comprises a second request data transaction message, based on the second request data transaction message, identify at least one other participant of the plurality of participants to validate modifications to the data, and a third logic component, coupled to the second logic component, operative to, based on the second request data transaction message, modify the portion of the shared data structure to indicate validation is pending; the fourth logic component is further coupled with the second logic component and executable by the processor to cause the processor to generate a notification data transaction message for each identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data in the portion of the shared data structure; the fifth logic component is further coupled with the fourth logic component and executable by the processor to cause the processor to transmit the generated notification data transaction messages to the associated one of the identified at least one other participant; the first logic component further executable by the processor to cause the processor to receive, responsive to the notification data transaction messages, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the request to modify data stored in the portion of the shared data structure; the sixth logic component is further coupled with the first logic component and fourth logic component and executable by the processor to cause the processor to, based on the received validation data transaction messages, validate whether all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure, and based thereon; the fourth logic component being further executable by the processor to cause the processor to, wherein when all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure, generate a response data transaction message for each of the identified at least one other participant comprising data indicative of a confirmation of the modification to the data in the portion of the shared data structure; the fifth logic component being further executable by the processor to cause the processor to transmit the response data transaction message to each of the identified at least one other participant; the third logic component, coupled with the sixth logic component, executable by the processor to cause the processor to modify the data stored in the portion of the shared data structure according to the request to modify the data; and the fourth logic component further executable by the processor to cause the processor to, wherein when less than all of the identified at least one other participant have validated the request, generate a response data transaction message for each of the identified at least one other participant comprising data indicative that the data in the portion of the shared data structure has not been modified; the fifth logic component further executable by the processor to cause the processor to transmit the response data transaction message to each of the identified at least one other participant; the third logic component further executable by the processor to cause the processor to not modify the data stored in the portion of the shared data structure according to the request to modify the data. - View Dependent Claims (40)
-
-
41. A system for facilitating interaction with a shared data structure, stored in a memory, by a plurality of participants, the system comprising:
-
means for receiving a request data transaction message from a first participant of the plurality of participants, the request data transaction message comprising data indicative of a request to modify data stored in the shared data structure, the shared data structure comprising a bilateral distributed ledger; means for identifying based on the request data transaction message, at least one other participant of the plurality of participants to validate modifications to the data; means for generating a notification data transaction message for each of the identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data; means for transmitting the generated notification data transaction messages to each of the identified at least one other participant; means for receiving a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the notification data transaction message; means for determining based on the received validation data transaction messages, whether all of the identified at least one other participant have validated the request to modify the data, and, based thereon, when all of the identified at least one other participant have validated the request to modify the data; means for generating a confirmation data transaction message; means for transmitting the confirmation data transaction message to the first participant; and means for modifying the data stored in the memory in the shared data structure according to the request to modify the data; and when less than all of the identified at least one other participant have validated the request; means for generating a rejection data transaction message; means for transmitting the rejection data transaction message to the first participant; and means for not modifying the data stored in the memory in the shared data structure according to the request to modify the data; means for receiving a data transaction request message comprising a second request data transaction message from a second participant of the plurality of participants comprising data indicative of a request by the second participant to modify data stored in the portion of the shared data structure, wherein the portion of the shared data structure comprises a sub-data structure for separately storing data indicative of transactions between each permutation of the second participant and others from the plurality of participants, wherein each of the transactions is linked to the other; and when the data transaction message comprises a second request data transaction message; means for identifying based on the second request data transaction message, at least one other participant of the plurality of participants to validate modifications to the data, and based thereon modifying the portion of the shared data structure to indicate validation is pending; means for generating a notification data transaction message for each identified at least one other participant, the notification data transaction message comprising data indicative of the request to modify the data in the portion of the shared data structure; means for transmitting each of the generated notification data transaction messages to the associated one of the identified at least one other participant; means for receiving, responsive to the notification data transaction messages, a validation data transaction message from each of the identified at least one other participant, each of the received validation data transaction messages comprising data indicative of a response to the request to modify data stored in the portion of the shared data structure; means for determining based on the received validation data transaction messages, whether all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure, and based thereon, when all of the identified at least one other participant have validated the request to modify the data in the portion of the shared data structure; means for generating a response data transaction message for each of the identified at least one other participant comprising data indicative of a confirmation of the modification to the data in the portion of the shared data structure; means for transmitting the response data transaction message to each of the identified at least one other participant; means for modifying, in the memory, the data stored in the portion of the shared data structure according to the request to modify the data; and when less than all of the identified at least one other participant have validated the request; means for generating a response data transaction message for each of the identified at least one other participant comprising data indicative that the data in the portion of the shared data structure has not been modified; means for not modifying, in the memory, the data stored in the portion of the shared data structure according to the request to modify the data.
-
Specification