The validators, as the name suggests, validate transactions and blocks and the Messagenodes provide storage and bandwidth services to validators. But how do you bring *trust* between the participating nodes?
We want something like, "trust, but double-check" model where cryptographic signatures bring *trust* so a *signed* message can be verified by anyone, but how do we double check that a message is relayed correctly?
In the "feeds" and "follow" model, each node creates its messages as its own private "feed" and let other nodes "follow" the feed. For example, Messagenodes follow validators for transactions received by them.
When Messagenodes in turn follow each other, the transactions are replicated among them. Messagenodes cannot censor, alter, or perform any malicious activities because validators will be watching over them.
The "feeds" and "follow" model works best in asynchronous environments where network connectivity and quality cannot be guaranteed. This is the exact setup @storecoin envisions for its public blockchain.
So, BlockFin favors "C"onsistency over "A"vailability. Availability is addressed via economic rewards where *all* participating validators and Messagenodes earn a portion of the block reward for the blocks they helped validate.
Now, back to the testing. In the next few weeks, our goal is to test the "feeds" and "follow" model in a network consisting of 220 validators and 44 Messagenodes. These nodes are globally distributed around the world.
In the event of network partitions, our desire is for individual nodes to continue to make *local* progress and *eventually* converge their work with the larger network without sacrificing consistency.