Weekly Dev Update #143: Special Edition
1000 days of development. That’s right, for 1,000 days we’ve documented, dot-pointed, and shared all of our progress with you, right here in our Dev Updates. 143 weeks of work, all meticulously recorded. At Oxen, we’re always focused on building. Building Session. Building Lokinet. Building Pulse. Building Blink. Building a secure, private, decentralised future for the internet.
That’s a big part of the reason we’re so proud of our Dev Updates. They’re rock-solid proof of our principles here at Oxen. Proof that week in, week out, we’ve been hard at work improving our blockchain and delivering on our promises. We’re here every week, 52 weeks a year, with full transparency about what we’re working on and how it’s going. It’s so important to us that you — our community — can see what we’re up to.
Before we get into what we’ve been working on this week, we want to take a minute to get a bit sentimental and celebrate this huge milestone with all of you. Let’s take a stroll down memory lane and highlight some of the biggest days we’ve had along the way.
September 2018 — Service Nodes released
The building blocks of our network. This is where it all started. The Service Node network powers everything that we do, from messaging on Session to sending transactions — and this is when we released them into the wide open plains of mainnet.
August 2019 — Loki Messenger beta released
Session’s ancient ancestor Loki Messenger is unleashed on the world. Back then, Loki Messenger was extremely experimental, very basic, and looked very different to the Session we know and love today. We’ve made huge leaps forward since then — now tens of thousands of people use Session every day to secure their communication. But this is where it all started.
September 2019 — Lokinet beta released
The next generation of onion routing is born. The beta version of Lokinet is released, paving the way for a fast, lightweight onion routing solution. Fast forward to the present day, and Lokinet is populated with SNApps (including a totally private social network) and boasts exit node functionality — it’s well on its way to revitalising the world of anonymous browsing.
December 2019 — Blink released
In December 2019, our network became the fastest way to make fully private digital transactions with no security compromises. That’s it. That’s the paragraph.
February 2020 — Session released
After months of hints and a teaser campaign, Loki Messenger evolved into Session. Since then, Session has found a powerful voice and distinctive style within the private messenger landscape, along with huge user-base growth.
October 2020 — Pulse (Proof of Stake)
Going full Proof of Stake was something we talked about for a long, long time. In October last year, our PoS implementation — Pulse — hit mainnet. Corks were flying out of champagne bottles all over the place when that first Pulse block was confirmed.
January 2021 — Loki evolves into Oxen
Low-key Loki no more. The evolution of Loki into Oxen was a huge step — and one which has proven to be enormously positive. Over the last few months alone, the project has seen big growth and big opportunities. People believe in Oxen and its mission — and so they should. We have a whole lot of history backing us up. We’ve changed a lot since we got started as Loki, and it was time for those changes to be reflected in our brand and the way we talk about what we’re all about.
January 2021 — Session Protocol released
Back in the day, Session got its beginnings as the little Signal fork that could. But along the way, we realised that the Signal Protocol wasn’t a good fit for a decentralised messenger. It was time for Session to stand on its own two feet. Enter the Session Protocol: a lightweight messaging protocol that’s purpose-built for secure decentralised communication.
Whether this is the first Dev Update you’ve seen, or you’ve been around since Dev Update #1 all the way back in 2018 (when we were still low-key Loki!) — we want to thank you for sharing this journey with us. It has been amazing, and we’ve really loved having you all along for the ride. Here’s to the next 1,000 days and all the incredible things we still have left to achieve together. 🥂
Now, with no further ado, let's dive into this week's development progress!
This week, we continued building the new version of the Session open group server and the Session file server, which are developing quickly. Oxen Core finished up some final changes before the team begins internal testing in preparation for the next hardfork, the details of which are yet to be announced.
Export transfer wallet RPC call https://github.com/oxen-io/oxen-core/pull/1418
Update contribution rules https://github.com/oxen-io/oxen-core/pull/1416 (Thanks to community contributor buccella for this)
Extensive work this week on refactoring Lokinet QUIC code to allow communication between full Lokinet clients, liblokinet instances, and service nodes. We have a few more pieces to wire up and test this week, but the bulk of this integration is done. We also spent the past week testing code, fixing sundry issues, and addressing bug reports in the draft 0.8.4 release before pushing it out to Windows/macOS users.
Plainquic and liblokinet integration work in progress https://github.com/oxen-io/loki-network/pull/1576, https://github.com/majestrate/loki-network/tree/liblokinet-api-2021-03-05
Make IPv6 more configurable https://github.com/oxen-io/loki-network/pull/1581
Fix lokinet startup failure when IPv6 support is disabled at the system level https://github.com/oxen-io/loki-network/pull/1583
Link layer performance experiments https://github.com/oxen-io/loki-network/pull/1580
Fix OxenMQ dependency build issue https://github.com/oxen-io/loki-network/pull/1579
Improve random value generation to use cryptographically secure RNG https://github.com/oxen-io/loki-network/pull/1582
Fixing various small issues scattered through the codebase (no PR yet).
Session open group server
Add Github actions for checking code https://github.com/nielsandriesse/session-open-group-server/pull/8
Use structopt instead of argparse https://github.com/nielsandriesse/session-open-group-server/pull/7
Make options configurable at runtime https://github.com/nielsandriesse/session-open-group-server/pull/6
File storage and retrieval https://github.com/nielsandriesse/session-open-group-server/pull/5
Add rooms abstraction https://github.com/nielsandriesse/session-open-group-server/pull/4
Add authentication options https://github.com/nielsandriesse/session-open-group-server/pull/3
Refactor to use new receiving pipeline https://github.com/oxen-io/session-android/pull/486
Fix job serialisation for large job messages https://github.com/oxen-io/session-android/pull/483
Full list of commits can be found here https://github.com/oxen-io/session-android/commits/dev
Remove fallbacks to node-fetch https://github.com/oxen-io/session-desktop/pull/1549
Add copy URL menu and mark all as read option https://github.com/oxen-io/session-desktop/pull/1545
Fix bug with extension not sending if you don't have contentType set https://github.com/oxen-io/session-desktop/pull/1544
Locale update https://github.com/oxen-io/session-desktop/pull/1543
Refactor Visable and ControlMessage types https://github.com/oxen-io/session-desktop/pull/1542
Fix microphone toast notification https://github.com/oxen-io/session-desktop/pull/1540