P2Panda
S01:E11

P2Panda

•

Episode description

Adz, (also known as Andreas) joins us for todays chat about P2Panda 🐼 ✨

In this conversation we move through the past and origins of P2Panda, through the building blocks and modules of the protocol and into defining terminology core to Peer-4-Peer protocols and P2Panda.

We also go through some of the applications which are being built and running over P2Panda and promised a list of those mentioned:

Curious to start building a P2Panda application? The next event is on the 3–4 October, 2026 as part of the Boiling The Ocean 13.

Download transcript (.srt)
0:00

Today we are joined by Andreas from P2Panda.

0:27

Pyrtupanda is a protocol or a network compatible with post-internet communication

0:32

infrastructures such as pocket radio, Bluetooth or sneakernet, what it's also

0:37

known as USB transfer. It's a bunch of different modules that can all be

0:43

accessed via the out of the box API, primarily written in Rust. Pyrtupanda was

0:50

initiated by Andreas and Sam and since then Glyph has also joined the team.

0:56

Andreas specifically is a programmer and musician and the tunes from a guitar you

1:02

might hear scattered throughout the episode is clippings from his post episode tunes.

1:09

He is been quite active in the scene and has been involved in the shaping of terms such as

1:16

the walkaway stack and is also an active part of Modal and if you're curious about Modal,

1:22

you can listen to the episode with Tobias. Now with no further ado, let's dive in!

1:52

Hello and welcome to today's episode of SolarCast! I'm here with ADZ or Andreas.

2:11

Hi. Hello. Really nice to be here. So we've known each other for a long time now. So almost

2:18

ten years since this got about days and but I actually don't know how you got involved in all

2:28

of this and where it all started. Yeah, I think there is this talk we gave at CCC. I think it was

2:38

2019 and that's a very weird time capsule to go into when one wants to understand how we ended

2:46

up doing the thing we're doing but at this time we wanted to build a software to organize

2:54

festivals on top of scuttlebutt and it was meant to be called Pier Topanda and the background

3:02

of that is that I was involved in another collective. I mean we started I think 2013 I think

3:10

publishing a magazine called Plats 3000 which was meant to be like a very open platform for people

3:21

to publish whatever thoughts they had on music. So it was like a discussion thing for people

3:28

interested in nerdy music and the idea was that anyone can publish anything so it wouldn't be

3:34

curated and anyone can answer to anyone else's articles. So it was also a little bit like a forum

3:44

and maybe the magazine didn't go that well but I think the community around it which came out

3:49

of that was really beautiful. So we had a lot of great gatherings and release parties and a lot of

3:56

fun printing these magazines with weird covers and yeah and then we started to organize festivals

4:04

because we really like this mode of non-curated content and then why specifically non-curated content?

4:13

Yeah this is this comes from a very special niche but like I have a background in experimental

4:21

contemporary music which in Germany has this very strange thing of noya music

4:28

and which is highly academic so we have like dumb studs and all of these like big festivals

4:38

where noya music is performed and at this time I think we were very bored by the academic part

4:45

of that and the highly institutionalized aspect of it and we kind of wanted to break that a little

4:51

bit because there's been a couple of people who just couldn't identify with that. They liked

4:55

experimental music but they didn't like the framework around it and so we were like yeah against

5:01

curation against like people trying to organize things we wanted to organize ourselves to do our

5:08

own thing outside of the institutions this sort of thing. I think it never really happened as an

5:13

actual impact let's say on the actual music culture I think no one cared but we had a lot of fun

5:21

like doing it for ourselves and this is where it came from I think from this anti-academic context

5:31

yeah and anti-institution context and so yeah we started just this like scene and festivals

5:37

and used software to to allow us to organize in a way where there wouldn't be a centralized

5:44

coordinator required which has so many parallels to today's world of admins and moderators and

5:53

so forth so on and but I remember that you've told me before about this piece that you also were

6:00

part of making which was a self organizing orchestra where people could like interact and be

6:06

part of creating the music together but in a self organizing manner and yeah there's just

6:13

something very beautiful about that in complexity theory it's called stigma but hey we're not going

6:21

to dive into that right now but I think it's really cool and really beautiful how you've been

6:27

part of self organizing systems or designing self organizing systems first in music and then with

6:34

festivals and zines and now with peer-to-pop yeah exactly so we yeah we were like yeah at this time

6:42

trying to build it build the software I mean we build it a couple of times so there was the first

6:46

iteration in 2016 I think which was called 2015 maybe which was called for unwotung 3000

6:56

which was built on ruby on rails actually and then the second iteration within a rebuild in

7:02

Node.js and they both were like various centralized stacks and at this time for us it wasn't so important

7:09

that the technology is like decentralized we were more interested in the mode of organizing on top

7:14

of that but the more we did yeah sorry what made that what created a shift there why did you start

7:21

caring I think us yeah I think you know like we've been we've been musicians and and you know

7:28

festival organizers and I was studying musicology at this time I mean not really but I was playing

7:34

in a lot of bands and I was surrounded by people from the experimental music scene in Berlin

7:39

and we didn't know so much about hacker culture or computers or you know different software projects

7:47

