Loomio
February 22nd, 2018 17:02

P2P/ Distributed Network Protocols

Draft
Draft Public Seen by 554

@draft asked "Are you creating something like holo" : https://www.indiegogo.com/projects/holo-take-back-the-internet-shared-p2p-hosting-community-technology#/ ?

@bobhaugen started a list of projects that could be investigated for similar uses. Feel free to add candidates (in alphabetical order):

Bob Haugen

Bob Haugen February 22nd, 2018 17:15

We're looking at Holo as one potential technical infrastructure for an agent-centric OAE. They agree on the agent-centric part, and they want to support economic networks, so they are attractive from a valueflows perspective.

We're not deep enough into the details to know if we'll go with holo or one of the other possibilities. But we're talking to people there.

[Edit] but we don't to create something like holo ourselves. Just ride on something that already has a good team and some momentum.

Draft

Draft February 22nd, 2018 17:30

What are the other possibilities (if the list is public/available) ?

Bob Haugen

Bob Haugen February 22nd, 2018 17:48

My short list includes Solid from the semantic web gang, SSB, DAT, and IPFS. I know other people are thinking of the newer types of blockchains.

These are all technical protocols (if we can accept a blockchain as a protocol, which is a stretch) using the idea of vocabularies + protocols to get an open app ecosystem to be an ecosystem instead of a random collection apps with maybe single-signon.

Could also use the Web as-is with HTTP as the technical protocol and Solid as the app framework.

Other people may have other ideas.

Lynn Foster

Lynn Foster February 22nd, 2018 20:52

I think all these discussions about future backend technical protocols are great. And I agree with @bobhaugen about riding on something already in development.

Just fyi, all the experiments I am working on right now (with the exception of one ssb experiment that hasn't really gotten off the ground) are still web as-is with various standard databases sitting underneath the backends. So moving from platforms to smaller open apps that can message each other and talk to different backends, but without more radical changes. For now.

Tiberius Brastaviceanu

Tiberius Brastaviceanu February 23rd, 2018 00:32

I am also looking closely at Holochain. I spoke to Samer from https://p2pmodels.eu/ about it, they will consider it as well. SENSORICA and p2pModels will probably collaborate. I like Holo because it is agent-centric, and because they like asset-based and service-based currencies. This is what we are also looking for with SENSORICA, currencies that are backed by economic activity and utility currency. Moreover, the whole notion of current-see is something that we want to implement in SENSORICA. Not to mention our alignment on values, culture, worldview... They start with a p2p cloud application and we want to explore how we can move our CMS and CRM out of Google. I did my part in Montreal and that resulted in 5 holoports being purchased. So we put our money where our belief is.

Caroline Smalley

Caroline Smalley February 23rd, 2018 20:40

Ditto @tiberiusbrastavice beta CM will be on Rails - well underway, but we're thinking gamma in Holo. Rails will make it easier to grow the market but distributed hosting through Holo makes so much sense. Understanding is we'll need to build our own blockchain for CM currency, but when activity is managed through Holo apps, can look at exchanging for Holo.

Caroline Smalley

Caroline Smalley February 23rd, 2018 20:41

CM currency is based around P2P marketing

Draft

Draft March 9th, 2018 20:31

Thank you for your list ! Unfortunately, I have some troubles to find information about the initiatives that you talk about :/ Would it be possible to put links too to have more information about them ? :)

Danyl Strype

Danyl Strype December 11th, 2018 17:18

Would it be useful to rename this thread to reflect that it quickly became a broader discussion (and an important one)? We could all learn a lot from comparing and contrasting the various projects defining standards and building blocks for federated and decentralized networks of apps and sites, such as those listed earlier in this thread by @bobhaugen

Oli SB

Oli SB December 11th, 2018 19:45

I'd second that - perhaps "existing distributed framework projects" or similar?

Simon Grant (Cetis LLP)

Simon Grant (Cetis LLP) December 11th, 2018 23:25

I was noticing that more about the dat protocol has been circulating recently. Has its own site at https://datproject.org/

Greg Cassel

Greg Cassel December 13th, 2018 19:56

That could work. I'd say we're technically looking at distributed activity frameworks, or p2p activity frameworks. (But 'distributed framework' is more concise, and probably better if it seems reasonably clear.)

Danyl Strype

Danyl Strype December 20th, 2018 17:19

Language can get so tricky here! Distributed/ P2P, definitely. "Activity" is gaining a narrower technical definition, but I would go with "network". Are we talking about "frameworks" though? That makes me think of web frameworks like Rails in the Ruby world, or Zope/ Django in the Python world. I would go with a title like "P2P/ Distributed Network Protocols". Any objections?

Greg Cassel

Greg Cassel December 21st, 2018 14:30

Well, some of these projects are literally protocols, and others are apps (although they may contain protocols). I personally prefer framework because I find it generic, flexible and accurate. Web frameworks can't own the term 'framework' any more than, say, a car chassis could own it. I think we'd be artificially impoverishing our language by deciding to use framework only for web application frameworks.

The term I personally use in one of my key docs is 'organizing framework'. Not sure why I didn't think of that up here above.

Of course you can call anything whatever you want to call it! I just try, in my social circles, to generally steward the potential of English to be used as flexibly and accurately as feasible.

Bob Haugen

Bob Haugen December 21st, 2018 14:47

The differences in my mind between protocol, framework, and platform include:
* a protocol usually has a specification, and if you can follow the specification, you can use the protocol. So the Web stack was a protocol. Many independently-developed Web servers and clients and pages use the protocol.
* a protocol usually has some software that runs it, but if it is really a protocol, many independent software components can run and interact with each other using the protocol.
* a framework is usually a set of software components that people can use to develop applications.
* so for example, with Holochain, we are creating a framework that will run top of Holochain the protocol, that we and others can use to develop economic network apps.
* we and others are developing similar frameworks for the ActivityPub and SSB protocols.
* I see some differences of opinion on platforms, but to me, and platform is an all-embracing, usually centralized, system, that will usually be developed on a framework, using a protocol, but you are usually stuck using the platform's implementations of the framework and the protocol.

So in terms of degrees of freedom for independent development:
* a protocol has the most
* a framework has less
* a platform has the least (of those three).

Simon Grant (Cetis LLP)

Simon Grant (Cetis LLP) December 21st, 2018 15:24

Useful clarification, thanks @bobhaugen

Bob Haugen

Bob Haugen December 23rd, 2018 15:31

Counterpoint: in terms how much help the foundation gives you in developing apps to run on it,
* a protocol gives you the least
* a framework gives you quite a lot, but you still need to deploy
* a platform may not require any code at all, or might offer an API with some doc.

Michel Bauwens

Michel Bauwens December 23rd, 2018 15:34

great indeed

mfioretti

mfioretti December 24th, 2018 06:36

two comments. First is an addition to, or maybe another dimension of, the "protocol vs framework vs platform" distinctions:

protocols are much more scalable and much more robust, i.e. way more p2p than the rest. Build a platform alternative to "X" (where "X" is Facebook, google, airbnb, whatever) and everybody else has nothing to do, just jump into it... because YOU carry all the tech, legal, funding etc.. burdens of scaling it up and keeping it work. To offer a platform you must become the next Zuckerberg, with the same spending and potential surveillance powers, WHOEVER "you" is (coop, government etc).

Whereas if you ONLY build a protocol, e.g. email or http, everybody can and should build and maintain their own independent but automatically interoperating part of it with their own money, policy, responsibilities, liabilities... and the whole show keeps running without an itch if you the builder, or even 30% of the "everybody" partners retire in a monastery every year.

Second comment, no, a question: may I ask WHAT do you want to do? Not HOW (i.e. protocols or platform etc), but WHAT? And by "WHAT" I mean "if Santa Claus brings you tonight unlimited money and all the programmers and other contributors you may possibly need, what will that 99.99% of human beings who can't tell a protocol from an asteroid get and who will NEVER; EVER "run their own server, exactly? What will they do with it? What will they see on their screens? What will it look like, and what will it replace? Facebook, Airbnb, whatever, all of the above?

