Greetings,
I was wandering if anyone has looked at using virtual synchrony in bitcoin?
This allows for multiple programs to sent multicast messages to one another with
order guaranteed so that every process receives the message at the same time.
I have been using an excellent message oriented middle-ware for some of my projects at work over the past 10 years called the spread toolkit. There may be others, but this is the one I am familiar with, here is a quick overview:
http://www.spread.org/SpreadOverview.htmlHere is an example of the kind of messaging control it provides:
RELIABLE_MESS:
The message will arrive once at all members of its destination group, it may be arbitrarily, but finitely delayed before arriving, and may arrive out of order with regards to other reliable messages.
FIFO_MESS:
The message will be reliably delivered once to all members of its destination groups, and it will be ordered with all other FIFO messages from the same source. Nothing is guaranteed about the ordering of FIFO messages from different sources.
CAUSAL_MESS:
These messages have all the properties of FIFO messages and in addition are causally ordered (as defined by Lamport) with regards to all sources.
AGREED_MESS:
These messages have all the properties of FIFO messages but will be delivered in a causal ordering which will be the same at all recipients, i.e. all the recipients will 'agree' on the order of delivery.
SAFE_MESS:
These messages have all the properties of AGREED messages, but are not delivered until all daemons have received it and are ready to deliver it to the application. This guarantees that if any one application receives a SAFE message then all the applications in that group will also receive it unless the machine or program crashes.
The library implements a publisher/subscriber model were an application can create
a message group that other applications join. It operates like chat room where each message sent by one application is received by any application joined to the spread group.
I was wandering if such a toolkit would be helpful to bitcoin?