like I was I was mainly like a self taught programmer for fun and for a little bit of money on the

7:53

site and and people around me were like no programmers at all mostly and we we just used technology

8:03

as a way of formulating these ideas we have of organizing like and as a as a as also like as a

8:11

propagation of like you can change the interfaces you can actually control or change how you

8:21

how you call it the circumstances you are you are inside of like the framework around you like

8:26

this was a little bit this sort of experimentation we had and and of course this is not you know this

8:32

was a very utopian sort of thinking and power dynamics happen all the time and things can't

8:41

be changed sometimes as well because you don't have the power to do it and I think for us this

8:45

was just the means of like discussing these things and highlighting them what we can do and

8:52

how we shift power dynamics by doing it in other directions and in other in in in other yeah like

9:00

dynamics and yeah we use the magazine as a as a platform to discuss these things and these dynamics

9:06

and and then we basically just use software development to express new ideas which came out of the

9:11

discussions so it was kind of like a loop like a feedback feedback loop making software discussing

9:17

like making software making a festival discussing the outcomes making a new software and so on.

9:24

iterative learning um yeah that sounds lovely um it's bringing to mind like so it sounds like

9:35

throughout these iterations you move from simply organizing well not simply because organizing

9:41

is a big thing in and of itself but from organizing festivals and organizing in a self organizing

9:49

to building self organizing technology how do you think that transition happened?

9:55

yeah I think there's been two things happening at the same time I think one was us maybe radicalizing

10:01

ourselves through this process um of thinking about these things and yeah um discussing these things

10:07

and um and I think we also had an urge to leave the music scene a little bit because we got

10:14

also maybe slightly bored of of it um and found out that there is a complete there's there are

10:21

other spaces where this is being discussed since many many years um um and um uh yeah of course

10:31

also the hacker scene um like whatever that means but like you know in computer culture

10:35

decentralization and self organization has always been a thing and um I didn't know that at this

10:41

point it was like a new thing and um that's like what we've been doing before already exist in

10:47

other spaces and it's much better understood and I think at the same time Sam um who is still

10:55

part of peer-to-panda like me um he um he was also part of the of these festivals and blood

11:02

3000 and he um he just went to a workshop of the that protocol uh in trust in Berlin uh the trust

11:12

space um and he just came back and was like oh my god I've seen something super cool you should

11:17

check it out it really fits like um our thinking yeah and uh and then we were like whoa what is the

11:24

that protocol and we were reading the websites inside out and um and then that led us to a

11:31

secure scuttlebot um so yeah this is basically where it all started this whole rabbit hole and

11:37

it was just us being fascinated wow this is like everything we talk about is already reflected

11:42

here as well um and you were talking about how it would be cool to like hear this back in 20 years

11:48

and here we are we're talking about that moment what is it 10 years ago and then look at y'all now

12:01

yeah it's crazy it's really a little bit strange yeah and I think the as I said this this talk

12:06

at CCC I think you've been there as well I remember talking to you afterwards um uh the talk is

12:13

really like a weird time capsule as well like if you look at it you're like okay oh my god what is

12:17

purter panel it doesn't make any sense before I see today yeah but it does make a bit of sense

12:24

because if we also look at like right now you have tool kitty that has been built on purter panda

12:29

and that is a direct continuation and a heritage from from I can't pronounce the German I'm sorry

12:36

so I'm not gonna even try to butcher it yeah exactly yeah this is finally like um full circle coming

12:46

back and building the software we wanted to build in this time you know so I was so keen on trying

12:52

out tool kitty like a year ago and it kept being on the precipice of done uh where are you now

13:01

with the tool kitty yeah it's a little bit of a sad story because um tool kitty was funded by

13:09

the British government and this kicked it off the whole project which was amazing yeah and we were

13:15

very ambitious pushing for something at least like proof of concept E problem is that um yeah

13:23

half the team is like peer to panda core developers so we had a lot of other things to do after the

13:28

grant was over and the other half are people who are coming from the yeah like the art the

13:35

cultural scene and they are very dependent on money of course um so for them uh yeah and for us

13:42

I mean we also dependent on money everyone is but uh it's nothing we can just like continue

13:47

without any funding so the project was just stalled at this point and we couldn't get back to it

13:53

um so yeah I think we left it in a we left it in a good place but um I think it's definitely not

14:00

there where you can like really use it um we would need to yeah we basically need to continue with

14:07

more funding and we have a grant we're still waiting for the answer so fingers crossed um so

14:14

it's not over we're like we are definitely applying as much as we can for tool kitty also it's

14:20

our favorite project um yeah obviously because it's really like the the heart of peer to panda let's say

14:28

um so and we have a really beautiful team around it like everyone involved in it is just super

14:33

nice and uh yeah it's just super nice to work together on it also slightly different than all our

14:38

other peer to panda projects because it's the least technical let's say um so it's a really nice

14:45

community yeah so um let's let's let's hope it's not over for sure but it's just yeah it's always like

14:52

and the priorities are shifted through where the grants come from and for what yeah of course

15:04

so one thing I was thinking about was now that we're talking about what you've been developing

15:10

and uh tool kitty a direction that I've seen y'all going in which has been really cool to see

