Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

p2panda

@p2panda@autonomous.zone
mastodon 4.5.11
  • Open on autonomous.zone

Building blocks for peer-to-peer applications

997 Followers
69 Following
50 Posts
Joined April 14, 2023
web:
https://p2panda.org
git:
https://github.com/p2panda
Open post
p2panda @p2panda@autonomous.zone
· 8mo ago
We just tried out our collaborative text-editor Reflection on a smartphone using @postmarketOS@social.treehouse.systems and are a bit blown away by how cool that was. All it took was to install it via the Flathub store. #localfirst #p2p #postmarketos
198
14
101
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago

Hui! This is #p2panda doing #localfirst sync over #LoRa in a #mesh network 🐼 📻

We're experimenting currently with a log-based, replicated delay tolerant / store-and-forward protocol using the RNode transceiver firmware. All very early but fun!

autonomous.zone

a federated autonomous zone

57
8
20
1
Open post
p2panda @p2panda@autonomous.zone
· 4mo ago

v0.6.0 of #p2panda has been released! 🌱 🥰

The star of the show is undoubtedly our new Node API ✨

If you've been dreaming of an out-of-the-box #p2p stack with built-in networking, discovery, bootstrap, #localfirst sync, event streaming, causal ordering, storage and more...this one's for you!

Here's an example of a simple, collaborative TODO list CLI application for a first taste of the new Node API in action:

https://github.com/p2panda/p2panda/blob/main/p2panda/examples/todo.rs

Release notes here:

https://github.com/p2panda/p2panda/releases/tag/v0.6.0

autonomous.zone

a federated autonomous zone

33
4
24
0
Open post
p2panda @p2panda@autonomous.zone
· 3mo ago
Speaking of p2panda in the wild: @d1@autonomous.zone will soon be hosting a group discussion and hands-on workshop exploring peer-4-peer: an approach to building digital tools rooted in the concepts of mutual-aid, free software, offline-first and peer-2-peer. p2panda hacking in Go?! :shocked_pikachu: Our excitement levels are at all-time highs! https://hackersanddesigners.nl/exploring-peer4peer-with-p2panda.html #p4p #p2p
hackersanddesigners.nl
15
2
5
0
Open post
p2panda @p2panda@autonomous.zone
· 4mo ago

Thrilled to announce that we're part of this year's @PrototypeFund@mastodon.social cohort in partnership with the folks at Dash Chat 🎉

We'll be working on Dash Router "delay-tolerant relay protocol" 📻📡

21
0
3
0
Open post
p2panda @p2panda@autonomous.zone
· 8mo ago

We're at #FOSDEM with two talks!

🐾 Walkaway Stack: Radical, infrastructure-independent peer-to-peer systems
https://fosdem.org/2026/schedule/event/J3FLC3-walkaway-stack/

🐼 Towards a Local-First Linux Desktop with Modal, Reflection and p2panda
https://fosdem.org/2026/schedule/event/MCVBNK-p2panda-modal-reflection/

autonomous.zone
29
2
23
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Alright! This is it and was probably the longest post we've ever made. Phew. Maybe it got a little bit clearer now where p2panda sits: We don't manage schemas, databases for fast queries of your application data or offer any fancy CRDTs for you, all of this are higher-level concerns for us, we just make sure your messages arrived securely and as privately as possible across any type of p2p network.
12
1
2
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago

Our @PrototypeFund@mastodon.social grant ends this week and it's been SO MUCH FUN 🥰

A lot happened as part of the program, our highlights:

🐭 p2panda's new networking stack
🐭 Reflection Beta Release
🐭 Boiling The Ocean events! Like 6x?
🐭 3x Reflection Labs Community Calls
🐭 GObject bindings
🐭 p2panda's new high-level API
🐭 Threat Modeling Workshop
🐭 Founding @modal@mastodon.design
🐭 User Testing & Feedback on Reflection
🐭 Endless discussions on UX/UI concepts & ideas

Come & celebrate with us here:

https://www.prototypefund.de/en/events/community-evening-01

prototypefund.de
12
0
4
0
Open post
p2panda @p2panda@autonomous.zone
· 8mo ago

We're still processing all the great discussions had at the P2P Basel workshop this year! Deep technical experience and insights were shared around the table, with folks from Uni Basel, iroh, SSB/tinySSB, Braid, Willow, Cabal, Qaul, Pijul and p2panda in attendance.

There was a lot of discussion about how we might share some of those conversations with wider circles, possibly through a podcast? Any interest?