Not having this clear is equivalent to debate how to build the next generation of electric screwdrivers, expecting that everybody will use them to build what they actually needed... e.g. a toaster, or a door handle. It would be highly worthwhile in and by itself, no doubt, but with very little practical outcome, if any. Because this is a problem space in which anything that doesn't work from the outset for that 99.99% of people above won't produce enough change, soon enough to make any meaningful difference for society.

Bob Haugen

Bob Haugen December 24th, 2018 12:47

Totally agree about protocols vs platforms.

Re what we want to build, some of us are fairly clear: we want to build software that will enable economic networks, and networks of networks, eventually constituting a new economic system. For example, https://docs.opencoopecosystem.net/

Greg Cassel

Greg Cassel January 2nd, 2019 20:27

I agree @bobhaugen regarding your useful distinctions, bearing in mind that you're referring specifically to web application frameworks and not the more general (and often older) uses of the extremely flexible and IMO under-used term 'framework'.

I guess the key issue to me here, as usual, is to focus on frameworks for person-to-person interactions first, and only secondarily on well-defined activities which people desire to automate through apps.

Danyl Strype

Danyl Strype January 8th, 2019 04:50

@gregorycassel

Well, some of these projects are literally protocols, and others are apps (although they may contain protocols).

That's true, but the focus of the discussion is mainly on the re-usability of the protocols used in said apps, is it not?

I personally prefer framework because I find it generic, flexible and accurate.

Funny, that's precisely why I don't think it's the right word here. I think we need to confine the discussion in each thread to more specific topics, so that as the activity in the group groups (as I hope it's about to), people can find the discussions that are most relevant to their interests and their work.

I think we’d be artificially impoverishing our language by deciding to use framework only for web application frameworks.

Oh, for sure. I guess I'm working on trademark logic here. Words can have many meanings, but it's confusing if they have multiple meanings (or overly broad usage) in a specific context. In the context of internet technology, I look at the title you suggested, and my mind automatically jumps to web frameworks, not what the discussion (so far) is actually focused on.

Of course you can call anything whatever you want to call it!

Cool. I'll change the title now. It can always be changed again as the discussion in the thread evolves.

Christopher

Christopher January 8th, 2019 07:47

So the "protocol vs framework" hits the nail on the head, when considering Holochain as a technology. The core, agent-centric protocol would be extremely useful. Unfortunately Holochain are really driven by creating a vendor lock-in scenario: https://prezi.com/view/NvRAZ35fln9i70V3YCrl/

Looking forward, the core agent-centric protocol is not huge - the core idea being that the protocol is federated by nature, since agents must be trustless.

There are several companies we work with that have moved away from what I consider (as a founding employee - my photo is on the indigogo page) their pretty toxic internal politics and ... less than open technology.

We will have an open, federated protocol, and at least one (node.js / browser) client, that is agent-centric by September this year. It is very worth getting to grips with the concepts behind agent-centric design. Maybe you can put pressure on Holochain to actually build what they say they are! I know we couldnt do it from inside the company :)

Simon Grant (Cetis LLP)

Simon Grant (Cetis LLP) January 8th, 2019 13:29

@christopher7 , @olisb , @tiberiusbrastavice , @z428 I am relatively inexperienced technically, but I see some really very important issues coming up in what @christopher7 has written about the Holochain setup. To the extent that @christopher7 is correct, it would seem good if somehow Holochain, or others, could take account of his points. To the extent that @christopher7 is mistaken, it would be great for everyone to get to the bottom of it, partly in terms of our collective understanding of what is likely technically to work best and what not, and partly in terms of our social interactions: how do we best treat people who raise doubts about something? How do we restore good relationships that have been hurt? Discrediting ad hominem is, I believe, a really unwise approach. I recognise that this puts some burden on the Holochain builders and supporters, but to me that investment of time would pay off handsomely in terms of social reputation, as people who can handle dissent rationally and respectfully, and recognising that everyone's needs matter. Can we model how we would value such disagreements to be dealt with in our P2P world? P2P justice and fairness? But also, learning and education ... as someone with a limited technical knowledge, I would so much enjoy a clear setting out of the points, deep enough so that people like me can arrive at their own conclusions.

We have other disagreements in related Loomio channels as well. It means a great deal to me to have these disagreements handled well, in a positive way that restores trust and the ability to work together constructively. Otherwise we fragment, and simply get lost.

Would people be willing to take this specific discussion, about Holochain, to a separate thread? Maybe we need a separate thread whenever a tricky disagreement arises?

Christopher

Christopher January 8th, 2019 13:48

Gosh. Where to begin. Firstly I respect and enojoy your position and clarity of expression.

As to the technology, I am a founding employee of Holochain, worked there for 10 months, a coder of 30 years, I wrote various initial drafts of white papers, coded a bunch of stuff for the Holochain Core, helped design the neighbourhood gossip protocols, and maintained core respect values for all during meetings.

I can tell you that I spent months trying to work through these technical issues with the two directors, and my opinion that they are deliberately buliding a vendor lockin "platform" is based on my complete failure to have the issues acknowledged, let alone make changes. I was unable to complete the whitepaper because of this, and the corollary lack of research into the security of the design, since no work was done on the actual policing neighbourhood dht certainly for the first 18 months of the project. In my opinion, that dht could have been built in 6 months.

Im not sure there is a disagreement here, as of yet, in the form that you mean. differing points have been raised, but I dont see any kind of "argument" happening.

As to a new thread, I am happy to discuss any level of depth about the technology.

Kristian

Kristian January 8th, 2019 14:08

I'm a bit lost at the moment as I don't actually see the problem. Mentioning and discussing Holochain out here apparently has caused some controversy, but I'm unsure whether people have been discredited all along these lines. Do you think the discussion moved into this direction? Generally, of course, my expectation would be that, no matter how strong a disagreement on a technical or conceptual level, people are very well "professional" enough to keep things from degrading to an ad hominem level of discourse... ;)

Bob Haugen

Bob Haugen January 8th, 2019 14:29

@christopher7

We will have an open, federated protocol, and at least one (node.js / browser) client, that is agent-centric by September this year.

Who's "we"? Did I miss something?

Bob Haugen

Bob Haugen January 8th, 2019 14:36

To the extent that @christopher7 is correct, it would seem good if somehow Holochain, or others, could take account of his points. To the extent that @christopher7 is mistaken, it would be great for everyone to get to the bottom of it, partly in terms of our collective understanding of what is likely technically to work best and what not, and partly in terms of our social interactions: how do we best treat people who raise doubts about something?

I think it would be necessary to have somebody from the Holochain core team respond to @christopher7 's criticisms. They have a lot on their plate, I doubt it will happen, at least not here. I don't know enuf to do any kind of rebuttal.

And that also assumes this group wants to take on that kind of quasi-judicial role.

Regardless, it might be useful for Christopher to summarize his main criticisms in a simpler form than a prezi: like a list of specific issues, if possible without oversimplifying too much.

Christopher

Christopher January 8th, 2019 14:44

it's not my responsibility, nor desire, to help guide people and projects in their technology choices. I've made myself quite clear already. specific questions I am happy to answer.

Christopher

Christopher January 8th, 2019 14:53

nope. we is just my project. we work in education and high end linguistics and cognitive neuroscience. I can see there is potential value for a policing neighbourhood dht, or something similar. that's a bunch of us with various open designs. the prezi gets the idea across.

Simon Grant (Cetis LLP)

Simon Grant (Cetis LLP) January 8th, 2019 15:13