15:17

is kind of a little bit more hands off on the that development of the applications that are

15:22

building on peer to panda and focusing more on the core protocol development so the point of

15:29

the question is first off can we do a little bit of a shout out because I saw that not all applications

15:34

that are being built on peer to panda have been mentioned on the website so for those who are

15:39

curious on what's being built on peer to panda what are like the active ones bubbling we got

15:44

reflection we have dashchat um which is uh yeah like an encrypted messenger which also runs

15:54

yeah without the internet and um and then we have jade's project um lore rest um which is like

16:03

something like a it's more like a federated setup of community notes where people host their

16:11

websites or build like applications for the community so this is more like a neighborhood's network

16:17

um and it's it's it's also a little bit more low level like infrastructure for communities to

16:23

build applications on top for example by sharing uh carpooling um message or it's these sorts of

16:31

things um yeah it's really cool also like aiming at running on top of Laura as well um so I think

16:40

this also plays with this idea of like every community has their own like backbone infrastructure

16:46

of antennas and and maybe Wi-Fi um and these these communities can then yeah sink with each other

16:54

across villages or neighborhoods um uh so this is the lore rest project um and um yeah and then

17:05

in in the gnome community we have a couple of people who are active as well uh like we have um

17:11

era which is a new calendar um which is basically a new calendar for the for the gnome

17:20

and um yeah there's some experimental peer-to-panda sink built in now um this is similar to

17:28

reflection so you have like text document sink but then this is now the calendar sink um also

17:35

recently met someone who is doing the same for evolution which is like the lower level stack to

17:43

um yeah represent calendar data I think if I and it's not my world but I think something like that

17:51

and with this it allows also the current gnome calendar um we think it's just gnome calendar

17:57

it's just called so that would already be two calendars um with peer-to-panda sink so this is ongoing

18:04

um uh yeah and wow now I need to think um I think there's more um

18:12

yeah yeah and if you think of more it's all good we can get back to them I'll add as many links as

18:21

you provide me in the description anyways you mentioned this project that was building on the

18:28

sink module you didn't call it the sink module but anyways this kind of ties back into a shift

18:36

that's happened in the scene where previously we were building these monolithic protocols that were

18:43

one size fit all and if it doesn't then fuck it we can't do anything about it so I'm curious here

18:53

on your website you have listed a lot of the different modules you have and I'm just gonna

19:00

go through them uh and read them out and so you got here peer-to-panda net peer-to-panda

19:10

discovery sink blobs core store stream spaces encryption authentication and I'm wondering

19:18

here like how modular is peer-to-panda and how easy is it to engage with this and also um

19:30

what would you say is the essence of peer-to-panda in this yeah yeah I think it's um also maybe back

19:39

to like where why we started peer-to-panda like the protocol actually I think we were like

19:44

trying to build an application the catalog you know the festival app and it was too hard to do on

19:50

scuttlebot at this time and then we basically gave ourselves the question okay how what would be

19:58

necessary to build an application um and I think that always informs like what we do with peer-to-panda

20:04

we we ask ourselves what is required to actually build an application uh like what are the

20:10

what are the facilities and application developer would would reach for um if if they would do that

20:16

and um we're also constantly in contact with application developers who give us feedback on the

20:22

things they need and this is how we prioritize our our features let's say um but roughly I would say

20:29

is like there's a group of people and they want to exchange data so whatever data I publish

20:39

will also be received by everyone else in that group so this is the this is the main guarantee

20:45

and uh now it gets a little bit more complicated because these people in this in this group

20:51

uh in this in this group are maybe not online at the same time um and maybe even worse they might

20:57

not use the internet they might use something else um to talk to each other maybe bluetooth or

21:04

yeah a usb stick or amateur amateur radio like ham radio um and or the internet is very flaky or

21:14

you know or like very slow and so on so but peer-to-panda I mean it's aiming at solving that whatever

21:23

you send into this group it will eventually arrive to all of these people despite all of these

21:29

yeah connectivity issues or different sorts of ways to connect to each other so this is the

21:33

first thing and I would say that's like sync um you know like we make sure that data syncs

21:39

to all of these people independent of like how how how the connectivity is done and how how

21:46

how much online you are um and then the next problem we are trying to solve is to do this

21:52

confidentially so it's actually like secure to send that data and no one else can read it um

21:59

so no one no one outside of that group will be able to read this data I think this is another big

22:04

priority for us so so that whatever you're sending now into this group is like confidential for

22:09

only people who are in the group and this is easy to do on the internet but very hard to do in

22:15

mesh networks for example or um networks where you have intermediaries like maybe you and me are

22:22

in a group but uh you are very far away and I need like five other people in between you and me

22:28

to get that data across but still I want only you to read this data and not these people in between us

22:34

and um so we are we can use other intermediaries to deliver that data but they should never be able

22:41

to read this communication or tap into it or change it so this is the whole end-to-end encryption

22:47

part of peer-to-panda is this also where I wrote it or is it more separate more like in offline

22:53

scenarios yeah this is it's both I wrote gives us um transport encryption so you know they're

23:01

using TLS on top of quick which allows us to to have a you know direct communication going on