https://p2p-basel.org/

p2p-basel.org
16
0
5
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
We're getting closer to a final overview of what p2panda is and how our APIs look like, where we draw boundaries with all our separate building blocks and so on. All of this is going towards a first release candidate for p2panda v1.0.0! So, what's left for the roadmap?
9
1
2
0
Open post
p2panda @p2panda@autonomous.zone
· 8mo ago

We're starting up p2panda drop-in community hours, with the first session happening on Monday the 9th of Feb at 15:00 - 16:00 (CET). Feel free to come hang out and chat about p2p or ask specific questions about using or contributing to p2panda. We hope to see some of you there!

Link: https://meet.jit.si/p2panda-community-call

meet.jit.si
11
1
7
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Hopefully it helped a bit with understanding where we are currently and why the work around p2panda's high-level API is exciting! We'll inform you about when the first version was released and more things we've found out! You can follow the work here or on GitHub.
7
1
1
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Having a more stable high-level API soon will also give finally a good API surface to build FFI bindings in different languages. We're looking at uniffi for that, together with the GNOME community we've already started building a GObject interface.
7
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
After defining this core concepts and APIs we really need to integrate our group encryption! We've been doing a lot of work on our offline-first, decentralised continuous group encryption scheme (p2panda-encryption). Combined with group management (p2panda-auth, renamed soon to p2panda-groups) we've built p2panda-spaces last year. There's a lot about it written here: https://p2panda.org/2025/02/24/group-encryption.html
p2panda.org
7
7
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Mostly it's last touches to our data formats, sync protocol and API design, naming of methods, concepts, clarifying semantics around error handling, failed streams and so on. All of this would mean that we can at least settle on a "core functionality" around event delivery and event processing. This requires us to let the system "simmer" a bit, have some time other developers use it and give us more feedback, we're learning slowly about p2panda from using it mostly.
6
8
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Support nodes are nodes which are "more online than others", which can hold onto your data for a while so everyone can download it from there when nobody is online. This is similar to DeltaChat's Chatmail Relays or MeshCore's Room Servers. The trick here is to encrypt your data fully, so no meta-data is leaked whatsoever before storing it on a support node. Applications should not bother about what's going on here, they just want to add / remove support nodes and manage access to them.
6
1
1
0
Open post
p2panda @p2panda@autonomous.zone
· 8mo ago

We're starting our drop-in community hours today! 15:00 - 16:00 (CET). See you later!

https://meet.jit.si/p2panda-community-call

meet.jit.si
8
0
4
1
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago
Replying to
@pojntfx @d1 @cblgh omg this is so cool 😻 We've played with doing Python and Go bindings on top of the p2panda Node API directly / without GObject using uniffi and https://github.com/NordSecurity/uniffi-bindgen-go but it got very clear very fast that it needs an actual Go developer to do this better 😅 unlike GObject which "directs" you to a certain way of designing your API for doing straight Go it requires an understanding of what's more idiomatic?
GitHub

GitHub - NordSecurity/uniffi-bindgen-go: Uniffi bindings generator for Golang

Uniffi bindings generator for Golang. Contribute to NordSecurity/uniffi-bindgen-go development by creating an account on GitHub.