Thanks for the responses. @bobhaugen I am absolutely not suggesting a quasi-judicial role, but exactly the opposite. I'm sorry that I didn't make that clear enough; thanks for the opportunity to clarify. What I am looking for is to reach a position of mutual understanding, where if there is a difference of opinion it is an "agreement to differ" which would be absolutely fair enough. What I see, Kristian @z428 is that @christopher7 is suggesting that (e.g. as above) "Holochain are really driven by creating a vendor lock-in scenario" and that they have "pretty toxic internal politics and ... less than open technology" -- which I see as reasonably serious claims. I read others, including @olisb suggesting on the contrary that @christopher7 is motivated to express these opinions by disappointment / resentment (I don't have the quote to hand at this moment) and that his claims do not hold water. @olisb gave an explicit "thumbs down" above.

In my experience, this is the kind of disagreement that, if left unresolved, can lead to long term ill feeling and lack of trust -- leading in turn to fragmentation of effort, lack of co-operation, and a weakened effectiveness in the "real" world out there. Therefore in my view it is in the interests of the whole community to restore these and other similarly damaged relationships. It isn't going to be resolved by people simply restating their positions. @christopher7 , I recognise and accept that it is not your role to decide other people's technology choices. You may have the impression that you have made yourself clear, but as far as I can see it is clear only that you have doubts and reservations both about the technology, and the internal culture of Holochain; and it is not clear (to me) exactly what the substance is there. I am not able to give a technical opinion -- and I suspect no one else here is, without the deeper analysis that I am suggesting. That's what I hear @bobhaugen looking for. But my much greater concern is for the emotional side, the feelings and needs of all parties concerned. If we are (all) going to make these kinds of project work, it seems to me that it is imperative to tackle cultural behaviour patterns in a positive and constructive way. All I am doing is calling out what I see (and please recognise that I am not assigning any blame on any side) as a tricky situation which needs something better than the kind of response that is common in these situations, to complain, avoid, resent, without any resolution or restoration.

Alongside "Distributed Network Protocols" we need to build supportive and caring cultural practices. @richarddbartlett is one of the people who have a great deal of value to say in this area. I don't believe that the technical solutions will thrive without the social and cultural ones.

Bob Haugen

Bob Haugen January 8th, 2019 15:35

@christopher7 I'm willing to discuss your technical and vendor-lockin criticisms as best I can, but you have not made yourself clear enough already to do that. For me to discuss your issues, I would need to summarize and list them from your prezi, and I would probably miss or misunderstand something, and then you would need to correct me, and it would be a tedious waste of time for me, you, and everybody else.
So I am requesting that you meet me half-way and list your main issues in a form where I can easily respond in a text comment.
I am not asking as a ploy so I can piss all over you. I will take your issues seriously.
I can't discuss the toxic internal politics because I am not involved with them as an outsider.

Bob Haugen

Bob Haugen January 8th, 2019 15:48

I totally agree about their importance, but the social and cultural and emotional issues involved here seem to be between Christopher and Holochain people. What can we do about them here? Or is your point that those are important issues and we should be caring about them among the people who are engaged here? If so, yes please, and if I ever fail in that regard, please gently nudge me in a better direction.

Simon Grant (Cetis LLP)

Simon Grant (Cetis LLP) January 8th, 2019 16:20

Bob, I really appreciate your offer to hear out Christopher on the technical issues. I'm sure that itself will help in one or more ways. On the wider matters, my sense is that whenever there is an unresolved conflict, it seeps into the ground surrounding those in conflict. For instance, I don't sense any harmony or understanding between Christopher and Oli.

So while your question "What can we do about them here?" seems to beg the obvious common sense answer, "nothing", at another level I don't believe that is entirely true. It's not true in my direct experience either.

My belief is that the more we live that "solidarity" culture (which by the way does not avoid conflict at all, but addresses it positively and with care) the more we, here, can be living and building the culture that will support (and be supported by) the kinds of distributed and P2P technology that we are also concerned with.

I see Michel Bauwens @michelbauwens1 also as in tune with this general theme. P2P is at the same time technical and social, and the two go hand in hand.

Greg Cassel

Greg Cassel January 8th, 2019 16:48

the focus of the discussion is mainly on the re-usability of the protocols used in said apps, is it not?

Yes, good point, and I'm pretty happy with "protocol" being a key title term.

Christopher

Christopher January 8th, 2019 17:04

ha, well you are a very perceptive person.

ok, I have a bunch of technical documents that I wrote while I was there, but they have loads of core cultural terms in them.

so I have written this: https://docs.google.com/document/d/1sa41rluyW5DF2aTRUVBUm5BZjIXjEbtTAJEpotEJByA/edit

Christopher

Christopher January 8th, 2019 17:06

I dont know who Oli is :)
My personal feelings about the Holochain management are not relevant. What is relevant is at least the broad scale of direction that "our" time is spent on, and I simply submit my interpretation of the software for yous to consider.

I am well trained and deeply motivated to maintain solidarity culture.

Bob Haugen

Bob Haugen January 8th, 2019 19:11

Ok, thanks. I will respond tomorrow latest. Might have a question or two. If anybody else wants to help figure this out, I always need help..... :thinking:

Oli SB

Oli SB January 8th, 2019 19:56

Hi Christopher, and all,
I'm Oli - I run https://open.coop I'm a fan of Holo and replied to you above.
Holo folks are my friends. I am not affiliated to the project in any way.
Like Bob says they're busy... too busy to get drawn into this chat...
I agree with Simon, it's good to clear up any disagreements, it's definitely a part of the culture we need. If anyone wants to discus a specific disagreement I think a new thread is a good idea - and should maybe be part of the group guidelines.

Bob Haugen

Bob Haugen January 8th, 2019 20:06

Headsup: my personal plan for responding to Christopher's criticisms of Holochain is to contrast several candidate protocols/frameworks for economic networks: Holochain, SSB, and ActivityPub. Might even put a little DigLife in there. So I don't want a new thread that is only focused on Holochain.

I'll discuss Christopher's criticisms as best I can, but thought it would be more useful to look at a bigger picture, using those criteria as well as some others.

Bob Haugen

Bob Haugen January 8th, 2019 21:06