23:08

like a direct connection and this this one is confidential between you and me um but this implies

23:15

that there is a connection right um and whenever we can't have that sort of like setting which is

23:21

again as I said like in in like um more mesh network scenarios for example or like broadcast um

23:28

broadcasts uh transports like like packet radio or Laura um or Bluetooth advertisements then we

23:36

just can't assume that there is a connection we just scream into the void and hope that someone

23:40

is listening um but at the same time whatever we scream or say should be confidential right you don't

23:47

want anybody to listen to that either um so this is where we have to leave the iro world or the

23:54

like the TLS world and and bring our own solution so what we have is like a key agreement scheme

24:00

for groups which uh works yeah without any assumption of a connection or being online and so on

24:08

is this peer to panda spaces exactly uh so i mean the key agreement itself is peer to panda encryption

24:16

um but now you need to know to whom do i encrypt data and who is in the group this is what we call

24:23

like uh uh yeah like a group management you know i need to add someone into the group i need to

24:27

remove them and this is solved with peer to panda off and that's a CRDT we've built which allows

24:33

you to add people into a group yeah remove them change their like privileges maybe like make them

24:39

from admin to like someone who has only right access or only read access and then uh it gets even

24:44

more complicated because you cannot only add people but also groups again so a group can be made

24:52

out of groups so uh and that allows us to uh also like have things like multi-device settings where

24:59

maybe you as sanner you are a group and you have multiple devices in your group you know you have a

25:06

smartphone you have your laptop you have your desktop computer these are three members in your group

25:11

you know and on my end i am uh Andrea so a dc and i have the same i have a smartphone in the laptop

25:17

and so therefore i have two members in my group but now i'm adding you uh like your group to my

25:23

document you know and this is like no indirectly or yeah like transitively all of your three devices

25:29

will now also have access to that document um and i'm still encrypting to all your devices like to your

25:35

smartphone individually to your laptop and to your desktop so it's like encrypted individually for

25:39

these devices but yeah we now we have that awareness that you know this should be done like that

25:44

this is this like nested nested group management thing and we built a CRDT for that it's yeah

25:50

mostly work of sam as well as a pretty pretty crazy work um to make that happen and um the combination

25:57

of this CRDT and the key agreement scheme is then what we call spaces so a space is a place where we

26:06

can have um key agreement for confidential yeah message exchange encrypted confidential message

26:13

exchange towards a group which was managed by that CRDT this is so cool to hear because like

26:21

back in the day back in the day but back in the day this was one of the huge challenges for us to

26:29

solve just making a group and now you all got groups within groups nested groups yeah and it's

26:39

i think like and then maybe like the the last pillar of of peer-to-panel i already kind of

26:44

mentioned but if i say like yeah you know deliver messages to a group um make that confidential then

26:51

i would say the third thing is access control so who is allowed to do what um and this is something

26:59

application developers always want um you know they they want a way to describe you are allowed

27:06

to read this document but you're not allowed to change it um you know things like that um and

27:12

and this is indirectly handled with this CRDT as well um i just mentioned so so but i think

27:18

with this is we already kind of describe peer-to-panel and um and so we we don't dictate what sort

27:26

of data you're sending we only try to make sure it is done in a secure way and in a robust way

27:32

on top of any transport um and that's what you mentioned because uh i watched your talk

27:39

at least as much as i could it kept cutting out uh but your talk it faws them and you were talking

27:45

about base convergent data types and you were mentioning how you could sync DAGs over for example

27:52

append only logs um so what you're talking about right now it sounds like is that it's agnostic

28:00

what the data type is and it's more about what how you send it is that what you mean when you say

28:07

base convergent data types right yeah no it's exactly that yeah it's so so yeah the base

28:15

convergent data type that's i mean that's that's an attempt to find the definition for this

28:21

for this thing um uh where you know a bunch of people were involved in trying to find out how to

28:28

name these things but i think the underlying the underlying question here is um and i think this

28:35

has been mentioned a couple of times also in the past it's like this sort of like universal sync idea

28:41

like is there something like a sync approach where we can deliver data of any kind um and i think

28:54

right now in our thinking we would say that's not possible that doesn't really exist like i think

29:00

there's still some sync protocols which make more sense for certain kind of data i would say

29:06

specifically files should be synced in other ways um you know the willow folks have another

29:12

approach which i think also makes sense for for uh yeah for files or for like um um yeah

29:20

certain CRDTs but like i think still there is this sort of um challenge to try to express um

29:28

like a like a basic element which is um uh allowing you to sync

29:36

yeah as much different types of applications as possible and this is a little bit the role of the

29:41

base convergent data type and also like what we try to solve with peer to panel because we try to be

29:46

like as flexible as possible um because we don't have we're building for certain kinds of

29:51

applications with certain guarantees but still there's a wide range in that and um um

29:58

and then another thing which is interesting about this you know this data type this core data type

30:03

is that um um there is different ways to interpret it as well um so if you look at the classic

30:11

internet stack then you know while we are talking right now and this this this audio stream

30:17

across our computers there is like there is one core layer underneath all of this and this is the

30:24

IP layer um and on the IP layer there's something which is called the datagram um and you know

