Today we are joined by Andreas from P2Panda.
Pyrtupanda is a protocol or a network compatible with post-internet communication
infrastructures such as pocket radio, Bluetooth or sneakernet, what it's also
known as USB transfer. It's a bunch of different modules that can all be
accessed via the out of the box API, primarily written in Rust. Pyrtupanda was
initiated by Andreas and Sam and since then Glyph has also joined the team.
Andreas specifically is a programmer and musician and the tunes from a guitar you
might hear scattered throughout the episode is clippings from his post episode tunes.
He is been quite active in the scene and has been involved in the shaping of terms such as
the walkaway stack and is also an active part of Modal and if you're curious about Modal,
you can listen to the episode with Tobias. Now with no further ado, let's dive in!
Hello and welcome to today's episode of SolarCast! I'm here with ADZ or Andreas.
Hi. Hello. Really nice to be here. So we've known each other for a long time now. So almost
ten years since this got about days and but I actually don't know how you got involved in all
of this and where it all started. Yeah, I think there is this talk we gave at CCC. I think it was
2019 and that's a very weird time capsule to go into when one wants to understand how we ended
up doing the thing we're doing but at this time we wanted to build a software to organize
festivals on top of scuttlebutt and it was meant to be called Pier Topanda and the background
of that is that I was involved in another collective. I mean we started I think 2013 I think
publishing a magazine called Plats 3000 which was meant to be like a very open platform for people
to publish whatever thoughts they had on music. So it was like a discussion thing for people
interested in nerdy music and the idea was that anyone can publish anything so it wouldn't be
curated and anyone can answer to anyone else's articles. So it was also a little bit like a forum
and maybe the magazine didn't go that well but I think the community around it which came out
of that was really beautiful. So we had a lot of great gatherings and release parties and a lot of
fun printing these magazines with weird covers and yeah and then we started to organize festivals
because we really like this mode of non-curated content and then why specifically non-curated content?
Yeah this is this comes from a very special niche but like I have a background in experimental
contemporary music which in Germany has this very strange thing of noya music
and which is highly academic so we have like dumb studs and all of these like big festivals
where noya music is performed and at this time I think we were very bored by the academic part
of that and the highly institutionalized aspect of it and we kind of wanted to break that a little
bit because there's been a couple of people who just couldn't identify with that. They liked
experimental music but they didn't like the framework around it and so we were like yeah against
curation against like people trying to organize things we wanted to organize ourselves to do our
own thing outside of the institutions this sort of thing. I think it never really happened as an
actual impact let's say on the actual music culture I think no one cared but we had a lot of fun
like doing it for ourselves and this is where it came from I think from this anti-academic context
yeah and anti-institution context and so yeah we started just this like scene and festivals
and used software to to allow us to organize in a way where there wouldn't be a centralized
coordinator required which has so many parallels to today's world of admins and moderators and
so forth so on and but I remember that you've told me before about this piece that you also were
part of making which was a self organizing orchestra where people could like interact and be
part of creating the music together but in a self organizing manner and yeah there's just
something very beautiful about that in complexity theory it's called stigma but hey we're not going
to dive into that right now but I think it's really cool and really beautiful how you've been
part of self organizing systems or designing self organizing systems first in music and then with
festivals and zines and now with peer-to-pop yeah exactly so we yeah we were like yeah at this time
trying to build it build the software I mean we build it a couple of times so there was the first
iteration in 2016 I think which was called 2015 maybe which was called for unwotung 3000
which was built on ruby on rails actually and then the second iteration within a rebuild in
Node.js and they both were like various centralized stacks and at this time for us it wasn't so important
that the technology is like decentralized we were more interested in the mode of organizing on top
of that but the more we did yeah sorry what made that what created a shift there why did you start
caring I think us yeah I think you know like we've been we've been musicians and and you know
festival organizers and I was studying musicology at this time I mean not really but I was playing
in a lot of bands and I was surrounded by people from the experimental music scene in Berlin
and we didn't know so much about hacker culture or computers or you know different software projects
like I was I was mainly like a self taught programmer for fun and for a little bit of money on the
site and and people around me were like no programmers at all mostly and we we just used technology
as a way of formulating these ideas we have of organizing like and as a as a as also like as a
propagation of like you can change the interfaces you can actually control or change how you
how you call it the circumstances you are you are inside of like the framework around you like
this was a little bit this sort of experimentation we had and and of course this is not you know this
was a very utopian sort of thinking and power dynamics happen all the time and things can't
be changed sometimes as well because you don't have the power to do it and I think for us this
was just the means of like discussing these things and highlighting them what we can do and
how we shift power dynamics by doing it in other directions and in other in in in other yeah like
dynamics and yeah we use the magazine as a as a platform to discuss these things and these dynamics
and and then we basically just use software development to express new ideas which came out of the
discussions so it was kind of like a loop like a feedback feedback loop making software discussing
like making software making a festival discussing the outcomes making a new software and so on.
iterative learning um yeah that sounds lovely um it's bringing to mind like so it sounds like
throughout these iterations you move from simply organizing well not simply because organizing
is a big thing in and of itself but from organizing festivals and organizing in a self organizing
to building self organizing technology how do you think that transition happened?
yeah I think there's been two things happening at the same time I think one was us maybe radicalizing
ourselves through this process um of thinking about these things and yeah um discussing these things
and um and I think we also had an urge to leave the music scene a little bit because we got
also maybe slightly bored of of it um and found out that there is a complete there's there are
other spaces where this is being discussed since many many years um um and um uh yeah of course
also the hacker scene um like whatever that means but like you know in computer culture
decentralization and self organization has always been a thing and um I didn't know that at this
point it was like a new thing and um that's like what we've been doing before already exist in
other spaces and it's much better understood and I think at the same time Sam um who is still
part of peer-to-panda like me um he um he was also part of the of these festivals and blood
3000 and he um he just went to a workshop of the that protocol uh in trust in Berlin uh the trust
space um and he just came back and was like oh my god I've seen something super cool you should
check it out it really fits like um our thinking yeah and uh and then we were like whoa what is the
that protocol and we were reading the websites inside out and um and then that led us to a
secure scuttlebot um so yeah this is basically where it all started this whole rabbit hole and
it was just us being fascinated wow this is like everything we talk about is already reflected
here as well um and you were talking about how it would be cool to like hear this back in 20 years
and here we are we're talking about that moment what is it 10 years ago and then look at y'all now
yeah it's crazy it's really a little bit strange yeah and I think the as I said this this talk
at CCC I think you've been there as well I remember talking to you afterwards um uh the talk is
really like a weird time capsule as well like if you look at it you're like okay oh my god what is
purter panel it doesn't make any sense before I see today yeah but it does make a bit of sense
because if we also look at like right now you have tool kitty that has been built on purter panda
and that is a direct continuation and a heritage from from I can't pronounce the German I'm sorry
so I'm not gonna even try to butcher it yeah exactly yeah this is finally like um full circle coming
back and building the software we wanted to build in this time you know so I was so keen on trying
out tool kitty like a year ago and it kept being on the precipice of done uh where are you now
with the tool kitty yeah it's a little bit of a sad story because um tool kitty was funded by
the British government and this kicked it off the whole project which was amazing yeah and we were
very ambitious pushing for something at least like proof of concept E problem is that um yeah
half the team is like peer to panda core developers so we had a lot of other things to do after the
grant was over and the other half are people who are coming from the yeah like the art the
cultural scene and they are very dependent on money of course um so for them uh yeah and for us
I mean we also dependent on money everyone is but uh it's nothing we can just like continue
without any funding so the project was just stalled at this point and we couldn't get back to it
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
there where you can like really use it um we would need to yeah we basically need to continue with
more funding and we have a grant we're still waiting for the answer so fingers crossed um so
it's not over we're like we are definitely applying as much as we can for tool kitty also it's
our favorite project um yeah obviously because it's really like the the heart of peer to panda let's say
um so and we have a really beautiful team around it like everyone involved in it is just super
nice and uh yeah it's just super nice to work together on it also slightly different than all our
other peer to panda projects because it's the least technical let's say um so it's a really nice
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
and the priorities are shifted through where the grants come from and for what yeah of course
so one thing I was thinking about was now that we're talking about what you've been developing
and uh tool kitty a direction that I've seen y'all going in which has been really cool to see
is kind of a little bit more hands off on the that development of the applications that are
building on peer to panda and focusing more on the core protocol development so the point of
the question is first off can we do a little bit of a shout out because I saw that not all applications
that are being built on peer to panda have been mentioned on the website so for those who are
curious on what's being built on peer to panda what are like the active ones bubbling we got
reflection we have dashchat um which is uh yeah like an encrypted messenger which also runs
yeah without the internet and um and then we have jade's project um lore rest um which is like
something like a it's more like a federated setup of community notes where people host their
websites or build like applications for the community so this is more like a neighborhood's network
um and it's it's it's also a little bit more low level like infrastructure for communities to
build applications on top for example by sharing uh carpooling um message or it's these sorts of
things um yeah it's really cool also like aiming at running on top of Laura as well um so I think
this also plays with this idea of like every community has their own like backbone infrastructure
of antennas and and maybe Wi-Fi um and these these communities can then yeah sink with each other
across villages or neighborhoods um uh so this is the lore rest project um and um yeah and then
in in the gnome community we have a couple of people who are active as well uh like we have um
era which is a new calendar um which is basically a new calendar for the for the gnome
and um yeah there's some experimental peer-to-panda sink built in now um this is similar to
reflection so you have like text document sink but then this is now the calendar sink um also
recently met someone who is doing the same for evolution which is like the lower level stack to
um yeah represent calendar data I think if I and it's not my world but I think something like that
and with this it allows also the current gnome calendar um we think it's just gnome calendar
it's just called so that would already be two calendars um with peer-to-panda sink so this is ongoing
um uh yeah and wow now I need to think um I think there's more um
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
you provide me in the description anyways you mentioned this project that was building on the
sink module you didn't call it the sink module but anyways this kind of ties back into a shift
that's happened in the scene where previously we were building these monolithic protocols that were
one size fit all and if it doesn't then fuck it we can't do anything about it so I'm curious here
on your website you have listed a lot of the different modules you have and I'm just gonna
go through them uh and read them out and so you got here peer-to-panda net peer-to-panda
discovery sink blobs core store stream spaces encryption authentication and I'm wondering
here like how modular is peer-to-panda and how easy is it to engage with this and also um
what would you say is the essence of peer-to-panda in this yeah yeah I think it's um also maybe back
to like where why we started peer-to-panda like the protocol actually I think we were like
trying to build an application the catalog you know the festival app and it was too hard to do on
scuttlebot at this time and then we basically gave ourselves the question okay how what would be
necessary to build an application um and I think that always informs like what we do with peer-to-panda
we we ask ourselves what is required to actually build an application uh like what are the
what are the facilities and application developer would would reach for um if if they would do that
and um we're also constantly in contact with application developers who give us feedback on the
things they need and this is how we prioritize our our features let's say um but roughly I would say
is like there's a group of people and they want to exchange data so whatever data I publish
will also be received by everyone else in that group so this is the this is the main guarantee
and uh now it gets a little bit more complicated because these people in this in this group
uh in this in this group are maybe not online at the same time um and maybe even worse they might
not use the internet they might use something else um to talk to each other maybe bluetooth or
yeah a usb stick or amateur amateur radio like ham radio um and or the internet is very flaky or
you know or like very slow and so on so but peer-to-panda I mean it's aiming at solving that whatever
you send into this group it will eventually arrive to all of these people despite all of these
yeah connectivity issues or different sorts of ways to connect to each other so this is the
first thing and I would say that's like sync um you know like we make sure that data syncs
to all of these people independent of like how how how the connectivity is done and how how
how much online you are um and then the next problem we are trying to solve is to do this
confidentially so it's actually like secure to send that data and no one else can read it um
so no one no one outside of that group will be able to read this data I think this is another big
priority for us so so that whatever you're sending now into this group is like confidential for
only people who are in the group and this is easy to do on the internet but very hard to do in
mesh networks for example or um networks where you have intermediaries like maybe you and me are
in a group but uh you are very far away and I need like five other people in between you and me
to get that data across but still I want only you to read this data and not these people in between us
and um so we are we can use other intermediaries to deliver that data but they should never be able
to read this communication or tap into it or change it so this is the whole end-to-end encryption
part of peer-to-panda is this also where I wrote it or is it more separate more like in offline
scenarios yeah this is it's both I wrote gives us um transport encryption so you know they're
using TLS on top of quick which allows us to to have a you know direct communication going on
like a direct connection and this this one is confidential between you and me um but this implies
that there is a connection right um and whenever we can't have that sort of like setting which is
again as I said like in in like um more mesh network scenarios for example or like broadcast um
broadcasts uh transports like like packet radio or Laura um or Bluetooth advertisements then we
just can't assume that there is a connection we just scream into the void and hope that someone
is listening um but at the same time whatever we scream or say should be confidential right you don't
want anybody to listen to that either um so this is where we have to leave the iro world or the
like the TLS world and and bring our own solution so what we have is like a key agreement scheme
for groups which uh works yeah without any assumption of a connection or being online and so on
is this peer to panda spaces exactly uh so i mean the key agreement itself is peer to panda encryption
um but now you need to know to whom do i encrypt data and who is in the group this is what we call
like uh uh yeah like a group management you know i need to add someone into the group i need to
remove them and this is solved with peer to panda off and that's a CRDT we've built which allows
you to add people into a group yeah remove them change their like privileges maybe like make them
from admin to like someone who has only right access or only read access and then uh it gets even
more complicated because you cannot only add people but also groups again so a group can be made
out of groups so uh and that allows us to uh also like have things like multi-device settings where
maybe you as sanner you are a group and you have multiple devices in your group you know you have a
smartphone you have your laptop you have your desktop computer these are three members in your group
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
and so therefore i have two members in my group but now i'm adding you uh like your group to my
document you know and this is like no indirectly or yeah like transitively all of your three devices
will now also have access to that document um and i'm still encrypting to all your devices like to your
smartphone individually to your laptop and to your desktop so it's like encrypted individually for
these devices but yeah we now we have that awareness that you know this should be done like that
this is this like nested nested group management thing and we built a CRDT for that it's yeah
mostly work of sam as well as a pretty pretty crazy work um to make that happen and um the combination
of this CRDT and the key agreement scheme is then what we call spaces so a space is a place where we
can have um key agreement for confidential yeah message exchange encrypted confidential message
exchange towards a group which was managed by that CRDT this is so cool to hear because like
back in the day back in the day but back in the day this was one of the huge challenges for us to
solve just making a group and now you all got groups within groups nested groups yeah and it's
i think like and then maybe like the the last pillar of of peer-to-panel i already kind of
mentioned but if i say like yeah you know deliver messages to a group um make that confidential then
i would say the third thing is access control so who is allowed to do what um and this is something
application developers always want um you know they they want a way to describe you are allowed
to read this document but you're not allowed to change it um you know things like that um and
and this is indirectly handled with this CRDT as well um i just mentioned so so but i think
with this is we already kind of describe peer-to-panel and um and so we we don't dictate what sort
of data you're sending we only try to make sure it is done in a secure way and in a robust way
on top of any transport um and that's what you mentioned because uh i watched your talk
at least as much as i could it kept cutting out uh but your talk it faws them and you were talking
about base convergent data types and you were mentioning how you could sync DAGs over for example
append only logs um so what you're talking about right now it sounds like is that it's agnostic
what the data type is and it's more about what how you send it is that what you mean when you say
base convergent data types right yeah no it's exactly that yeah it's so so yeah the base
convergent data type that's i mean that's that's an attempt to find the definition for this
for this thing um uh where you know a bunch of people were involved in trying to find out how to
name these things but i think the underlying the underlying question here is um and i think this
has been mentioned a couple of times also in the past it's like this sort of like universal sync idea
like is there something like a sync approach where we can deliver data of any kind um and i think
right now in our thinking we would say that's not possible that doesn't really exist like i think
there's still some sync protocols which make more sense for certain kind of data i would say
specifically files should be synced in other ways um you know the willow folks have another
approach which i think also makes sense for for uh yeah for files or for like um um yeah
certain CRDTs but like i think still there is this sort of um challenge to try to express um
like a like a basic element which is um uh allowing you to sync
yeah as much different types of applications as possible and this is a little bit the role of the
base convergent data type and also like what we try to solve with peer to panel because we try to be
like as flexible as possible um because we don't have we're building for certain kinds of
applications with certain guarantees but still there's a wide range in that and um um
and then another thing which is interesting about this you know this data type this core data type
is that um um there is different ways to interpret it as well um so if you look at the classic
internet stack then you know while we are talking right now and this this this audio stream
across our computers there is like there is one core layer underneath all of this and this is the
IP layer um and on the IP layer there's something which is called the datagram um and you know
that's the that's the core unit of what is being sent over the internet and then we express protocols
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
have tls and then on top of tls we have signal um and then on top of signal we probably have also
custom audio protocol they've built um so you know this is the this is this whole like stacking of like
protocols and now you would say oh no Andreas you sound like a OSI layer sort of person you know
which never really worked um but this is not what i mean i just want to say there is like
the separation of concerns where you know different parts of the system handling are different
different things and uh the base conversion data type is the thing which handles
just making sure that the data arrived um on top of different transport um similar like the
ip packet was just made to make sure that data was routed to the right computer um so i would
say like the the the the the base conversion data type is a is a data type which can be sent over
any transport it uh is authenticated um so it has like you know we have some sort of like idea
who send it it can't be tempered with when it is going through intermediaries so it's like
has integrity and um it has this quality of converging this is what convergent part of it is
which basically means when peers observe the same data flowing in over time then they will
converge to the same state and that's the quality we always want to have in peer-to-peer systems
of this kind um you know just to clarify here and this is going to sound like a stupid question
but when you say base convergent data type you mean the concept that has these qualities
and these it's an abstraction that a bunch of different things can fit into or is it a specific
data type it's a concept it's an abstract thing yeah and um i i think like so far from conversations
with people i think we can also name them concretely i think like a typical base conversion data type
is a is a last-right-winds range that would be like for example what willow does you could have
directed aciclet graph um this is you know what hyperhyperspace does for example um or like subduction
and if you know from the auto-merge people then you can have a panda only locks this is like what
peer-to-panda is doing or like tiny ssb and you or you can have grow only sets um which i don't
know if anyone is doing maybe nostru actually nostru is a grow only set i would say you know and these
are all like base convergent data types i would say these are all like these ip packets uh in a way
all of these like core data types which can deliver so much more uh which can be expressed on top
of that and i think what we are trying to do with this sort of like framing is just yeah try to push
a little bit the discussion into uh into this thing of like not everything needs to be expressed in
this one data type you can compose functionality on top of that rather than trying to make this data
type super powerful i think there's been a fascination in the past for like trying to make exactly
that data type like solve everything and um i think we realized it maybe doesn't need to it can be
extended on top of that similar like how an ip packet was then extended with udp and or tcp and
this is a little bit the like let's say the provocation in that direction and it's great that you
mention this because a provocation doesn't happen in nowhere it happens in a collective space and
what you're talking about now is terminology that's been built in many conversations among many
different parts and before we dive into append only logs and grow only sets because i'm a little
bit curious about that um i would actually like to dive into your history and your engagement with
communities and a process of curating conversations you've been part of the Basel meetups you've been
part of the dweb meetups you've been part of local meetups at offline space and you were part of
starting offline space throughout this you've also often talked about the importance of terminology
so first off um i would like to get your uh permission to throw out some terms and get your feedback
on them and then uh we see where we go from that is that okay yeah sure okay i'll see yeah yeah
all right that's a fun game so we've already covered based convergent data types
and you mentioned stacks before so how about the walkaway stack what's your quick elevator pitch
on defining the walkaway stack that's just um what i said before with data arrives for a group
independent of what is the um transport or like the the connectivity substrate
underneath exactly that's another term exactly and that was going to be my next turn so what is
connectivity substrate yeah it's like what makes us connect you know like a cable or usb
stick or uh radio waves or um yeah this weird thing we call internet um because this is
somewhere where i start getting confused uh when you say event delivery layer what do you mean by that
yeah so this is like trying to separate again um like problems and concerns into into two
different areas we have to event delivery and the event processing um and event delivery is
basically a problem space where we are concerned with how do we connect to each other
or like even were even before like how do we find each other um how do we connect to each other how
do we establish a connection um if there's no connection how do we deliver the data anyway exactly
peer discovery these things um but also like hole punching um you know like signaling um then
relay fallbacks everything like aerosols for us these days um you know all of these things um
and then sync uh we know which is another massive space uh to explore i just mentioned like you know
that all of these ideas on how sync protocols can go about and um how they can be optimized for
certain data types and so on um so this is the big space of event delivery so just like
somehow your data arrives um yeah you know from other people um and we call this event um just to
yeah i think it comes from event sourcing and um a little bit but also like to maybe really stay
as abstract as possible you could also call it a message or data you know data delivery or message
delivery um okay so now you you got your message delivered it somehow arrives but now you
want to make sense of that message um you want to you want to process it so you look at it and you
start extracting information from it um and knowledge um for example that message contains that
information that you've been added to a group you know this is something i need to process now i
need to change my group state and my key agreement state i need to know um you know
maybe rotate a key or um you know like um make you aware of that key um so this is all processing
and this is usually where we are entering more application layer like things and application
wants to do with that data it got through the event delivery and um and the processing part is
quite interesting because this is where like yeah things get a little bit more let's say custom
you know different applications might need different ways of processing things some some
want to look um you know um process um uh peer-to-panda encryption stuff some others want to maybe
do auto merge um you know because they're building a text editor and um there's like different ways
of processing that information these these events and um so i think this is basically like the
separation of these two worlds and i think by separating that it also allows us to
write software in a way where it is actually like walkaway meaning if you have that processing part
separated in a completely different space then where that data came from doesn't matter
and therefore it can always be swapped out how the data comes to you um you know which is
important for walkaway that's a quality we want to always have so if one day the internet goes
down you can still use your application because it didn't matter where the data came from um and
all what transport it arrived to you so it's more like uh it's it's almost like uh um yeah like uh
like a check um like a self-check like uh uh yeah like a corrective we always have for ourselves
so whenever we write it code we always make sure that this is never violated this sort of
guarantee this sort of separation yeah that's really cool to hear and i think that would be
interesting for other protocol developers to take note of as well um so and we could totally dive
into that as a rabbit hole just like there's many other things we could also dive into like for
example i've been thinking about this whole thing of the terminology and why it's important and
we touched on that in past conversations briefly but yeah i'm not gonna get distracted and instead
i'm gonna hold my tongue and bite it and circle back to um data types and uh you mentioned before
that peer-to-panda uses append-only logs and just as recently as this last summer there was a
really interesting discussion between or conversation uh that you moderated between uh aliyoshi and
samti on data types and i'm curious to hear your thoughts on this and whenever the video comes
online i'll link it in the description but i'm also curious to hear your thoughts on append-only
logs and then i have a follow-up question from something uh power source asked me before this
conversation actually wow cool okay wow there's a lot there yeah okay so first question
how i what i think about the discussion between aliyoshi and samtiago um so hyperhyperspace the protocol
of samti um actually uses uh DAX um i always thought it was append-only logs but it is uh like
actual DAX i think he changed over time what is the the core data type there but um and that's
directed acyclic graphs yeah exactly and exactly and aliyoshi is like you know a big fan of
like last right wins wins key value ranges um and the big difference with these is
you know you have to imagine whatever you put in a key value store whatever was there before is gone
you kind of overwrite what was there before and that says some nice qualities because you know
you can be sure it's deleted forever at least from your computer um it makes it very simple you
don't have to mess with like more than just like put it in a slot and you know and then it's there
and whatever whatever was there before is gone um while a DAX or an append-only log has this notion
of a history so you append something to it and what was there before stays right you just append on
top of it um and this has pros and cons um the thing is uh whenever you need history
then obviously a DAX and an append-only log is so much better because um if you need that on top
of a key value range then you're basically building a DAX on top of that so you would start like
pushing a DAX into that key value store um you know it would sit if you would basically have
the whole thing and then the whole blob would just be moved into one slot um and um uh you know
that's not very nice um and why would we want to have history it really depends on the application
but i think um yeah there can be reasons where you maybe need to like go back in time and and and do
something again and that usually comes for example for certain moderation scenarios you know someone
has been writing something and concurrently uh they've been removed from the group uh now you
maybe want to go back into that data type and going back into the past and remove these edits um
you know that will be harder to do if you don't have history um another thing where it's important
is maybe um yeah bucentine fault tolerance so um we uh we need sometimes the past because we need
to understand where did someone come from what rights did they have in that moment um in the past
and was that violated somehow um these these things are important to understand
to to build certain uh security measures and and and and like bucentine fault tolerance measures um
so i think i think the the the willow folks they always call this like fancy CRDTs um or like yeah
and i think they're not very big fans of that and i think they have a really good point of
of um doing that because it's true that you can build a lot of things with very little
um but i think there's also space for you know history um because there's a lot of peer-to-peer
problems we can only solve with that um and um so yeah i think it's it's like it's like it's
basically like a choice one needs to make when building an application and um and um um i think
we're just similar maybe to the terminology question you try to avoid
you know i think we should we should we we we we we start to just get better at like
describing these pros and cons maybe and and the requirements our applications need
and then maybe one day we can actually communicate that very well to application developers
and maybe there's a culture of application developers emerging we start to uh you know
communicate these things to each other in a way where you know it will not be a question anymore
you just take that or that based on what you need to build um i think that's such a beautiful and
succinct summary of the conversation and the conclusions one can draw from it and it makes me think
of uh silo was was there uh d webcamp and uh they're trying to build this like atomic referencing
where you can reference also like down to specific sentences or tables etc and they're trying to
do it and appear to appear way right now is not completely but still um this kind of scenario is
where DAGs would be super relevant uh especially with like the whole history and being able to see
the modifications that have been made but at the same time privacy is not great in those kind of
systems um like aliasha pointed out uh from willow uh you want to be able to delete things for privacy
and especially like the metadata as me and aliasha talked about in uh the episode as well um
so the question i got from power source is related here as power source was wondering
how you deal with deletion in peer-to-panda and i know you have dash chat and i'm wondering
a bit how do you relate to it what what um guidance and security advice do you give for people who
are building communication means over peer-to-panda yeah so you know like i mean um there is i think
there's a couple of like uh things around append only locks which are usually criticized the first one
is um you know you can't delete it it's append only it just grows forever it starts wasting your
your hard disk space and then your computer crashes um the other one is uh yeah it forks so suddenly
you you you broke like your eventual consistency guarantee because there's two versions of the same
lock and depending on with whom i think what they're gonna see different things um all of this we know
from secure scuttlebot um um and the third one is like yeah and partial sync um all of these
like i just want to have a part of the lock without breaking its whole integrity and so on and um
peer-to-panda addresses all of these things so um obviously we just didn't take the scuttlebot model
and um went for that without like learning from the from the you know the bad parts of it um
so uh like in peer-to-panda you can prune a lock at any time so if your lock grows to a point
where you don't need that information anymore you can just say please delete everything
from here on um it's like it's like a it's like a flag you're raising and you just say whoever
observes this lock now from sequence number 17 you can delete everything which was published before
that point and so you could be really um like um uh like as a provocative example you could say
prune your lock always at sequence num like as soon as it reached a length of one you know um like
as soon as your lock has the length of one just delete everything and then you're basically back at
willow now you are in in in a pentony lock which has no history um and that's possible to express
with peer-to-panda we can say our lock never grows beyond one item um and when it does it just
gets pruned um so now you're you're back in no history world and we can still do that on top of
a pentony locks um i wonder what al-Yosha would think about this description i think he would say
then yeah this is like it doesn't have ranges and whatnot i mean of course um there is like yeah
there is like different things but i just want to say in terms of privacy we're back in the same
guarantees actually um yeah and um um so this is one nice thing we can do and uh what we basically
say is again is up to the application to decide when they want to prune um so this is one thing
another thing is um we separate the actual payload from the lock integrity part so when someone
sends a message uh that message is you know hello sennah and that message is protected by
you know like the signature and you know like the backlink and all of the you know a pentony lock
things but we can always delete this uh payload uh without breaking the lock integrity
that's kind of like a you know soft delete where you just say okay whatever message was delivered
let's just remove that message we also call this off chain uh like the data is not on the chain
on the hash chain um it's it's it's like expressed outside of that and independent
it's still protected the integrity but we can delete it without affecting that integrity
and um so this is another nice thing uh developers can do um if they if they just want to want
some content to be gone and uh you know the metadata is you know they're fine with the metadata
being around um and um yeah and then i think the last thing the forking uh this is you know like
that's that's another thing so our appendony locks day they are they can be forked um we don't
recommend it i mean it's uh you know they're more efficient when they're not forked uh but if
they are forked by accident um for example they will not break then basically have like mitigations
to like to like detect that and and and be fine with that um and um and that also allows you
actually to by detecting that that now allows you also to like look into business and fault tolerance
uh systems because a fork can be now considered you know let malicious acting and we might want to
record that event um this is like research some people in basal are doing uh we're not so
interested in that but you know these are like suddenly features which arise from this sort of thing
and then yeah and then the the other thing not everything is written in one lock so it's not like
in scuttlebutt where like everything you would do is like written in one massive big lock so
in peter pandan we can write as many locks as we want at the same time and usually
they're very small so i think we rarely have seen applications having like locks longer than
100 items um it's usually something between one and 10 or 15 um oh wow yeah so you know like i think
just like long locks sort of thing is a quite um yeah it's a quite um thing of the past
thing of the past yeah we don't really observe that so much anymore yeah that's great to hear
that's what crash my computer and then you can and then you can also delete whole locks right so
when you start now having many locks then you can have like yeah you can also just delete the whole
and that's totally fine and also similar you can also express locks in in sorts of groups and then
we can say delete everything in that group so then all the locks will be gone um which is you know
like a nice thing as well now we're actually nearing time oh it went so fast um yeah i really did
i still actually have a few questions so first up modal what's up what's the gas
yeah um so yeah we just had an boiling the ocean event in Berlin that was really nice um so we
have been been meeting great people and and hacking on reflection and other things that was
really cool there was someone who brought like NFC to the table which was fun to like look into
and um yeah um i think the next boiling the ocean is happening soon after the all systems go
conference um i don't ask me about dates right now i think it's October um we'll link it in the
description yeah and another big thing which happens um it's been brewing for a while but now
finally it's official is that modal got a sovereign tech fund grant of half a million euros
yeah this is pretty cool and there's a like amazing team like working on that like
Adrian and Sebastian for example from modal and Kate is also involved in the administrative parts
and and Katarina and um yeah this is a very big grant for flat pack and portals work um and that
indirectly affects peer to panda like it's not really a peer to peer grant unfortunately
but it is uh it is still cool because this all is like work towards you know this whole host
environment question of like how can we bring peer to peer UX and UI patterns and components
into the operating system yeah and portals will be a very big part of that so like how do you
ask for access to uh share data with someone or you know um to your uh contacts and so on
so indirectly there will be some work now being done with that at least in terms of like
improving security improving the stack making it more modern and so on and speaking of grants
yeah uh yeah one invention pillow
exactly so pillow that's a peer to panda plus willow yeah yeah exactly and um let's see if
you stick to the name um yeah um but uh exactly this is like a grant we got from an lnet
and it allows the willow folks to work on their um yeah um protocol to put and get data into
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
but yeah this this is money for them to like specify and and implement this protocol
which is great for us because then peer to panda can use it to store our operations from our
append only log into willow so talking about like uh yeah um different base conversion data types
now we store one and another um which is also interesting i think and the cool thing here is
what we get then from willow is um really need access control for their capability system
metal cap and now these willow notes can sync with each other and um we can express like access
control for that and um yeah and then we have we have a nice way to like query these ranges and
can map that back to our data type and we use that for um for support notes which is something
we call um highly available or more available um notes in the network so when everyone is offline
and you still want to get that data from somewhere then you can talk to a support note and this is
where you might get it from um and combined with our encryption scheme we can have that data fully
encrypted on on a willow peer so they will they will not really know what they're storing this is
yet again one of those things i wish we could dive more into but Andreas i'm sorry you're gonna have
to come back another time yeah um so you also got another grant for more sneaker net stuff i heard
of yeah exactly yeah this is coming from the breakout program uh from equality uh this
Montreal based organization and uh there we are um um yeah working on something we currently
call the like the multi-plexer which is not a good name but it's basically switching between
different transports and different ways of event delivery um so you know you're building
application and you can just switch from Bluetooth low energy to uh the internet or to um yeah
Laura and yeah um switch between all of these different transports depending on what's available
to you and uh what makes sense maybe also for certain kinds of data um and uh and as part of that
we are also exploring building like alternative yeah alternative ways to exchange data and
in peer-to-panda and currently it's open what that exactly is i think it's like as part of the grant
we also conducting research and we're talking to people to see where the priorities are um but you
know like overtour over i2p over delta chat um over Bluetooth low energy advertisements over
reticulum mesh tasks take mesh core uh there's a lot of options you know to pick from uh yeah
uh exactly uh you know over the over the bit torrent dhd and whatnot um so there is like
there's like many many options and we basically just need to prioritize based on uh user feedback
so on that note we're going to have to round it off and thank you so much for joining
here today andres it was a pleasure having you yeah thank you that was fun yeah thank you
looking forward to the future developments and whatever is coming out and uh speaking of
uh spacious is another app yeah right spacious spacious not using peer-to-panda yet but they are
interested in doing so yeah i thought they said i talked to Alex and they said they were using
paper oh wow okay wow then they are further than effort okay well amazing okay cool yeah i think
this is the thing right now there's so many people doing things with peer-to-panda right now and it's
yeah it's hard for even you to talk yeah it's really nice well that's a good problem to be having
congratulations and talk to you later yeah talk to you later bye bye
SolarCast