Given that I will contrast several protocol candidates, ok if I just post my response here? (I'll write it elsewhere and post a link here.)

Tiberius Brastaviceanu

Tiberius Brastaviceanu January 8th, 2019 21:12

@bobhaugen "... contrast several candidate protocols/frameworks for economic networks: Holochain, SSB, and ActivityPub."
Can't wait to see it.

Christopher

Christopher January 9th, 2019 07:11

Dear Oli. good to meet you. I lived and worked in the holochain house for many months. I consider many of the folk to be my good friends. I am/was emotionally close with almost every person. the world, however, is not so one dimensional.

it is clear that the technical discussion doesn't rely on any human level analysis.

on a slightly more intentional level, the decision (-) to ignore the broad implications of points I raised when I was one of only three programmers (including Eric), should be considered rationally, but may not be important to some or anyone.

Christopher

Christopher January 9th, 2019 07:26

oh yes, we met. I enjoyed your company. we are both quite effective.

Christopher

Christopher January 9th, 2019 07:41

it may be reasonable to point out here that I have not just levelled criticism at the holochain offering. From the starting point of deconstructing the components of a platform I helped to build, I have shown how a brilliant idea is been wrapped inside a deeply counterproductive cocoon of corporate vendor lock in. I have been clear how to leverage the real value of the idea, within the wider context of existing mature tools.

Bob Haugen

Bob Haugen January 9th, 2019 10:52

Is the essence of your criticism that, at least at this stage, participation in holochain is dependent on software from the holochain organization? (Although the software itself is open source.)
And it would have been better to specify a protocol which could be used by agent software developed in one of many existing frameworks (e.g. Wordpress), using external "Policing Neighbourhood DHTs"?

(I like the term Neighbourhood DHT, by the way...)

Adam Waterhouse

Adam Waterhouse January 9th, 2019 13:30

Hey Chris - it's Adam - nice to see you on here! I am not a techie as you know but want to get to grips, as far as possible, with the concepts that underpin Holochain and agent-centric design. Where should I go in order to get to grips with the broad concept of agent-centric design? Are there any articles, videos, books, etc that you can recommend? I don't mind wading through stuff that I don't understand and which goes a bit over my head. Just as long as it isn't just lines and lines of code which, as a non-coder, is fairly incomprehensible to me - Cheers! :slight_smile:

Adam Waterhouse

Adam Waterhouse January 9th, 2019 13:47

I've taken a look at the Prezi and gotten what I can out of it without taking time out to study coding and computer architecture. I guess the thing that struck me most was the point that you were making about how it will be possible to do much the same thing with Wordpress and Python (and one other) as Holochain are trying to do, and, hence, what they are trying to do amounts to making life unnecessarily difficult for themselves in terms of reaching their stated goals. Am I getting the basic gist of you POV? What struck me, in my hazy fog of half-understanding, was that what you were saying was probably correct with regards to aspects of what they are trying to do, but that surely there must be aspects of what they are trying to do, that are considered desirable, that they wouldn't be able to accomplish in the way you describe (i.e. using Wordpress or Python). For example, a big, big part of what they want to do is to facilitate distributed hosting and distributed computing so that we can break the strangle-hold of the web-giants (Google, Facebook, Amazon, etc) storing all of our data on their servers and acting as a bottle-neck for all of our communications. So surely distributed computing and distributed hosting is a very important part of what they are trying to accomplish here and not something that you can do with Wordpress, etc? On the other hand I also take very seriously the idea that they may be doing things that are unnecessary for the sake of having their own signature written all over it and want to do my best to make an independent assessment of that! Please excuse my very hazy view of things. I'm trying to understand things that I recognise as important.

Christopher

Christopher January 9th, 2019 14:06

yes. it is also true that the "requirement to embed a vm", which is the root of the need to developa complete ecosystem from scratch is not agent-centric and the sole effect is to create time commitment to the holochain company, not the tech, or the movement

bare in mind I spent months making this clear. as the Second programmer that ever committed full time to the project

Christopher

Christopher January 9th, 2019 14:10

the prezi makes very clear the part I consider to be brilliant, and useful. the rest of it is deeply counter productive to the movement, delivers literally no value, it's very time consuming, and being presented as a necessity of agent centric design. which it is not.

if you want to get a feel for the logic of it, start with "what is OPT-OUT security", in your mind, and ask questions from there

Christopher

Christopher January 9th, 2019 14:17

I suppose the essence is, that holochain spent 95% of their time building a platform, which had no clear purpose in the agent centric space, and 5% jerry rigging a dht to connect these "agents" together. technically it is a much much simpler problem to create policing neighbourhood dht nodes, as a protocol and sample client. I suggest a useful prototype could have been built within 6 months, allowing community developers and app coders to begin exploring the agent centric path.

the result, of course would have been some respect, maybe some fame, but not fortune.

I have nothing at all against people raising capital by saying whatever they like, but i do feel a duty to point out what I see to be the energy black hole inaccuracy, that drove (drives) that money into that organisation.

the "at this stage" is an issue. if hochain continue to present the idea that "a new internet of freedom" is the result of starting again... effigy they know to be categorically fake, and people start reinventing thousands of wheels... then great. but.... this movement does not need that kind of time sink, nor that kind of inaccuracy in it's core.

Christopher

Christopher January 9th, 2019 14:23

the idea that they have built their own "rapid app development stack" to connect with their embedded vm is.... purile.

Christopher

Christopher January 9th, 2019 14:25

it's not just that it is dependent, it is that the dependency rejects about a decade or 15 years of ecosystems, all of which are perfectly valid components of the "agent centric" ecosystem. if that makes sense.

Bob Haugen

Bob Haugen January 9th, 2019 15:04

Some of it makes some sense, but the emotionally-laden expressions (fake, purile, vendor-lockin, etc) get in the way of analysis. As well as cause some people here to cringe. I understand that you feel mistreated, and give you some slack about it, but it does distract.

Christopher

Christopher January 9th, 2019 16:21

Lol. Bob, the fact that you choose to imply emotionally laden projections onto my words is a common place behaviour in groups such as these. Reducing the "potential emotional context" to zero, to "avoid ..." what is it Arthur Brock calls it "disruption", is just a weird brand of oppression, implemented by people who don't have real world experience of managing disagreement. The truth is, all of my analysis makes perfect sense, and my words are carefully chosen from a large vocabulary. I could have chosen "less potentially emotionally laden words", but I'm much more interested in expressing myself, than pretending that Holochain have'nt done what they have done deliberately, with awareness. My safe space credentials are thorough. The idea that use of the word "purile" is somehow "cringeworthy" is ... oppressive in the extreme.

Definition of purile: "Nowadays, puerile can describe the acts or utterances of an actual child, but it more often refers (usually with marked disapproval) to occurrences of childishness where adult maturity would be expected or preferred"

^ -- That is my actual opinion, based on my experience. Disregarding it as "an expression of being mistreated" is the kind of bizarre behaviour of people trying to lead a scenario where they are half way between one universe (managed hierarchy) and another (folk network). I applaud your attempts, but have to disagree. Perhaps you can learn something from this?

If you want to comment on the content, go ahead.

Now... a "Zero emotional version", for the.. "cringers" (should they actually exist), is:

  1. Criticism of State of the Project

    • Not a federated protocol
    • DHT not developed to deliver core promises of Holochain narrative
    • In order to create Holochain apps, developers must learn an arbitrary, immature new language form, where there is no justification for its existence.
    • Educational material embeds, implicitly around "OPT-OUT Security" as a core requirement of agent-centric, where actually the concept of "DNA" of a holochain app is demonstrably not agent-centric, and the concept of "OPT-OUT" security is... --- (now here I would insert a feeling, since for me, that is how I would choose to express my depth of understanding, but since that would get somehow related to me being mistreated, something I have never said or implied, rather than me having 30 years of experience of logical analysis... let me find an accurate, vulcan expression..... ) --- absolutely impossible, a-priori impossible with even a basic grasp of rational systems design, and possibly most importantly, devalues to zero the incredible power of GIT and Hashing in general (where Holochain is a technology built upon a deep understanding of hashing)
    • the decision makers are explicitly aware of all of this
  2. Criticism of the process

    • Creating a federated protocol, with matching example client (in wordpress, django, whatever) would have required vastly less effort
    • The decisions makers were aware of this
    • Creating the arbitrary embedded VM platform is an enormous amount of work, that had no purpose other than to support the value proposition of Holo. (vendor-lockin)
    • the decision makers were explicitly aware of all of this
  3. Looking forward

    • whilst I have no problem with Holochain acquiring money from the mainstream with this brand of misdirection, I do believe that this kind of community should avoid putting time into learning the arbitrary platform they have created.
    • The core idea of an "agent-centric" proof of truth, is, brilliant, and however that is implemented, be it through the project I have committed to complete by September, by someone else, or by Holochain, matters not too much to me.
    • Im pretty sure I have consistently applauded Holochain for the invention of this idea. I hope that I have been able to help people to grok what it really means.
Bob Haugen

Bob Haugen January 9th, 2019 16:29

Thanks for the less emotional version. It is a lot more clear.

Christopher

Christopher January 9th, 2019 16:40

and point 0. from above (which is the opening description of the prezi, should anyone not have looked it over) is
0. The Holochain concept of a "Policing Neighbourhood DHT" is absolutely brilliant. It is a federatable protocol that is extraordinarily flexible in many ways. Possibly the most valuable flexibility of it is that it effortlessly models the growth of communities from small to large, something that the other blockchain technologies cannot do.

Going further, what this agent-centric model does is allow communities to try out ideas into wider ecosystem with very low cost and very low impact. The results of a mistake in a smart contract on Ethereum can be enormous, whereas Policing Neighbourhood DHT apps can be tested in their organically interested community, and then grow, die or maintain as the ecosystem desires.

Research into the implementation details is strongly indicated, and I am grateful to have contributed to least one fork of the Holochain organisation that has found good funding to do exactly that.

Christopher

Christopher January 9th, 2019 16:50

oh, and fake was a typo, was suppose to say false... sorry :)

Bob Haugen

Bob Haugen January 9th, 2019 16:58

Here's a comment link to the first draft of my attempt to compare Holochain, ActivityPub, and SSB, incorporating Christopher's criticisms as I understood them maybe an hour ago.
https://docs.google.com/document/d/14Naw_P2Lsqnf5EMRQYWugEB5KuxtLro61VWiPTtdg4o/edit?usp=sharing