30:31

that's the that's the core unit of what is being sent over the internet and then we express protocols

30:37

on top of that on top of ip we have udp and on top of udp we have quick on on top of quick we

30:43

have tls and then on top of tls we have signal um and then on top of signal we probably have also

30:49

custom audio protocol they've built um so you know this is the this is this whole like stacking of like

30:56

protocols and now you would say oh no Andreas you sound like a OSI layer sort of person you know

31:03

which never really worked um but this is not what i mean i just want to say there is like

31:07

the separation of concerns where you know different parts of the system handling are different

31:12

different things and uh the base conversion data type is the thing which handles

31:20

just making sure that the data arrived um on top of different transport um similar like the

31:26

ip packet was just made to make sure that data was routed to the right computer um so i would

31:33

say like the the the the the base conversion data type is a is a data type which can be sent over

31:39

any transport it uh is authenticated um so it has like you know we have some sort of like idea

31:46

who send it it can't be tempered with when it is going through intermediaries so it's like

31:50

has integrity and um it has this quality of converging this is what convergent part of it is

31:57

which basically means when peers observe the same data flowing in over time then they will

32:03

converge to the same state and that's the quality we always want to have in peer-to-peer systems

32:08

of this kind um you know just to clarify here and this is going to sound like a stupid question

32:15

but when you say base convergent data type you mean the concept that has these qualities

32:21

and these it's an abstraction that a bunch of different things can fit into or is it a specific

32:27

data type it's a concept it's an abstract thing yeah and um i i think like so far from conversations

32:34

with people i think we can also name them concretely i think like a typical base conversion data type

32:41

is a is a last-right-winds range that would be like for example what willow does you could have

32:47

directed aciclet graph um this is you know what hyperhyperspace does for example um or like subduction

32:55

and if you know from the auto-merge people then you can have a panda only locks this is like what

33:00

peer-to-panda is doing or like tiny ssb and you or you can have grow only sets um which i don't

33:07

know if anyone is doing maybe nostru actually nostru is a grow only set i would say you know and these

33:13

are all like base convergent data types i would say these are all like these ip packets uh in a way

33:18

all of these like core data types which can deliver so much more uh which can be expressed on top

33:25

of that and i think what we are trying to do with this sort of like framing is just yeah try to push

33:30

a little bit the discussion into uh into this thing of like not everything needs to be expressed in

33:35

this one data type you can compose functionality on top of that rather than trying to make this data

33:41

type super powerful i think there's been a fascination in the past for like trying to make exactly

33:47

that data type like solve everything and um i think we realized it maybe doesn't need to it can be

33:54

extended on top of that similar like how an ip packet was then extended with udp and or tcp and

34:01

this is a little bit the like let's say the provocation in that direction and it's great that you

34:07

mention this because a provocation doesn't happen in nowhere it happens in a collective space and

34:16

what you're talking about now is terminology that's been built in many conversations among many

34:22

different parts and before we dive into append only logs and grow only sets because i'm a little

34:28

bit curious about that um i would actually like to dive into your history and your engagement with

34:36

communities and a process of curating conversations you've been part of the Basel meetups you've been

34:44

part of the dweb meetups you've been part of local meetups at offline space and you were part of

34:51

starting offline space throughout this you've also often talked about the importance of terminology

34:58

so first off um i would like to get your uh permission to throw out some terms and get your feedback

35:09

on them and then uh we see where we go from that is that okay yeah sure okay i'll see yeah yeah

35:20

all right that's a fun game so we've already covered based convergent data types

35:31

and you mentioned stacks before so how about the walkaway stack what's your quick elevator pitch

35:40

on defining the walkaway stack that's just um what i said before with data arrives for a group

35:47

independent of what is the um transport or like the the connectivity substrate

35:55

underneath exactly that's another term exactly and that was going to be my next turn so what is

36:03

connectivity substrate yeah it's like what makes us connect you know like a cable or usb

36:11

stick or uh radio waves or um yeah this weird thing we call internet um because this is

36:18

somewhere where i start getting confused uh when you say event delivery layer what do you mean by that

36:25

yeah so this is like trying to separate again um like problems and concerns into into two

36:33

different areas we have to event delivery and the event processing um and event delivery is

36:40

basically a problem space where we are concerned with how do we connect to each other

36:46

or like even were even before like how do we find each other um how do we connect to each other how

36:52

do we establish a connection um if there's no connection how do we deliver the data anyway exactly

36:59

peer discovery these things um but also like hole punching um you know like signaling um then

37:07

relay fallbacks everything like aerosols for us these days um you know all of these things um

37:14

and then sync uh we know which is another massive space uh to explore i just mentioned like you know

37:21

that all of these ideas on how sync protocols can go about and um how they can be optimized for

37:27

certain data types and so on um so this is the big space of event delivery so just like

37:34

somehow your data arrives um yeah you know from other people um and we call this event um just to

37:43

yeah i think it comes from event sourcing and um a little bit but also like to maybe really stay

37:52

as abstract as possible you could also call it a message or data you know data delivery or message

37:58

delivery um okay so now you you got your message delivered it somehow arrives but now you

38:05