4
9
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
So far we do this over the Internet using iroh to manage direct p2p connections, but we're prepared to offer the same level of abstraction for running over Radio-Protocols like LoRa or BLE, including mesh topologies. Application developer will mostly use the API to monitor and inspect networking and sync activity, restrict access and select available transports (QUIC, Tor, Mesh Networks, BLE, ..) while we make sure data is delivered as securely and privately as possible.
5
24
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
We want to integrate p2panda-spaces into the high-level API so you can conveniently add / remove members to groups which will allow us to encrypt everything towards the group's encryption secret, probably again scoped around a topic. Having a key agreement system like this protects your messages when relaying them across intermediaries, like "support nodes" or in mesh networks, with Post-Compromise Security and Forward Secrecy!
5
6
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
You can follow the work here where mostly already is implemented: https://github.com/p2panda/p2panda/tree/main/p2panda There's not much left for a release, except of the final touches on the acknowledgments and more documentation. Of course from this point on we'll continue still, there's more to do.
github.com
5
1
1
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago
Replying to
@thatv@stranger.social It's too early to say for now, we have a lot of reading to do but we really love Reticulum and it's quality. We have the feeling that maybe, even if we wouldn't use the full power of Reticulum's cryptographic features (as we would bring our own, "more delay tolerant" and "more broadcast" ones) it should be possible to run this on top of it in any case (even if it's just using the "plain" destination type).
3
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago
Replying to
@d1 @cblgh @pojntfx sent you invites to a Signal group to coordinate 😻
3
0
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Our past work to make everything modular seemed to pay off: At any point it is possible to break out of the high-level design and plug in something else. The p2panda high-level API code is surprisingly thin and we're already considering making some parts public, so you can re-use them in other ways.
4
3
0
0
Open post
p2panda @p2panda@autonomous.zone
· 7mo ago

The Electric Spring Festival started in Huddersfield!

Sam of p2panda will talk about Toolkitty and our work using #p2p technology for self-organising events and collective resources at the "Creative Coding Lab Symposium" on the 21th February! 🐈 🐈‍⬛

Check out the program here:

https://electricspring.co.uk

... aaand Toolkitty!

https://toolkitty.org

#creativecoding #huddersfield

autonomous.zone
5
1
1
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago
Replying to
@thatv@stranger.social Right now we're "just" using the RNode (it's really well done!) with our own replicated routing protocol on top. We still need to evaluate if using p2panda-encryption is a good candidate to build a broadcast "transport encryption" for meshes, so you can do multicast for managed groups with FS and PCS over LoRa. Also our initial unicast key agreement is async as we use X3DH while Reticulum assumes that peers need to be "online" for secure links.
2
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Think about Operations as a "carrier" of any data for your application. Similar like you use an IP Datagram to send anything over the Internet (Did you know that Datagrams are specified to be transport agnostic?).
3
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Re-plays are also cool for rolling out updates or fixes btw! We can re-play everything or move the cursor back to a point where we need to re-materialise our application's state because something went wrong in the past. Okay, enough about event streaming, you get the idea now that p2panda's high-level API is actually something like a feature-complete event streaming system, but with an eventual consistency guarantee and causal ordering.
3
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
It's also cool to use the acked state to have multiple, independent clients consuming messages from the same "broker node". Like this we can imagine building simple web-based clients: Opening the web-page starts streaming the messages from the beginning and if we come back we pick up from where we've stopped last while the node does the p2p networking and sync for us.
3
13
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Internally we've made sure that all processing and changes to any data is happening in a careful, atomic way using transactions. This is a commonly overlooked when building p2p systems and data gets horribly corrupted when applications terminate unexpectedly without it. Together with acknowledgments we have all in place to offer crash resiliance.
3
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago
Replying to
@d1 @pojntfx @cblgh p2panda-gobject is hopefully helping with building GTK applications while p2panda-ffi is a more direct bindings approach (with the help of uni-ffi). It's more close to our Rust APIs. We would expect non-GTK developers to use the latter (?!) The p2panda-ffi repository is currently not published and by far not as advanced as the gobject version - as already mentioned it would also require a Go developer to do this right. Some help would definitely be appreciated!
2
6
0
0
Open post
p2panda @p2panda@autonomous.zone
· 8mo ago
Replying to
@lnxtx@layer8.space it is currently only available in the Flathub Beta store as things are still work-in-progress. We have instructions to install it here: https://github.com/p2panda/reflection
GitHub

GitHub - p2panda/reflection: Collaborative, local-first GTK text editor

Collaborative, local-first GTK text editor . Contribute to p2panda/reflection development by creating an account on GitHub.

4
0
0
0
Open post
p2panda @p2panda@autonomous.zone
· 7mo ago

Today is the second edition of our drop-in community hours!

15:00 - 16:00 (CET).

Feel free to come hang out, meet the team and chat about p2panda and broader peer-to-peer / local-first topics.

https://meet.jit.si/p2panda-community-call