I will also be sharing this with some people from Holochain, ActivityPub, and SSB, and may get comments from them.

Bob Haugen

Bob Haugen January 9th, 2019 17:07

@christopher7 I am very interested if you can implement your ideas in e.g. Wordpress. Or I'd personally like Python better...

Bob Haugen

Bob Haugen January 9th, 2019 17:46

I am grateful to have contributed to least one fork of the Holochain organisation that has found good funding to do exactly that.

I remain interested in such things and will add them to our list of candidates.

Christopher

Christopher January 9th, 2019 19:30

So we've managed to boil down my criticism of the Holochain implementation to:

"If your box was hacked, what difference would the DNA / WASM architecture make" - the answer being of course, none at all.

If the WASM Architecture is designed to output Holochain Apps that will run efficiently on a raspberry pi, why not just use an existing RAD tool?

These two things kind of compete with each other, because the reality, in my rather detailed opinion, is that the design was to create a vendor lock product.

Adam Waterhouse

Adam Waterhouse January 9th, 2019 19:43

Whether Chris is right or wrong I totally disagree with the idea that he shouldn't express himself freely or frankly or that his choice of words is a distraction and it seems to me that it is you who are rather missing the point if you think that to be the case. The criticism that he is making of Holochain is an extremely serious one - that they are introducing unnecessary levels of complexity to an important task that can be accomplished more simply and efficiently by other means. Given what is at stake here - the creation of new economic models that can guide us away from the path of collective self-destruction that we are on and towards a future of balance and regeneration - I fail to see what there is to not be upset about IF what Chris is saying is accurate. Surely you get that waiting 15 years to birth a new economic paradigm that could be created in 18 months (say) is a bit irresponsible given that climate scientists have told us that we will have passed the point of no return with respect to global warming if we don't turn things around within the next 12 years?

Adam Waterhouse

Adam Waterhouse January 9th, 2019 19:49

I have met the Holochain team in "real life" and I think that they are a really cool bunch of people with really great ideas. But Chris's criticism should simply be assessed on their own merit, and I am not technically savvy enough to make that assessment. Do you have any rebuttal to make to his claim that what they are trying to do could be achieved more quickly and efficiently using Wordpress or Python? Also, can any of you point me in the direction of resources that will give me a better idea of what "agent-centric" means in this context?

Adam Waterhouse

Adam Waterhouse January 9th, 2019 19:56

I would like to know:

1) Whether anyone has any come-back to Chris's rather serious criticism that what Holochain are trying to do could be achieved more easily and efficiently using Python or Wordpress?

2) If so is anyone trying to do that? and

3) Can anyone tell me if "agent-centric computing" has a history that pre-dates Holochain and/or where I should refer to in order to get a high-level understanding of the concept?

Bob Haugen

Bob Haugen January 9th, 2019 20:09

1) I am not trying to do a come-back, but to understand if his criticisms are accurate, and also to compare those three candidate protocols on those and other criteria.
2) Christopher says he is trying to create a protocol and software that will embody his ideas. More in comments in that comparison doc. I hope he can do it.
3) I wrote about the general ideas in this and other documents starting in 2016, but the name for it came from Holochain.
https://docs.google.com/document/d/1bCunbrSmqUbfK2JLw-ND1iOeEPHU_HX_eo4juAepLyo/edit?usp=sharing

Whether they coined the phrase, I don't know. But I and several other people have happily borrowed and re-used it. I usually give them credit, as in this more recent doc: https://github.com/valueflows/vf-apps-agents/wiki/Agent-centric-computing

Adam Waterhouse

Adam Waterhouse January 9th, 2019 20:49

Thanks very much Bob - much appreciated - I'll take a look at all this tomorrow.

Oli SB

Oli SB January 9th, 2019 22:17

Hi Adam - I agree, criticism is useful, but we need to understand the context. Why is Christopher saying these things? Is he a disgruntled ex-employee? Does he have reason to try and damage the Holo reputation? I hope not - but the facts are not clear...
I don't want to ignite flames but, in relation to Christopher's assertion that he was fired, folks at Holo told me "it's a bit hard to "fire" someone who never signed their contract in the first place." - and - "...He was not part of the core team from a month of the start of the project, for example. Not close." They also explained that the Prezzi in inaccurate and based on the Go prototype version rather than the current Rust release.
The idea that you could build something akin to what Holo proposes in Wordpress is incredible. But, like Bob, I'll be very interested to see it if it appears in September!

Adam Waterhouse

Adam Waterhouse January 9th, 2019 23:34

Context is important but can sometimes be very misleading. The validity of Chris's criticisms is analytically distinct from the validity of his grievances. Suppose Chris's grievances are justified and can be validated. Does that validate his criticisms? Suppose Chris's grievances are unjustified and can be shown to be spurious. Does that invalidate his criticisms? The answer to both questions is of course "no." The most that can reasonably be said is that if Chris's grievances are spurious his criticisms might [italicized] also be spurious, and best explained in terms of his subjective sense of grievance as opposed to the specific matters to which he is expressing concern. I think that it is entirely legitimate to at least consider that to be a possibility, but not to assume that it is a foregone conclusion that that is indeed the case before having assessed the validity of his criticisms on their own merit. Reflecting upon your comments I do feel, however, that Bob may have had a point when he referred to Chris's language as "distracting" although I don't think that it is his language that is distracting, per se, but rather his expressed grievances towards Holochain's "decisions makers" and the suspicion that this can create about his reliability as a witness and commentator about Holochain architecture, as expressed in your comments. However, the irony is that by conflating and confusing the validity of his criticisms of Holochain architecture with the legitimacy of his grievances towards Holochain the organization you are incurring the exact same logical error that you are (implicitly) accusing him of. Please understand that this is not intended as a pointed criticism of you. I am simply very much invested in trying to ensure that people in this space can find ways to have good faith discussion and debate without falling into the destructive dynamic of accusation and counter accusation.

Bob Haugen

Bob Haugen January 9th, 2019 23:58

Based on what I know so far, I would say that Christopher's ideas are worth considering, beyond whatever grievance he may have against the Holochain organization.

I am trying to treat it all in that light, which is partly why I am trying to put the grievance issues off to the side.

Adam Waterhouse

Adam Waterhouse January 10th, 2019 00:51

Yes, thanks Bob - I appreciate that spirit!

Oli SB

Oli SB January 10th, 2019 01:59

on 3 - this discussion about building a "protocol-coop" alternative to Uber on Holo helped me get my head around the agent-centric concept... https://open.coop/2018/07/09/holochain-commons-engine-cooperation-scale/ ... UI design is going to become a lot more challenging / interesting for agent-centric apps...

Oli SB

Oli SB January 10th, 2019 02:05

But your comments are made on out of date or incorrect assumptions. Holo is not aiming for "vendor lock in" - it will be open source. You and I will be able to download the code and run our own private p2p networks without having anything to do with Holo HQ - so how could we be "locked in"?

Christopher

Christopher January 10th, 2019 02:44

what of course is fascinating is the cognitive dissonance of Oli talking about a contract, firing, and grievances as if his sentence makes sense, which of course it does not. "pretty hard to fire someone who hasn't signed a contract". is it? what does that mean? really look at it. in detail. :) lol..

btw, who mentioned anything about being fired? I certainly didn't?...

anyway. what Adam said (thank you Adam).

just as a point of fact, I said you could build a WordPress plugin that allowed one to create holochain app using WordPress ui, post types and validation code. which would work alongside some implementation of a PNDHT node implementation. I fink there is a prett clear parallel between the schema / dna stuff in the holochain code base. point being the analysis of the need to have a complex internal "dna".structure that prohibits the proticol being federalised in the first instance.

as to "how can it be vendor lock in" there is loads of detailed discussion about that, I fink it's clear the question isn't rhetorical, at least to me.

Christopher

Christopher January 10th, 2019 03:01