want to make sense of that message um you want to you want to process it so you look at it and you

38:11

start extracting information from it um and knowledge um for example that message contains that

38:17

information that you've been added to a group you know this is something i need to process now i

38:22

need to change my group state and my key agreement state i need to know um you know

38:28

maybe rotate a key or um you know like um make you aware of that key um so this is all processing

38:37

and this is usually where we are entering more application layer like things and application

38:41

wants to do with that data it got through the event delivery and um and the processing part is

38:49

quite interesting because this is where like yeah things get a little bit more let's say custom

38:54

you know different applications might need different ways of processing things some some

39:00

want to look um you know um process um uh peer-to-panda encryption stuff some others want to maybe

39:08

do auto merge um you know because they're building a text editor and um there's like different ways

39:13

of processing that information these these events and um so i think this is basically like the

39:19

separation of these two worlds and i think by separating that it also allows us to

39:25

write software in a way where it is actually like walkaway meaning if you have that processing part

39:32

separated in a completely different space then where that data came from doesn't matter

39:38

and therefore it can always be swapped out how the data comes to you um you know which is

39:44

important for walkaway that's a quality we want to always have so if one day the internet goes

39:49

down you can still use your application because it didn't matter where the data came from um and

39:57

all what transport it arrived to you so it's more like uh it's it's almost like uh um yeah like uh

40:05

like a check um like a self-check like uh uh yeah like a corrective we always have for ourselves

40:13

so whenever we write it code we always make sure that this is never violated this sort of

40:18

guarantee this sort of separation yeah that's really cool to hear and i think that would be

40:24

interesting for other protocol developers to take note of as well um so and we could totally dive

40:33

into that as a rabbit hole just like there's many other things we could also dive into like for

40:40

example i've been thinking about this whole thing of the terminology and why it's important and

40:45

we touched on that in past conversations briefly but yeah i'm not gonna get distracted and instead

40:53

i'm gonna hold my tongue and bite it and circle back to um data types and uh you mentioned before

41:05

that peer-to-panda uses append-only logs and just as recently as this last summer there was a

41:14

really interesting discussion between or conversation uh that you moderated between uh aliyoshi and

41:23

samti on data types and i'm curious to hear your thoughts on this and whenever the video comes

41:31

online i'll link it in the description but i'm also curious to hear your thoughts on append-only

41:38

logs and then i have a follow-up question from something uh power source asked me before this

41:45

conversation actually wow cool okay wow there's a lot there yeah okay so first question

41:53

how i what i think about the discussion between aliyoshi and samtiago um so hyperhyperspace the protocol

42:01

of samti um actually uses uh DAX um i always thought it was append-only logs but it is uh like

42:09

actual DAX i think he changed over time what is the the core data type there but um and that's

42:16

directed acyclic graphs yeah exactly and exactly and aliyoshi is like you know a big fan of

42:24

like last right wins wins key value ranges um and the big difference with these is

42:34

you know you have to imagine whatever you put in a key value store whatever was there before is gone

42:40

you kind of overwrite what was there before and that says some nice qualities because you know

42:46

you can be sure it's deleted forever at least from your computer um it makes it very simple you

42:53

don't have to mess with like more than just like put it in a slot and you know and then it's there

42:57

and whatever whatever was there before is gone um while a DAX or an append-only log has this notion

43:05

of a history so you append something to it and what was there before stays right you just append on

43:11

top of it um and this has pros and cons um the thing is uh whenever you need history

43:20

then obviously a DAX and an append-only log is so much better because um if you need that on top

43:26

of a key value range then you're basically building a DAX on top of that so you would start like

43:32

pushing a DAX into that key value store um you know it would sit if you would basically have

43:39

the whole thing and then the whole blob would just be moved into one slot um and um uh you know

43:46

that's not very nice um and why would we want to have history it really depends on the application

43:53

but i think um yeah there can be reasons where you maybe need to like go back in time and and and do

43:59

something again and that usually comes for example for certain moderation scenarios you know someone

44:05

has been writing something and concurrently uh they've been removed from the group uh now you

44:14

maybe want to go back into that data type and going back into the past and remove these edits um

44:21

you know that will be harder to do if you don't have history um another thing where it's important

44:27

is maybe um yeah bucentine fault tolerance so um we uh we need sometimes the past because we need

44:34

to understand where did someone come from what rights did they have in that moment um in the past

44:40

and was that violated somehow um these these things are important to understand

44:45

to to build certain uh security measures and and and and like bucentine fault tolerance measures um

44:53

so i think i think the the the willow folks they always call this like fancy CRDTs um or like yeah

45:01

and i think they're not very big fans of that and i think they have a really good point of

45:05

of um doing that because it's true that you can build a lot of things with very little

45:11

um but i think there's also space for you know history um because there's a lot of peer-to-peer

45:19

problems we can only solve with that um and um so yeah i think it's it's like it's like it's

45:25

basically like a choice one needs to make when building an application and um and um um i think

45:33

we're just similar maybe to the terminology question you try to avoid

45:38

you know i think we should we should we we we we we start to just get better at like

45:42

describing these pros and cons maybe and and the requirements our applications need

45:47

