https://futureofcoding.org/ logo
Title
c

curious_reader

08/19/2022, 10:25 AM
Hello everyone! I hope you had a great summer so far. I found this to be interesting. For a long time it seemed the Dweb community and web3 to be at oods. But here we have Filecoin ( web3) founding spritely (dweb) . I'm looking forward to see more collaboration along these lines in the future: https://twitter.com/dustyweb/status/1559960708007305217
d

Duncan Cragg

08/19/2022, 9:49 PM
Umm, define "DWeb" and "Web3" without reference to orthogonal business models.
g

Garth Goldwater

08/20/2022, 12:18 AM
c

curious_reader

08/21/2022, 10:27 AM
Hi @Duncan Cragg ! I would say Dweb tries to build a better web by focusing on P2P and decentralization but largely through technology. Web3 goes a bit further it also wants to build a better web with P2P and decentralization but also wants to pull in the one of the social/cultural technology of money. While dwb tries to be "neutral" about money, web3 tries to define in a new way. Now that said there are going on humongous projections spaces onto web3. As with aevery other sufficently popular/large concept ( AI etc..) people project their hopes, dreams and fears into it. I wrote a bit more about it here: https://github.com/life-itself/web3/discussions/190 and here: https://andreass.gitlab.io/privacy_transparency_ex.html
There is so much context I think I share some more: one of occasions where one could see (still?) the gap between dweb and web3 was the DAT project <=> IPFS project relationship. DAT build some great things but if you ask them what the difference to IPFS was or if they would consider collaborating it would get ugly(I can provide some more details if there is interest) So basically DAT admitted that they had same or very much related goals as IPFS but because they disliked crypto they went for it alone …
d

Duncan Cragg

08/21/2022, 3:52 PM
IPFS isn't a cryptocurrency project AFAIK 🤔
c

curious_reader

08/21/2022, 4:00 PM
It isn’t but for some (dat) people it’s too close (filecoin?) to crypto.
t

Tom Hutchinson

08/22/2022, 8:44 AM
Might have just been a typo but the “Filecoin Foundation for the Decentralized Web” (FFDWeb) are funding Spritely Institute not founding 🙂 It’s also worth mentioning that FFDWeb is separate to other Filecoin orgs and they fund non-cryptocurrency related stuff https://www.ffdweb.org/
I’m incredibly excited about Spritely and Goblins! This doc is an early draft but there’s some great stuff in here: https://spritely.institute/static/papers/spritely-core.html
I find Wisp harder to read than Lisp though 😄 but I write Clojure every day so I’m biased, I’m curious what non-lisp programmers think
d

Duncan Cragg

08/22/2022, 9:02 AM
Can you summarise what is exciting for you about Goblins? I couldn't quickly get to what was different about it!
I'm definitely more DWeb than Web3, @curious_reader
k

Konrad Hinsen

08/22/2022, 4:00 PM
Interesting discussion. I had given up on understanding what the differences and commonalities between dweb and web3 are. It looked arbitrary. Framing it in terms of different attitudes to money looks useful, though i wonder if the adherents on both sides would agree.
d

Duncan Cragg

08/22/2022, 4:57 PM
Also, to confuse everyone, historically TBL was associated with the phrase Web3 via SOLID which is much more DWeb if anything!
g

Garth Goldwater

08/23/2022, 11:24 PM
@Duncan Cragg the link I shared above is pretty short and to the point:
This image shows Terminal Phase with the ability to undo mistakes and restore previous state visibly exposed. But here’s the wild thing: the gameplay code of Terminal Phase was fully written and released before any consideration was given to showing off time travel as a demo. The time travel interface was added on within just a couple of short hours after the game was already written and without modifying any core gameplay code. The only thing that needed to be added was some scaffolding to keep a certain amount of state and display it to the user.
This game prototype is entirely local, but where Goblins gets really exciting is applications running over a distributed network…
Please note that there are some interesting things happening here:
• The two participants are speaking over a peer to peer network (Tor Onion Services, in this case, though Goblins is designed to be flexible as to the particular network substrate chosen)
• No participant in the chat can fake messages coming from any other participant in the chat (on an object identity level; avoiding naming conflicts through a petname system came in later iterations of the system)
• Communication is end-to-end encrypted
• And, the entire chat system backend, for both rooms and for users, is a mere 154 lines of code!
But here is the even more amazing part: the core chat protocol does not mention the network even once. It does not need to… in fact, the entire chat program was written using Goblins’ asynchronous programming style locally, within the same process. When the chat code was connected to Goblins’ networking code, the chat system just works.
c

curious_reader

08/26/2022, 4:52 AM
@Tom Hutchinson could you give one or more examples why you are excited about goblins?
t

Tom Hutchinson

08/26/2022, 1:58 PM
@curious_reader @Duncan Cragg I’m still new to a lot of these ideas but I’m intrigued by the idea of building computing systems that are fundamentally more secure via Capabilities. This post is my favourite introduction. The general idea as I understand it is to escape the Access Control List (ACL) pattern, to stop asking “who are you?” along with every network request. Instead we could achieve the Principle of Least Authority (POLA) by explicitly passing around authority as data, allowing it to be manipulated/attenuated, and only granting pieces of code the precise authority they need to do their job. By building on this paradigm (and related stuff like CapTP) Goblins allows you to write code that manipulates local “objects” that actually live across the (hostile!) network. I want to build safe, secure, P2P systems using lisp / functional programming and Spritely’s seems like an approach that might work! Ultimately I’m hoping to bring Capabilities and/or Goblins to Clojure 😄 I’d prefer it if someone else did it first but I’m increasingly worried i might have to get the ball rolling..
g

Garth Goldwater

08/26/2022, 6:42 PM
@Tom Hutchinson since spritely has been implemented in two different scheme dialects I think that port might be easier than you think
t

Tom Hutchinson

08/26/2022, 10:41 PM
@Garth Goldwater I know what you mean but you may be overestimating my abilities 😄 I’m still finding the concepts difficult to wrap my head around. Trying to explain them here in a straightforward way is helping me a lot though
For one, I think I misrepresented an important detail in my description of Capabilities. Rather than just simply representing authorization in a flexible way (something like a macaroon) a Capability is a combination of your data and the authorization required to use it. “Don’t separate designation from authority”. So as you program using Goblins you’re just passing around references to objects which have the authority to use them in particular ways embedded in them. Now my problem is that I’ve spent a long time avoiding references all together! When I program I want to be passing around values not objects! I don’t know how to reconcile the Object Capability model (where the reference graph is also the access graph) and functional programming as I do it in Clojure. I believe that Goblins is a step in this direction, it claims to “hybridize actors and the lambda calculus” but I still see a lot of objects! I’ll keep reading..
g

Garth Goldwater

08/27/2022, 2:56 AM
To be honest it sounds like you’re at the dip in the dunning kruger curve where you know how much you don’t know—and i think that’s sneakily the best time to get into a project, because you’re totally prepared to run into problems
t

Tom Hutchinson

08/27/2022, 3:01 AM
I appreciate you saying that, thank you. I suppose it can’t hurt to try, I’ll start a git repo 😄