Blockchain communications and ordering
The present disclosure provides a computer implemented method for maintaining a record of an order of messages appearing on one or more blockchains, the method comprising: identifying a plurality of messages, wherein each of the messages in the plurality of transactions is included on any of the one or more blockchains; and storing a record of the plurality of messages in a data store, wherein the record is indicative of the relative order of the plurality of transactions.
1. A computer implemented method for effecting a communications layer that maintains a record of an order of messages appearing on two or more distributed ledgers, the method comprising:
identifying a plurality of messages, wherein each of the messages in the plurality of messages is recorded on at least one of the two or more distributed ledgers,
wherein the transaction confirmation timings for each of the two or more distributed ledgers are unsynchronized;
determining a message identifier for each identified message based at least in part on content of the corresponding identified message; and
storing the message identifiers in a data store that is separate from the two or more distributed ledgers as a record of the plurality of messages, wherein the record includes order data indicative of the relative order of the plurality of messages and includes a pointer to each of the messages on a corresponding distributed ledger of the two or more distributed ledgers, and wherein the record of the plurality of messages comprises a plurality of consecutive verification sets, and wherein at least some of the plurality of consecutive verification sets comprise one or more of the message identifiers corresponding to a respective one or more of the plurality of messages;
storing, on at least one of the two or more distributed ledgers, a record of the most recent verification set of the plurality of consecutive verification sets, whereby the record of the plurality of messages can be used to provide at least one of increased security of one or more of the two or more distributed ledgers and/or interoperability between applications and one or more of the two or more distributed ledgers;
checking that a record of the preceding verification set in the plurality of verification sets is present on the at least one of the two or more distributed ledgers, and if a record of the preceding verification set is not present on the at least one of the two or more distributed ledgers: replaying a record of the preceding verification set onto the at least one of the two or more distributed ledgers.
2. The method of claim 1 , wherein identifying the plurality of messages comprises:
reading the content of each new block added to each of the two or more distributed ledgers.
3. The method of claim 2 , wherein identifying the plurality of messages further comprises:
comparing the messages in each new block against a relevance criterion and selecting messages that meet the relevance criterion.
4. The method of claim 3 , wherein storing the record of the plurality of messages in the data store comprises, each time a message is identified in a new block, storing a record of that identified message in the data store, wherein the order data is based on the relative order in which each of the plurality of messages was identified.
5. The method of claim 1 , further comprising:
if a record of the preceding verification set is not present on the at least one of the two or more distributed ledgers:
checking that each of the messages identified in the preceding verification set is present on its corresponding distributed ledger of the two or more distributed ledgers, and
if one or more of the messages identified in the preceding verification block are not present on their corresponding distributed ledger of the two or more distributed ledgers:
replaying the one or more messages onto their corresponding distributed ledgers.
6. The method of claim 5 , further comprising:
checking that each of the messages identified in the most recent verification set is present on the at least one of the two or more distributed ledgers, and
if one or more of the messages identified in the preceding verification block are not present on their corresponding distributed ledger of the two or more distributed ledgers:
replaying the one or more messages onto their corresponding distributed ledgers.
7. The method of claim 6 , wherein the record of the most recent verification set comprises a verification set identifier that is determined based at least in part on the contents of the most recent verification set.
8. The method of claim 7 , wherein the verification set identifier of the most recent verification set comprises a hash of the contents of the most recent verification set.
9. The method of claim 1 , wherein the record of the plurality of messages comprises a plurality of the message identifiers.
10. A computer architecture for effecting a communications layer that maintains a record of an order of messages appearing on two or more distributed ledgers, the architecture comprising:
at least one computer processor; and
at least one memory device storing instructions which, when executed by the at least one computer processor, cause the at least one computer processor to:
identify a plurality of messages, wherein each of the messages in the plurality of messages is recorded on at least one of the two or more distributed ledgers, wherein the transaction confirmation timings for each of the two or more distributed ledgers are unsynchronized;
determine a message identifier for each identified message based at least in part on content of the corresponding identified message; and
cause the message identifiers to be stored in a data store that is separate from the two or more distributed ledgers as a record of the plurality of messages, wherein the record includes order data indicative of the relative order of the plurality of messages and includes a pointer to each of the messages on a corresponding distributed ledger of the two or more distributed ledgers, wherein the record of the plurality of messages comprises a plurality of consecutive verification sets, and wherein at least some of the plurality of consecutive verification sets comprise one or more of the message identifiers corresponding to a respective one or more of the plurality of messages;
cause a record of the most recent verification set of the plurality of consecutive verification sets to be stored on at least one of the two or more distributed ledgers, whereby the record of the plurality of messages can be used to provide at least one of increased security of one or more of the two or more distributed ledgers and/or interoperability between applications and one or more of the two or more distributed ledgers;
check that a record of the preceding verification set in the plurality of verification sets is present on the at least one of the two or more distributed ledgers, and if a record of the preceding verification set is not present on the at least one of the two or more distributed ledgers:
cause a record of the preceding verification set to be replayed onto the at least one of the two or more distributed ledgers.
11. The architecture of claim 10 , wherein identifying the plurality of messages comprises:
reading the content of each new block added to each of the two or more distributed ledgers.
12. The architecture of claim 11 , wherein identifying the plurality of messages further comprises:
comparing the messages in each new block against a relevance criterion and selecting messages that meet the relevance criterion.
13. The architecture of claim 12 , wherein storing the record of the plurality of messages in the data store comprises, each time a message is identified in a new block, storing a record of that identified message in the data store, wherein the order data is based on the relative order in which each of the plurality of messages was identified.
14. The architecture of claim 10 , wherein:
the record of the plurality of messages comprises a plurality of consecutive verification sets, and wherein
at least some of the plurality of consecutive verification sets comprise one or more of the message identifiers corresponding to a respective one or more of the plurality of messages.
15. The architecture of claim 14 , wherein the instructions further cause the at least one processor to:
cause a record of the most recent verification set of the plurality of consecutive verification sets to be stored on at least one of the two or more distributed ledgers.
16. Non-transient computer readable media having instructions stored thereon which, when executed by at least one computer processor, cause the at least one computer processor to:
identify a plurality of messages, wherein each of the messages in the plurality of messages is recorded on at least one of two or more distributed ledgers, wherein the transaction confirmation timings for each of the two or more distributed ledgers are unsynchronized;
determine a message identifier for each identified message based at least in part on content of the corresponding identified message; and
cause the message identifiers to be stored in a data store that is separate from the two or more distributed ledgers as a record of the plurality of messages,
wherein the record includes order data indicative of the relative order of the plurality of messages and includes a pointer to each of the messages on a corresponding distributed ledger of the two or more distributed ledgers, and
wherein the record of the plurality of messages comprises a plurality of consecutive verification sets, and
wherein at least some of the plurality of consecutive verification sets comprise one or more of the message identifiers corresponding to a respective one or more of the plurality of messages;
cause a record of the most recent verification set of the plurality of consecutive verification sets to be stored on at least one of the two or more distributed ledgers, whereby the record of the plurality of messages can be used to provide at least one of increased security of the one or more distributed ledgers and/or interoperability between applications and the one or more distributed ledger;
check that a record of the preceding verification set in the plurality of verification sets is present on the at least one of the two or more distributed ledgers, and
if a record of the preceding verification set is not present on the at least one of the two or more distributed ledgers:
cause a record of the preceding verification set to be replayed onto the at least one of the two or more distributed ledgers.