and then maybe one day we can actually communicate that very well to application developers

45:52

and maybe there's a culture of application developers emerging we start to uh you know

45:57

communicate these things to each other in a way where you know it will not be a question anymore

46:02

you just take that or that based on what you need to build um i think that's such a beautiful and

46:09

succinct summary of the conversation and the conclusions one can draw from it and it makes me think

46:16

of uh silo was was there uh d webcamp and uh they're trying to build this like atomic referencing

46:27

where you can reference also like down to specific sentences or tables etc and they're trying to

46:35

do it and appear to appear way right now is not completely but still um this kind of scenario is

46:44

where DAGs would be super relevant uh especially with like the whole history and being able to see

46:52

the modifications that have been made but at the same time privacy is not great in those kind of

46:57

systems um like aliasha pointed out uh from willow uh you want to be able to delete things for privacy

47:05

and especially like the metadata as me and aliasha talked about in uh the episode as well um

47:14

so the question i got from power source is related here as power source was wondering

47:21

how you deal with deletion in peer-to-panda and i know you have dash chat and i'm wondering

47:28

a bit how do you relate to it what what um guidance and security advice do you give for people who

47:35

are building communication means over peer-to-panda yeah so you know like i mean um there is i think

47:43

there's a couple of like uh things around append only locks which are usually criticized the first one

47:48

is um you know you can't delete it it's append only it just grows forever it starts wasting your

47:55

your hard disk space and then your computer crashes um the other one is uh yeah it forks so suddenly

48:03

you you you broke like your eventual consistency guarantee because there's two versions of the same

48:08

lock and depending on with whom i think what they're gonna see different things um all of this we know

48:14

from secure scuttlebot um um and the third one is like yeah and partial sync um all of these

48:22

like i just want to have a part of the lock without breaking its whole integrity and so on and um

48:27

peer-to-panda addresses all of these things so um obviously we just didn't take the scuttlebot model

48:33

and um went for that without like learning from the from the you know the bad parts of it um

48:41

so uh like in peer-to-panda you can prune a lock at any time so if your lock grows to a point

48:51

where you don't need that information anymore you can just say please delete everything

48:58

from here on um it's like it's like a it's like a flag you're raising and you just say whoever

49:03

observes this lock now from sequence number 17 you can delete everything which was published before

49:10

that point and so you could be really um like um uh like as a provocative example you could say

49:19

prune your lock always at sequence num like as soon as it reached a length of one you know um like

49:26

as soon as your lock has the length of one just delete everything and then you're basically back at

49:31

willow now you are in in in a pentony lock which has no history um and that's possible to express

49:39

with peer-to-panda we can say our lock never grows beyond one item um and when it does it just

49:45

gets pruned um so now you're you're back in no history world and we can still do that on top of

49:50

a pentony locks um i wonder what al-Yosha would think about this description i think he would say

49:57

then yeah this is like it doesn't have ranges and whatnot i mean of course um there is like yeah

50:03

there is like different things but i just want to say in terms of privacy we're back in the same

50:07

guarantees actually um yeah and um um so this is one nice thing we can do and uh what we basically

50:15

say is again is up to the application to decide when they want to prune um so this is one thing

50:21

another thing is um we separate the actual payload from the lock integrity part so when someone

50:29

sends a message uh that message is you know hello sennah and that message is protected by

50:38

you know like the signature and you know like the backlink and all of the you know a pentony lock

50:43

things but we can always delete this uh payload uh without breaking the lock integrity

50:49

that's kind of like a you know soft delete where you just say okay whatever message was delivered

50:55

let's just remove that message we also call this off chain uh like the data is not on the chain

51:00

on the hash chain um it's it's it's like expressed outside of that and independent

51:05

it's still protected the integrity but we can delete it without affecting that integrity

51:10

and um so this is another nice thing uh developers can do um if they if they just want to want

51:17

some content to be gone and uh you know the metadata is you know they're fine with the metadata

51:22

being around um and um yeah and then i think the last thing the forking uh this is you know like

51:29

that's that's another thing so our appendony locks day they are they can be forked um we don't

51:36

recommend it i mean it's uh you know they're more efficient when they're not forked uh but if

51:43

they are forked by accident um for example they will not break then basically have like mitigations

51:49

to like to like detect that and and and be fine with that um and um and that also allows you

51:56

actually to by detecting that that now allows you also to like look into business and fault tolerance

52:04

uh systems because a fork can be now considered you know let malicious acting and we might want to

52:10

record that event um this is like research some people in basal are doing uh we're not so

52:15

interested in that but you know these are like suddenly features which arise from this sort of thing

52:19

and then yeah and then the the other thing not everything is written in one lock so it's not like

52:24

in scuttlebutt where like everything you would do is like written in one massive big lock so

52:28

in peter pandan we can write as many locks as we want at the same time and usually

52:34

they're very small so i think we rarely have seen applications having like locks longer than

52:40

100 items um it's usually something between one and 10 or 15 um oh wow yeah so you know like i think

52:47

just like long locks sort of thing is a quite um yeah it's a quite um thing of the past

52:53

thing of the past yeah we don't really observe that so much anymore yeah that's great to hear

52:59