meet.jit.si
3
0
1
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Now we have a system where we publish, sync and persist operations grouped by topics on top of any p2p network. With this data being available to us now we want to make sure to correctly process and stream it towards the application layer. For this we're borrowing many conceps from general "event streaming" theory, you might know this from NATS JetStream, Kafka or something like that, with the difference that we're not aiming for "big data centres" but decentralised and autonomous p2p networks.
2
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Publishing is a bit easier: We append an operation to the correct log, sign it, persist it in the database and send it to the networking layer, just in case we're already having an active connection open with someone where we can eagerly push the new operation directly to. If nobody is online that's not a problem either since we have a sync protocol to pick up on missed operations next time nodes connect.
2
11
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
When being subscribed to a topic you have something like a stateful "stream consumer" now. Every operation which runs through that stream gets processed, first on an internal system-layer where we check the log-integrity, prune the log on demand, order operations causally and later we'll also decrypt them here. After this we're forwarding the message to your application-layer, with a bunch of meta data and debugging info attached.
2
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
We can compose additional "system-level" features on top of Operations, by extending the header with information to help garbage collection / pruning, tombstones to delete multiple logs, vector clocks for causal ordering of messages for multi-writer documents, data to aid key agreement for group encryption and more! It would also be possible to add existing solutions, like Willow's Meadowcap or UCAN, to check against permissions with certificate capabilities.
2
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Developers generate a Topic (random bytes) to publish messages into it and subscribe to for receiving everyone else's messages. This is PubSub! Topics are a way to group your data, a topic is for example a Reflection text-document, or a single chess game session, or a chat room. Later we also want to divide the space up even more into human-readable strings you can then filter with wildcards (*). This is partial replication: You only sync the data you need.
2
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago
Replying to
@f_g@troet.cafe Exactly this! While LoRa or any packet radio would be "true broadcast" we can also build mesh network overlays on top of BLE connections to do the same.
1
0
0
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago
Replying to
@jackvalinsky.com @liaizon@social.wake.st @offline@autonomous.zone indeed, very actively worked on 😊 you can get a summary of what we've been up to at p2panda.org and this thread is a good intro to most recent developments https://autonomous.zone/@p2panda/116296878828115857
autonomous.zone
1
0
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
Any message you send is delivered on top of our "Operation" data-type. That's an single-writer append-only log with some cool features: You can have as many logs as you want, you can remove any past entries in the log (pruning) and it's robust to forks. It's a simple CRDT actually if you look closer! With append-only logs we are prepared to offer the same functionality over radio-based meshes as sync is cheap (state vector is exchanged in one message, constant-time) and broadcast-only friendly.
1
23
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
By default we're automatically acking messages from the stream for you, since this is a more advanced feature, but why is this important? Imagine your application crashes mid-way or you use it on a mobile phone where it got closed while it was processing something. If we didn't have a chance to ack the message it'll be re-played next time when the app opens again, giving us a chance to make sure we've processed every message at least once.
1
15
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
The Node API makes sure all synced Operations are persisted in a SQLite database, plus all additional state we need to keep around, like an address book, buffer to aid causal ordering, mapping of all logs to topics and so on. Later we will also store state and key material for group encryption, access control and so on here.
1
19
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
p2panda is designed with a clear separation of the "event delivery" and "event processing" layers. p2panda applications should not worry about _where_ their messages come from but only how they are processed. We make sure that other nodes who are interested in the same topic are confidentially discovered, to sync up on all missed messages, to deliver them to the processing layer. This gives them flexibility to run on top of any infrastructure. We also call this a "Walkaway Stack".
1
25
0
0
Open post
p2panda @p2panda@autonomous.zone
· 6mo ago
Replying to
The application-layer can continue processing the message delivered by this operation, now based on your own application logic. Often it'll be something like "move the pawn to field E4", "change the title of the document" or a chat message, or a Text CRDT etc. Finally we want to acknowledge the operation. This will mark the operation internally as "acked" and next time we subscribe to the same stream we will not receive the message anymore. It's something like a "read receipt".
1
1
0
0
Open post
p2panda @p2panda@autonomous.zone
· 7mo ago
Replying to
@valpackett@social.treehouse.systems It is our heart project! Unfortunately we could not secure funding yet and priorities changed but we're planning to carve out more time for it 💖
1
0
0
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago

@ex_06@puntarella.party active development is somewhat on hold for the moment as some more funding is needed to get it from "proof-of-concept" into a stable useable condition. The core team has just applied for an NLnet grant for this work actually, so fingers crossed 🤞 development could restart later this year.

0
0
0
0
Open post
p2panda @p2panda@autonomous.zone
· 8mo ago
Replying to
@Greenheart@fosstodon.org Thanks so much for the encouragement! The Modal website is simple HTML for the moment (so no feeds to follow) but it may be ported to a static site generator with RSS support at some time in the future. For now, I'd say your best bet is to follow the Fedi account if want to keep up to date with developments. @modal@mastodon.design
0
2
0
0
Open post
p2panda @p2panda@autonomous.zone
· 5mo ago

@ex_06@puntarella.party thanks for your interest 👋 are you interested in using it for something?

0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 03:00:20 UTC