oh, and "holo is like airbnb for web hosting".
you mean "like web hosting, but only for holochain apps"

we are trying to create interoperable components that work together.

um. you mean like the thousands of node.js libraries, or wordpress plugins that do almost anything you can conceive of?

PNDHT. absolutely brilliant idea. nodes can be run in any kind of box. using other people's machines to run your own decentralised app, that you pay for. isn't that called "the cloud". yes, but it's the cloud made up of everyone's spare computing power... what if they turn their machine off? well so my data is available on 20 different nodes, and Holo will spin up another instance of my app in real time on another machine. really. that sounds amazing..good luck. I'm quite happy to run mature things on the cloud, or on my own device. but I wish you luck.

the truth is that the PNDHT can be add as a protocol to the existing enormous ecosystem called "the world wide web", creating decentralised proof of truth..this is absolutely awesome, but it's not obviously monetizable into the tens of millions to the creators. it seems to me that recognition, that simple recognition, and supporting the grass roots just isn't enough, which is fine . the www is built from decades of work on protocols such as html, cors, dns, and hundreds of millions (at least) of person hours on nginx, node.js, WordPress,, digital ocean, aws etc. "creating a new internet [world wide web]" is (sorry Bob) utterly purile.

and just to be clear the renewable energy thing was my chat. hahahahahahaha. funny how stuff I make up off the top of my bread becomes part of someone's narrative.

Matthew is a sweetie. and an excellent speaker. best of luck to Holochain and Holo.

Adam Waterhouse

Adam Waterhouse January 10th, 2019 05:15

Thanks very much Oli - I'll take a look at that shortly.

Adam Waterhouse

Adam Waterhouse January 10th, 2019 05:55

I'd like to get clarification as to 1) which parts of Holochain's value proposition you believe in wholeheartedly, 2) which you believe are untenable, and 3) which you believe are tenable but wrapped up in unnecessary complexity and "vendor lock-in". My understanding so far is this:

1) You believe wholeheartedly in the concept of agent-centric computing and the proposed way of achieving it through the use of peer-node distributed hash tables.

2) You don't believe in Holo or the idea of distributed hosting which you believe to be untenable on account of the amount of time it will take, in your opinion, to get people running Holochain on their computers and/or making available their spare computing capacity/running holo boxes at the scale necessary for websites to start making a mass migration from big central servers to the Holochain.

3) You believe in peer-node distributed hash tables as a way of implementing agent-centric computing (as already stated) but consider the way that they are seeking to do this to be unnecessarily complicated and entirely unjustifiable on rational grounds given that (according to your claim) it is possible to achieve this using existing and well-developed web tools such as Wordpress, Python and others.

Could you please make any necessary corrections and additions to this breakdown of your claims so that I/we can get really clear about what you are saying - thanks.

Christopher

Christopher January 10th, 2019 11:00

Dear Adam,

The prezi really makes this clear. It literally draws a diagram showing what I believe the most obvious, simple and flexible structure for a Policing Neighbourhood DHT. I will answer your questions directly, but briefly.

  1. What we are talking about is agent-centric proof of truth, within a blockchain style context. Agent-Centric computing is not the same thing: agent centric computing - https://people.dsv.su.se/~fk/pris/articles/Jennings_1999.pdf .

The idea of a Policing Neighbourhood DHT is a very good one. Mathematically, it seems that a PNDHT could to deliver very high confidence in proving the voracity of agents in a purely distributed manner. I have encouraged the construction of a modelling tool for such types of networks, and hope to see that available soon.

  1. I made it very clear sitting in the Holochain kitchen, that I think the Holo value proposition is a poor one. The requirement to create a completely new kind of software, on top of an enormous monolithic codebase that is two years old, compared to the 2.5 decades of global work on the world wide web and internet tools is nothing more than marketing spiel. The PNDHT protocol does not require the "building of a new internet" to function, or to deliver the kinds of promise that people are excited by. What this means is that, if "Holo" is a distributed tool for allowing people to create decentralised hosting space (which is an enormous technical challenge, due to the relatively unpredictable nature of "home hosting" - if my nine yearold unplugs my holo box, what will the result be?), as well as being built on top of a brand new technology, which makes it even more complex. Now if the point of Holo was to create hosting space for any and every kind of software and website, it would still be an enormous challenge, however the point of Holo is to create a hosting environment for a brand new platform which deliberately eschews almost every existing web technology and library in existence. I am somewhat afraid that grass roots orgs will actually put in the effort necessary to connect with such a network, only to discover in 2 years time that they could have just used the very mature tools that they were already surrounded with, witih PNDHT capabilities added to them.

  2. The project, as I see it, is to work in theory on the Policing Neighbourhood DHT concept, create a set of draft protocols, build a modelling tool for such a network (which as I said, I have convinced someone to do already) and then create an implementation of PNDHT which supports interaction in a federated fashion. Exactly like building an email server. The implementation would be a piece of software that ran on the peer device, maintained the DHT, and pushed hooks for validation out to whatever implementation is being used to implement the App specific code. The app specific code could very well be implemented on top of a tool such as wordpress, which is an extraordinarily mature tool for creating Post Types, Validation Rules and User Interfaces.

I spent many hours documenting the security design of Holochain, and speaking "at" Eric and Arthur about these concepts, and they essentially didnt respond... unless you take the kinds of things OIi has been saying about me as "a response".

Kinds regards

Christopher

Bob Haugen

Bob Haugen January 10th, 2019 12:04

We've done some work on what we think is the appropriate UI/UX for agent-centric economic networks.

Short version: it is a combination of social and economic networking, with your economic interactions appearing in feed streams like your social interactions, often about the same topics. Combined with graphical overviews showing the network context the interactions are happening in.

@ivan116 is working on it, and early versions are in use in Fair Coop and soon with a Holochain demo.

Bob Haugen

Bob Haugen January 10th, 2019 12:24

I should probably clarify my own position here:
* I think Christopher has an interesting idea and direction and hope he pursues it and that it works.
* I am also still working on a Holochain project, and given the overall goals and "business plan" of the founders, think that what they did makes sense for them and could also work, and maybe get up and running faster than Christopher can get his project up and running. At that stage, it would be very interesting to see if they can interoperate.
* I do think the Holochain founders have some we-are-the-center-of-the-universe pretensions but that is normal for people whose life work is to do something like what they are doing. This is a mission for them, and they think the business aspects are necessary to get it to work. Not the way I would have done it, but I'm not them, and don't know if their way or my way will work.
* Whether their plans will result in anything you could call vendor lockin or not remains to be seen. They promise other software that compiles to Web Assembly will be compatible, and theirs is open source. So it's constrained, but not locked, if those promises hold up.
* I am also working on projects using ActivityPub and SSB, and have friends who are working on Solid. I think something more general is happening with P2P networking that all of these candidates are examples of. They will converge and interoperate or those that don't will die.
* @lynnfoster says I should explain that we do have standards for organizations and projects we will work with, and Holochain has more get-rich attention around it than we would prefer, but there are also people around and involved that we think have compatible values and goals. We are not comfortable with all the venture capital that has gone into Solid, either, but are happy to help friends who want to work in that ecosystem.

Oli SB

Oli SB January 10th, 2019 12:32

thanks Bob, I'm going to start a new thread on this as I think it is really interesting

Christopher

Christopher January 10th, 2019 12:33

first isn't better

especially if the "constrained" revolves removes every mature ecosystem with complimentary functionality, forcing or delicate ecosystem to invest enormous effort in various wheels

xx good talking with you.

might have some stuff to post next week on implementation stuff, not sure.

Bob Haugen

Bob Haugen January 10th, 2019 12:44

Re agent-centric: don't forget this https://www.loomio.org/d/3wDCtkoG/structuring-the-oae-around-agents from @lynnfoster and it mentions something even earlier from @olisb

Bob Haugen

Bob Haugen January 10th, 2019 14:46

@christopher7 you might want to think about how your ideas might it fit into ActivityPub. Already got at least one WP plugin: https://wordpress.org/plugins/activitypub/
And the economicPub functions might get there in your timeframe.