that's what crash my computer and then you can and then you can also delete whole locks right so

53:05

when you start now having many locks then you can have like yeah you can also just delete the whole

53:11

and that's totally fine and also similar you can also express locks in in sorts of groups and then

53:18

we can say delete everything in that group so then all the locks will be gone um which is you know

53:25

like a nice thing as well now we're actually nearing time oh it went so fast um yeah i really did

53:36

i still actually have a few questions so first up modal what's up what's the gas

53:49

yeah um so yeah we just had an boiling the ocean event in Berlin that was really nice um so we

53:56

have been been meeting great people and and hacking on reflection and other things that was

54:02

really cool there was someone who brought like NFC to the table which was fun to like look into

54:10

and um yeah um i think the next boiling the ocean is happening soon after the all systems go

54:16

conference um i don't ask me about dates right now i think it's October um we'll link it in the

54:23

description yeah and another big thing which happens um it's been brewing for a while but now

54:29

finally it's official is that modal got a sovereign tech fund grant of half a million euros

54:39

yeah this is pretty cool and there's a like amazing team like working on that like

54:45

Adrian and Sebastian for example from modal and Kate is also involved in the administrative parts

54:52

and and Katarina and um yeah this is a very big grant for flat pack and portals work um and that

55:02

indirectly affects peer to panda like it's not really a peer to peer grant unfortunately

55:09

but it is uh it is still cool because this all is like work towards you know this whole host

55:15

environment question of like how can we bring peer to peer UX and UI patterns and components

55:21

into the operating system yeah and portals will be a very big part of that so like how do you

55:27

ask for access to uh share data with someone or you know um to your uh contacts and so on

55:35

so indirectly there will be some work now being done with that at least in terms of like

55:40

improving security improving the stack making it more modern and so on and speaking of grants

55:46

yeah uh yeah one invention pillow

55:53

exactly so pillow that's a peer to panda plus willow yeah yeah exactly and um let's see if

56:04

you stick to the name um yeah um but uh exactly this is like a grant we got from an lnet

56:15

and it allows the willow folks to work on their um yeah um protocol to put and get data into

56:23

their stores and and to sync it's like the WTP protocol i think like i hope i hope i didn't say it wrong

56:31

but yeah this this is money for them to like specify and and implement this protocol

56:37

which is great for us because then peer to panda can use it to store our operations from our

56:43

append only log into willow so talking about like uh yeah um different base conversion data types

56:50

now we store one and another um which is also interesting i think and the cool thing here is

56:56

what we get then from willow is um really need access control for their capability system

57:02

metal cap and now these willow notes can sync with each other and um we can express like access

57:09

control for that and um yeah and then we have we have a nice way to like query these ranges and

57:17

can map that back to our data type and we use that for um for support notes which is something

57:25

we call um highly available or more available um notes in the network so when everyone is offline

57:33

and you still want to get that data from somewhere then you can talk to a support note and this is

57:38

where you might get it from um and combined with our encryption scheme we can have that data fully

57:44

encrypted on on a willow peer so they will they will not really know what they're storing this is

57:50

yet again one of those things i wish we could dive more into but Andreas i'm sorry you're gonna have

57:58

to come back another time yeah um so you also got another grant for more sneaker net stuff i heard

58:10

of yeah exactly yeah this is coming from the breakout program uh from equality uh this

58:17

Montreal based organization and uh there we are um um yeah working on something we currently

58:26

call the like the multi-plexer which is not a good name but it's basically switching between

58:31

different transports and different ways of event delivery um so you know you're building

58:37

application and you can just switch from Bluetooth low energy to uh the internet or to um yeah

58:44

Laura and yeah um switch between all of these different transports depending on what's available

58:50

to you and uh what makes sense maybe also for certain kinds of data um and uh and as part of that

58:58

we are also exploring building like alternative yeah alternative ways to exchange data and

59:04

in peer-to-panda and currently it's open what that exactly is i think it's like as part of the grant

59:09

we also conducting research and we're talking to people to see where the priorities are um but you

59:15

know like overtour over i2p over delta chat um over Bluetooth low energy advertisements over

59:22

reticulum mesh tasks take mesh core uh there's a lot of options you know to pick from uh yeah

59:32

uh exactly uh you know over the over the bit torrent dhd and whatnot um so there is like

59:37

there's like many many options and we basically just need to prioritize based on uh user feedback

59:43

so on that note we're going to have to round it off and thank you so much for joining

59:48

here today andres it was a pleasure having you yeah thank you that was fun yeah thank you

59:54

looking forward to the future developments and whatever is coming out and uh speaking of

1:00:02

uh spacious is another app yeah right spacious spacious not using peer-to-panda yet but they are

1:00:09

interested in doing so yeah i thought they said i talked to Alex and they said they were using

1:00:14

paper oh wow okay wow then they are further than effort okay well amazing okay cool yeah i think

1:00:20

this is the thing right now there's so many people doing things with peer-to-panda right now and it's

1:00:25

yeah it's hard for even you to talk yeah it's really nice well that's a good problem to be having

1:00:34

congratulations and talk to you later yeah talk to you later bye bye

1:00:51

SolarCast