Holo Hosting OS ready for HoloPorts, DIY Hosts, Networking Infrastructure, and Integrated Layers of the Holo Network

Emerging Clouds — Distributed Hosting Update 01

Summary

Many of you are eager to hear word of our progress — especially our IGG backers and those who want to participate in open Testnets and Holo Hosting Beta. We’ve shared regular updates on the HoloPort hardware, but there’s a lot more to Holo Hosting than silicon. We include news on all things Holochain in our regular Dev Pulses, but if you’re not a hApp developer, these communications don’t tell you as much about the progress of the hosting ecosystem as you may want to know.

We aim to change that — starting with this new publication series. There’s a lot to cover, so this first edition will be published in two parts. Look for part two in the near future!

Highlights

Here Be Dragons: Managing Expectations in Uncharted Territory Holo Hosting Operating System (OS): Ready for All Three HoloPorts + DIY Hosts Networking Infrastructure: In Place and Ready For Closed Alpha

Details

1. Here Be Dragons: Managing Expectations in Uncharted Territory

Last week, the Introducing Holo Closed Alpha Testnet — Leadership & Org Update gave us a glimpse of the elements that make up Holo Hosting. As detailed in the post, each one of those parts is a huge undertaking and would comprise the entire business of other projects.

Every piece is an excursion into the unknown — we’re building something that nobody has ever built before.

The road to open alpha, a tree of dependencies

From the graph above, you can see that a lot of the pieces are interdependent — and this is just the simplified version! It takes a lot of coordination to sync up all the dependencies. This has been an area in which our young team has sought constant improvement. We still have room to grow, but our coordination muscles are stronger than they were when we began.

We’re deeply appreciative of your patience, support, and faith during this learning process. We understand that it can be difficult to invest your hope (and money) in a vision and have to wait longer than expected for it to be realized. When timeframes get adjusted, it can seem like the vision recedes into the distance. We are starting to shift from time-based promises to more regular and broader communications about the development progress of different components we’re working on. We feel that transparency will do a better job of keeping you informed than dates ever did, because it accurately reflects the current state of affairs, as well as acknowledging challenges and learnings.

Holochain is Dependency Zero. It powers all of the hApps and the marketplace where they’re hosted.

Developers are already building on it, but its API is in flux and some features are not yet fully implemented. Our present goal is to finish the features that are absolutely necessary for the Holo Alpha releases.

2. Holo Hosting Operating System (OS) Ready for All Three HoloPorts + DIY Hosts

Holo hosting OS for HoloPorts

Our intention for the Holo Hosting OS is to make it easy for people to place a device, either a HoloPort or a DIY hosting device, in a corner of their house and let it run 24/7 without maintenance. We’re building our OS on top of NixOS, which allows us to test and roll out automatic updates in a way that is guaranteed to work — and to roll them back safely if Murphy’s Law comes into play. NixOS also prohibits unauthorized executables from being installed, which protects your device from trojans and other exploits.

The OS has been built and tested for all three HoloPorts and all hardware drivers are working properly. It was especially difficult to find the right setup for the HoloPort Nano, which is built on the Banana Pi m64 board.

We’re proud to say that our efforts, combined with a lot of help from the open-source community, resulted in a global first. Nobody had ever been able to get nixOS running on the Banana Pi!

Big kudos to the nixOs community for the great work, as well as to all the other organizations who collaborated with us to reach this unprecedented success.

For those who want to host on custom rigs, we’re also releasing an OS as a VirtualBox image. If you’re part of the Closed Alpha Testnet, you’ll receive instructions on how to download the image soon.

After some work on a build process that will serve as a solid recipe for future releases, the OS now includes the new v0.0.4-alpha release of Holochain. The Host Manager Application for administering your device is in development and will be available in a later alpha or beta.

networking infrastructure

3. Networking Infrastructure: In Place and Ready For Closed Alpha

It isn’t easy to bridge the centralized web to distributed applications that can resist central control. We’ve created designs, modified them, thrown them out, and started over — eventually coming up with a pretty robust system.

Holo Hosting allows traditional web users to become ‘full citizens’ on Holochain, maintaining control over their identity and data, while enjoying the ability to log on from any computer via a simple email/password. This was no small feat!

The infrastructure has many components:

The three Holo apps — Holo Hosting , HoloFuel , and the Service Logger — manage the hosting device’s resources on behalf of Holo app providers and web users.

, , and the — manage the hosting device’s resources on behalf of Holo app providers and web users. The Holo Interceptor lives on the host, tells Holochain to fire up hosted app instances on behalf of users, and routes traffic to the proper places.

lives on the host, tells Holochain to fire up hosted app instances on behalf of users, and routes traffic to the proper places. The DNS Service routes web users to the hosted Holochain application.

routes web users to the hosted Holochain application. The Host Selection Service chooses hosts for each user.

chooses hosts for each user. The Salt Service augments users’ passwords with extra randomness, allowing them to generate secure private keys from any web browser.

augments users’ passwords with extra randomness, allowing them to generate secure private keys from any web browser. Web users communicate directly with their hosting devices through secure tunnels . These tunnels also allow hosting devices behind restrictive firewalls to proxy their gossip communication through other, more open, hosting devices.

. These tunnels also allow hosting devices behind restrictive firewalls to their gossip communication through other, more open, hosting devices. The client-side libraries live in the user’s browser. One bootstraps an app and the other manages identity creation and host communication. Developers can turn their web-based Holochain GUI into a Holo-enabled GUI by simply importing the latter of the two.

live in the user’s browser. One bootstraps an app and the other manages identity creation and host communication. Developers can turn their web-based Holochain GUI into a Holo-enabled GUI by simply importing the latter of the two. The Holo Light Client will be a full implementation of Holochain-Core for the browser, replacing portions of the client-side libraries.

CloudFlare

We’re happy to report an exciting milestone! With the help of CloudFlare’s infrastructure, we have all of the major networking components in place. Many of CloudFlare’s services already operate in a distributed manner, so they felt like a good technological and philosophical match for Holo Hosting.

We’re currently testing the networking pipeline in our internal Closed Alpha. It’s a real thrill to type in a URL and see a real Holochain app appear in your browser!

The majority of the remaining pieces of infrastructure — the three core Holo apps, the interceptor, and the client-side libraries — are in the final stages of development and will be ready for the first public stage of Closed Alpha. The Holo Light Client will replace portions of the client-side libraries in a later release.