Adam Waterhouse

Adam Waterhouse January 10th, 2019 18:21

@christopher7 @bobhaugen Thank you both so much for taking the time to try to explain your points of view. I will take my time to try to absorb this information. I like the Holochain bunch as people but I take very seriously Chris's point that they are creating unnecessary levels of complexity and, in so doing, denying their community the opportunity to work with mature and well established tools. Novelty for the sake of novelty is not what is needed right now. I hope that it is possible to implement the idea of Neighborhood Policed Distributed Hash Tables using existing web technologies in the way that Chris describes and that developers have the opportunity to take advantage of the benefits of agent-centric computing AND the benefit of mature software tools - Wordpress, Python, etc. What's not to like about that prospect? And anyone who wants to can still choose to work with Holochain, Solid, IPFS or whatever they wish.

Christopher

Christopher January 10th, 2019 18:49

and @olisb @asimong

Paul d'Aoust

Paul d'Aoust January 15th, 2019 00:27

NOTE: My original response was really long-winded; I've edited and clarified it. Please let me know if I've pared it down too much and made things unclear.

Holochain proselyte here, dyed-in-the-wool, drank the Kool-Aid, etc. (Just kidding; I've been known to critique aspects of Holochain that I'm sceptical about. But full disclosure, I am on the Holo team as a developer mentor.)

I've made lots of long-winded comments on Bob's document, but I thought I'd summarise them here.

First, I'm intrigued by Christopher's observation that the 'policing DHT' is the really valuable thing here in terms of a Holochain 'protocol'. I think he's bang-on. For those of you who aren't familiar, here's how the Holochain story goes:

  • You and I are sovereign agents. We each carry our history with us as a 'source chain', an immutable journal of events.
  • I want to buy a coffee from you. I claim that I've agreed to abide by the rules of this particular currency, as expressed by the first item in my chain, the 'DNA hash' (the hash of the rules, typically expressed as executable code).
  • My DNA hash is nothing but an assertion or a promise -- you can't see whether I'm running the right rules; all you can see is a hash (again, this is something Christopher calls out -- the system is trustless). So you ask me for my whole chain and audit it. Once you're satisfied that I've abided by the rules (that is, that I have the money I'm trying to give you), you engage in a transaction with me.

There are three problems with this:

  • I might be lying about my history. The hashes check out, all the transactions abide by the rules, but it hides the fact that I deleted the record of me sending $5000 to someone else.
  • In order to be satisfied that my chain is in a correct state, you may need to audit the state of the people who've sent me money in the past (and the people who've sent them money, etc). But maybe those people are offline.
  • This auditing of my entire history, fanning out from this present moment, is terribly expensive even if everyone's online.

The DHT mitigates these problems by keeping a memory -- a memory of everyone's actions (fixes the problems with chain rewinding and offline agents), and a memory of which of those actions are invalid, which speeds up auditing immensely. Anyone who finds that their peer has broken a rule can publish a warrant against their actions, which spreads through the network. Eventually the network as a whole sees me as a bad actor and pushes me out -- like an immune system. Simple rules that create a fairly resilient complex system.

So that's the core of the Holochain protocol. Mutually sovereign peers, publicly stating their voluntary participation in various sets of shared rules, publishing journals of their actions based on those rules, and committing to spread, validate, and store those actions for each other. A validating/policing DHT.

This is the opt-in security that Christopher describes. It answers the question, "how do I trust your actions/claims when I don't know if I can trust you?"

The goal of the Metacurrency project is to enable the creation of rich, robust P2P economic and social networks. Their design stands on two pillars:

  1. Provide a communication protocol that allows agents to trust each other (the aforementioned DHT).
  2. Create a way for communities to author their shared agreements, which are then communicated over that protocol. This is why they're building the Holochain app dev stack.

You can use the protocol by itself if you like, and that's just fine. As Christopher says, it's a brilliant idea. But the Metacurrency folks always had in mind that this was merely a carrier for the real exciting stuff -- the actual human exchanges that make these imagined networks come alive. Instead of expressing your agreements as source code, you could draft up a document describing them and then let people create their own implementations. That's totally fine (in fact it would be a neat experiment to do just that, with the hash of the document becoming the DNA hash). As long as you use the same communication protocols that other nodes written in other languages are using, you'll be just fine. (As long as you've interpreted the agreement correctly; otherwise the network will eject you.)

Holochain's offering (yuk, I feel like I'm verging into evangelist territory; please forgive me) is a minimal viable framework to make the development of these shared agreements easy. I'd argue that existing frameworks (e.g., Django, WordPress, ASP.NET) are great but they're designed with assumptions about HTTP and mutable databases, so each implementer of the Holochain protocol would end up writing a lot of boilerplate to implement things like source chain management, P2P gossip*, the base rules about validation, warrants, etc. These are the things that Art and Eric decided ought to be included for free in a reference implementation, and along with a nice API for writing DNAs, they form the 'subconscious' rules that every DNA will probably want to have anyway. One of the core commitments of the dev team is to make it easy to build these apps.

(* Note: the P2P gossip / DHT library will be released separately, so you could theoretically incorporate it into your own framework.)

This makes up the core of the Holochain runtime. So yes, it is a heavy focus on the non-protocol aspects of Holochain, and perhaps time will show that it was too heavy a focus. But I don't want to get into fortune-telling -- we want the ecosystem to grow rapidly, and from this side of things, having a relatively complete framework seems to be the best way to make that happen.

Art thinks I'm downplaying the importance of having one single runtime engine (the 'VM' and the core lib). He says that it's crucial for you to be able to trust your own copy of the rules if you expect to be able to play by the rules of a network. (I don't disagree with that.) In his opinion the only sane way to make that happen is to have rules written down as source code, run deterministically and unambiguously by a particular VM, connecting to a particular implementation of a base API that does the bulk of the work for you. My thought is that it's not exactly imperative but, given how easy it is for a programmer to make mistakes, this consistency is pretty darn important and nice to have. Consider the consequences of being shut out of an economic network because you're running an implementation that misinterprets the rules.

(Note: Christopher's critique of the unfit-for-purpose DHT bolted on awkwardly to the original Go-based prototype is totally valid. The DHT they used was Kademlia-ish, borrowed wholesale from the IPFS project, and apparently it took the team a lot of work to shoehorn it to fit their needs. The DHT in the beta version will be specifically designed to suit Holochain's resilience model and will be very agent-centric.)

Paul d'Aoust

Paul d'Aoust January 15th, 2019 05:41

oh, I forgot to address a few specific critiques:

  • The Go-based prototype was just a prototype. A first iteration designed to probe the design for flaws and iterate into something better. The JS engine in particular was slow and clunky.

  • Because of practical realities (that is, there are only so many devs working on Holochain) the app dev stack is necessarily opinionated. For now we're only really supporting Rust as a DNA development language -- it seems to have good support for bringing in all sorts of external third-party libraries, and the compiler imposes a lot of nice guarantees in the way of type safety and memory safety. That may feel like vendor lock-in, but I'd argue that it's no worse than browser manufacturers demanding that you use JavaScript. (Actually we're looking for people to help build support for other languages, so if you know of any really bored, independently wealthy developers...)

Christopher

Christopher January 15th, 2019 07:25

so a couple of things.

  1. where's the documentation on the dht protocol, and the specification of how the dht will manage bad actors, etc? Is there actually a functioning sharded, policing dht implementation in any form?

  2. this paragraph pretty much sums up the situation in my eyes:

"He says that the only way to guarantee that is to have rules written down as source code, run deterministically and unambiguously by a particular VM, connecting to a particular implementation of a base API that does the bulk of the work for you. My thought is that it’s not exactly imperative but, given how easy it is for a programmer to make mistakes, this consistency is pretty darn important and nice to have"

I mean? what? what does this mean? it basically says "it's difficult for a programmer to ensure they have xyz version of node.js or wordpress installed, with xyz version of an npm package or plugin". except of course it's not. it's trivial to automate such a requirement.

