Yes yes you've guessed it, it's a Thread Alert!
This is some big news so read up!
Introducing #Sim2h Holochain’s simple “switch-board” networking implementation!
Do we have your full attention? Then here we go!










pic.twitter.com/KOJGER652w
You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more
In that post we also described how this approach of mocking the network with a centralized component provides us with an evolution path of iteratively pulling in aspects of lib3h as they’re ready -- instead of trying to conquer all of the inherent complexity in a single iteration
Sim1h was our first stab at it and over the course of the past three weeks we have come a long way down that proposed evolution path so that we can present the next stage now: #sim2h
pic.twitter.com/ByZVFByIOA
1/3
Why is this important?
Before we dive into the differences between sim1h and sim2h and a discussion of how you can make use of sim2h, I want to highlight why we are excited about this milestone and why you might be as well.
2/3
Why is this important?
The important bit
: Sim2h allows us to both run early public test instances of the full Holochain stack and also invite hApp developers to try their hApps over the Internet and help us collect performance data.
isn't that great?!
3/3
Why is this important?
In other words, sim2h marks the first point in time, since we abandoned the Go prototype, at which anyone (developers and non-developers) can run alpha test releases of hApps over the public internet!pic.twitter.com/50qV48h3qr
1/18
So what is sim2h?
There is one thing that sim1h and sim2h have in common: both rely on a central point connecting the agents -- but that is about it.
2/18
So what is sim2h?
While sim1h is very similar to contemporary centralized front-end / back-end architecture in that it uses a database as the central component, sim2h does not rely on any centralized data persistence!
3/18
So what is sim2h?
Instead it plays a role similar to the old phone switch-boards where an operator takes a request of a network participant & sets up the appropriate connection to another participant (without storing or controlling what those participants say on that line)pic.twitter.com/UNnwfxe2XD
4/18
So what is sim2h?
Interestingly, this actually reduces complexity compared to the sim1h solution where the network had to be simulated inside a database which meant actually storing messages and then polling for messages on the other end.pic.twitter.com/1yKdpjFiDO
5/18
So what is sim2h?
The concept of a switch-board, which maintains active websocket connections to each agent that is online, works much better with all the assumptions that have been made in other parts of the Holochain stack -- mainly #Holochain core, as well as #lib3h.pic.twitter.com/WEW6mVWnm7
6/18
So what is sim2h?
In fact, that central component of sim2h borrows a lot from already existing pieces and in essence is like the in-memory network that we’ve used in core for local testing of multiple instances (i.e. mocking the network in-memory).
7/18
So what is sim2h?
In other words, Sim2h uses the websocket implementation from lib3h to create encrypted “wormholes” between each Holochain conductor instance and this central “in-memory” switch-board.pic.twitter.com/6oW8NbDzY8
8/18
So what is sim2h?
The result is that we have a single point to route all Holochain network messages to their according recipient.
But with that said, all of the other specific and important aspects of the Holochain network are still present including:
Check the photo
pic.twitter.com/HCEZn1pnTQ
9/18
So what is sim2h?
Note that the above bullet points are not true for sim1h, as messages (as well as entry data) is stored in the centralized database and that’s what nodes rely on.
10/18
So what is sim2h?
Getting rid of that database both gets us much closer to the network structure that Holochain is built for and also has a very important pragmatic benefit: 
Check the graphicpic.twitter.com/dVrtN8t76r
11/18
So what is sim2h?
The database sim1h uses can’t just be made available publicly on the internet -- even for testing purposes -- without asking for trouble. Sim2h on the other side just facilitates connections between nodes of the same DNA.pic.twitter.com/L3ZA6eJuou
12/18
So what is sim2h?
The state of the DHT is stored exclusively in all the nodes at the edges. Any change has to pass through the DNAs validation rules the same way it would in a fully peer-to-peer setting.
13/18
So what is sim2h?
This difference is precisely what enables us to use sim2h right now for our first public Holochain test network. This is also an important prerequisite for Holo’s first test network.pic.twitter.com/PGVmUquUoT
14/18
So what is sim2h?
That said, the fact that all messages are routed through a single point creates a single point of failure, which surely is not what you would want for a production ready p2p framework.
15/18
So what is sim2h?
But it actually is beneficial for test networks, as already described in the post about sim1h.
16/18
So what is sim2h?
That’s because, in all alpha test networks, and potentially in early betas, we definitely want to be able to log network messages as needed in order to gain a global view for debugging.pic.twitter.com/rVq7d7vO1d
17/18
So what is sim2h?
So we believe the single point of failure is a reasonable trade-off (during alpha and early beta phases) for the ability to analyse the network.pic.twitter.com/69jSarZvsC
18/18
So what is sim2h?
And should that central point actually experience issues, we can spawn new machines without even managing any application data, since that is stored at the node level.pic.twitter.com/6BfNWpujrL
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.