Hi @Guillermo and welcome to the forum! I’ll give my best stab at an answer here…
BACK END:
- Social network mechanisms:
- linking up with people; awareness of extended network, with numerical parameter relating to state of help exchanged with each pair of users.
IMO Holochain offers only oblique advantages here. From the perspective of making your developer’s life easier, it doesn’t offer much at all. But from a user perspective, the advantage is that people are in control of their own data. All processing happens on their own machines, which gives them assurance that you’re not holding their data captive. And this public graph of relationships is hard (though not impossible) to mine, because it’s not kept in a central source.
There are other advantages to having data spread out over many users:
- It’s harder and less attractive for attackers to steal. Private data stays on individuals’ machines, which means that in order to get mass access to everyone’s private data, they would have to compromise every machine. The only thing worth their time would be to target high-profile individuals.
- It’s less of a cost centre and liability to you. You don’t have to protect the data from attackers, and you don’t have to pay to have it hosted (unless you choose to put the app on Holo Host, which presents Holochain apps as if they were traditional websites).
- Calculation mechanisms:
- linked to a) in that it calculates the amounts based on the state of each user’s network (close and far friends). See website for example spreadsheet.
Holochain is designed for creating traversing this sort of graph. It’s not as efficient as having all the data on one server, because every graph lookup will probably require talking to a different node. But this can be mitigated somewhat with clever application design. And again, there are advantages to not keeping data in one central location.
- Paying mechanisms:
- Digital wallets, cryptocurrencies… What is clear to We-Guild is that it doesn’t want to hold anybody’s money. P2P, We-Guild just facilitates everything else but it is not an intermediary through which the funds travel through.
I definitely agree with you here. I’ve tried to walk through what makes sense for payment processing in a Holochain app. And in most cases there isn’t much value — instead, investigate ways that the UI can do that instead. The implementation of this will vary by payment type.
The only exception to this is if you want people to be able to send funds to each other with a Holochain-based currency. In that case, the users themselves connect their own running copy of We-Guild to their own running copy of HoloFuel, or whatever currency they decide to transact in. You’re completely out of the picture, which is really nice.
The way you describe Holochain as just an ‘instruction giver’ is a perfect way to look at it. It’s true for both centralised gateways and Holochain-based currencies. The app just tells the user’s computer how to initiate and complete a transaction, and it’s the user’s computer that does the work.
FRONT END:
- I guess Holochain is more of a back-end thing but, maybe I am wrong?
Are there any issues to consider when thinking about the front-end side of things and Holochain?
You’re correct here too. Here’s a run-down of the components:
- The Holochain Conductor sits on users’ computers (or on a Holo host, if you choose to go that way) and manages their installed apps and their connections to other people using the same apps.
- The apps themselves live in each user’s Conductor and are just the bare minimum needed to:
- store data
- retrieve data (either from the users’ private store or the shared database)
- make sure that data is structured properly. This means that your app is responsible for enforcing the ‘rules of the game’ that protect people and make sure the community operates the way it should.
- The UI can be built with whatever you like, and it talks to the apps to store and retrieve data on behalf of the user. Again, every user who is participating in an app has the UI on their machine (or on a Holo host that’s running the app on their behalf). Users can swap one UI out for one that they like better (if such a thing has been created), and a UI can also glue together a few apps (like, for instance, We-Guild and a couple currency apps).
Any issues to consider… hm.
- A web-based UI is probably the easiest to build and deploy in a bunch of different scenarios – it’s great for users with Holochain on their machines, can be deployed to Holo Host, and could even be used in mobile apps. This UI should be written in the ‘single page app’ style (don’t worry; most developers build apps this way nowadays).
- Connecting to traditional payment gateways (e.g., credit cards) may be a bit of a stretch. These gateways weren’t designed with P2P apps in mind; they were built on the assumption that only a server would talk to them.
Organisation-wise: Are there any advantages to using Holochain in the internal workings of the organisation itself? If so, which and how are they advantageous?
Maybe? Right now most apps are in the incubation phase. Once these apps spring to life, I can see a couple advantages:
- Holochain apps are offline-friendly; depending on how it’s designed, you could even catch up on work while you’re riding in the airplane.
- On a related note, because there’s no server, you don’t have to worry about outages in business-critical apps destroying everyone’s productivity for a whole day. We’ve had this experience with Slack and GitLab, two hosted services.
- You own your data.
We’re working in-house on a few productivity apps. Early days right now, because our big focus is getting Holochain and Holo Host to a mature state. Then we’ll double down on those apps again.
A general question I also have as a layman is how much from scratch would you need to build these things? To what degree would it be a matter of interconnecting already existing platforms and to build anything anew?
Like most things, ‘it depends’ A lot of really useful things are already being built for Holochain, so to an extent your developer might be able to glue existing Holochain apps and libraries together and simply write a UI to talk to them. As for existing centralised services, it’s not a sin to take advantage of them The thing to keep in mind is that, with a Holochain app, it’ll always be the user’s UI that’s initiating these communications with, say, the payment gateway, Google Maps, etc, etc. In some cases that might lead to engineering challenges, because as I mentioned these services are expecting servers, not individuals, to be talking to them.
Hope this helps! I expect my answers will just create more questions, which is fine — ask away.