this kind of word / logic abuse runs deeply through holochain's marketing driven spiel, and right through their formal documentation. I find that makes me feel uncomfortable and on my guard, and I'm yet to see a functioning tool.

Christopher

Christopher January 15th, 2019 07:28

where is the protocol definition? and sample implementation? it seems to me that there is none, and that, somewhat perversely, all that actually exists is an immature, monolithic RAD platform that tries to solve the same problems as the www.

Paul d'Aoust

Paul d'Aoust January 15th, 2019 18:59

Hey there. Not much time to respond (busy morning), but I'll do my best:

I mean? what? what does this mean? it basically says "it's difficult for a programmer to ensure they have xyz version of node.js or wordpress installed, with xyz version of an npm package or plugin". except of course it's not. it's trivial to automate such a requirement.

I think the gist is not that it's impossible for a dev to put together the right stack -- you're right; a well-written install script or Dockerfile can pull in all the right things. I think what he means is that, for a given set of rules, two people writing two separate implementations will have trouble getting them to jive perfectly enough that you don't see their respective users unintentionally forking into two separate realities. Nothing more. Nobody's bound to a specific implementation. Does a fully built reference implementation from the Holochain team lock you into a certain stack? Sure. Will it run the risk of being a monoculture because of first-mover advantage? Possibly. These are choices that everyone has to make when they choose a framework. I guess the advantage with web frameworks is that there are now a lot more of them than there used to be (if you don't like ASP.NET you can switch to Django, and they both speak web) whereas the Holochain ecosystem is considerably less mature.

Anyhow, I'm just trying to convey someone else's opinion as accurately as possible. Not trying to defend it; just presenting it for other people to make their own opinions. I've got opinions of my own; I personally think it's hard but not impossible to create two separate implementations that nonetheless are perfectly interoperable.

where is the protocol definition? and sample implementation? it seems to me that there is none

this is very true -- that part is still being designed based on feedback from the first ill-suited implementation borrowed from IPFS. I think the plan is to build the implementation and specification at the same time. I've seen the initial design doc though, and it was quite interesting.

Bob Haugen

Bob Haugen January 15th, 2019 19:29

@pauldaoust1

I've seen the initial design doc though, and it was quite interesting.

One of my own criticisms (or comparisons) of Holochain vs SSB is that the SSB community works out in the open, all the time, discussing everything, as they live in the software they are building. As they say, that practice expands their consciousness. Do you think this is a place where Holochain's business plan and organization might be affecting their design and development practices? Vs SSB's lack of business plan?

Paul d'Aoust

Paul d'Aoust January 15th, 2019 21:24

@bobhaugen yeah, I love the stories I've heard about SSB development, especially re: cobudgeting and using SSB to talk about SSB. Oh, and Git-over-SSB. Re: whether our business plan and focus is affecting our dev practices, that's certainly possible. My story about the history of the Metacurrency project is that they worked for about a decade trying to bring something to fruition, but tight (probably nonexistent) budgets meant that it was always tough going. Perhaps they decided that the only way to bankroll continued development sustainably was to build a business, some sort of business that would give them a compelling excuse to build out their open-source project. (Like perhaps a business whose core product was dependent on the maturity of said open-source project -- in other words, Holo hosting.)

Right now I'd say we're def leaning towards cathedral-style open-source. And I'd say business needs are pushing our current dev culture to an extent: while issues are created and discussed in the open as GitHub issues on the public repo, and solutions eventually land and are reviewed as PRs on same repo, the roadmap lives elsewhere. A lot of daily discussion happens in private channels too. I think the reason for this is not that we want to shun people and stay in our ivory tower, but simply that our core dev team needs to stay focused and productive on the road to beta. (Ask me for more details if you're curious.)

That's not to say we don't want to be bazaar-style. We've been trying to attract core contributors, especially to help build out documentation and support for other programming languages. I think we could certainly push ourselves to grow re: creating a bazaar-friendly culture though, and it's something we're starting to work on.

(And also I think we're in that awkward early stage where not a lot of people outside the core team are even interested in contributing yet.)

Christopher

Christopher January 15th, 2019 21:30

you are repeatedly conflating the idea of being able to write An App onto a federated implementation of a PNDHT, and the absurdity of many different people writing the same app in different languages.

you know you are doing that

as I said initially, holochain have not even tried to develop a policing neighbourhood dht. the idea that somehow wasn't a priority is an astonishing lie to the community (either then or now). there isn't even a specification document lol.

Christopher

Christopher January 15th, 2019 21:40

and I have to say. the "initial dht" which is "being redesigned based on feedback"didn't have neighbourhoods implemented AT ALL, lol, there was only one neighbourhood, zero protocols for dealing with bad actors, etc etc etc. amazing how there is enormous media description, at the core of the hc message, but only work on a platform.

oh. that's what I said. lol really.

Paul d'Aoust

Paul d'Aoust January 15th, 2019 21:41

@olisb I think the 'vendor lock-in' critique is more aimed at the amount of attention spent on building a reference implementation with a specific set of technologies and a specific vocabuluary/API, and that hints strongly that Holo wants developers to be dependent on them so they can keep their hosting business alive (@christopher7 you can correct me if I'm wrong). The pattern of a DHT sharing and validating individuals' histories doesn't explicitly need the Holochain stack with its weird lingo (zome functions, validation callbacks); all it needs is people agreeing to use a particular gossip protocol with a particular set of message types and promises to hold the network in coherence, which acts as a carrier medium for application-specific vocabularies. Forcing a particular app dev framework into that good pattern creates the opportunity for us to command the market and make it hard for anyone to offer competing implementations.

And he's right about the pattern being able to stand on its own. I think we could do more to clarify the distinction the DHT from the app dev framework, and after reading Christopher's comments I think I'll start doing that. (TBH I was never quite clear where the protocol ended and other stuff began; @christopher7 your materials really cut through my muddy thinking in the past few days. This might sound disingenuous, but thank you!)

But the pattern for agent-centric data integrity in untrusted networks is only one half of the picture. I think what really excites Art and Eric is the application-specific vocabularies that will be built on top of that, and to that end they designed what they think is a good base toolkit for building them. You might hate it and want to design your own, and I'd really love to see new implementations come into existence. I'm a bit chagrined that all we have right now re: the DHT pattern are vague ideas bandied about in talks + an early prototype, but given that we haven't seen a massive interest in people wanting to build alternative implementations (probably something to do with the fact that the reference implementation isn't even alpha yet), I think that drafting up a detailed spec at this time would be putting our energies in the wrong spot. (Which is why the white paper has also languished in draft mode.)

Christopher

Christopher January 15th, 2019 21:46

l. I was WORKING THERE. they weren't vague ideas, it's mathematical analysis that forms the foundation of the entire public message.

building a runtime platform from scratch is an awful idea. I was there.

lol.

it's been two years. best of luck to you, and your new friends. xx

Paul d'Aoust

Paul d'Aoust January 15th, 2019 21:51

Okay, yeah, "vague ideas" was probably the wrong choice of words, but I'm trying to be less wordy in response to feedback. I was referring to our public materials, esp Matt's talks which are vivid but intentionally light on details (wrong audience for a spec). Yes, the white paper, in spite of being unfinished, lays out the proofs that define how and why the DHT works. I shouldn't've ignored it. But you have also asked to see a detailed spec that makes it possible for third parties to build their own implementations, and I'm apologising that we don't have anything like that.

Paul d'Aoust

Paul d'Aoust January 15th, 2019 22:08

you are repeatedly conflating the idea of being able to write An App onto a federated implementation of a PNDHT, and the absurdity of many different people writing the same app in different languages.

I appreciate you calling me out on that, but I honestly am struggling to understand what you're referring to. Could you quote the specific spot where I'm muddying the two? (Also, re: "the absurdity of many different people writing the same app in different languages" I didn't know that we were in agreement on that point; I thought you were saying that two developers should be able to write two separate implementations of one app. Perhaps the fact that I didn't understand that is why you believe I'm conflating two different things?)