Make it SNAppy: The power and potential of Lokinet SNApps
Disclaimer: At the time of writing, Oxen was known as The Loki Project — this piece has been updated to reflect this name change
Lokinet is an incredibly powerful and versatile onion router. Lokinet allows for uses such as real-time onion-routed voice calls, videogame server hosting, and other applications that would be completely infeasible on existing onion routers due to their higher latency and inability to route UDP traffic. By design, Lokinet offers extremely low latency compared to many other anonymous browsing solutions, and because it operates on the network layer, it can route either TCP or UDP traffic, meaning it can handle both normal browsing and real-time data streams like audio calls — without any special configuration required by devs or users.
At the core of this revolutionary functionality lie Service Node applications — applications hosted by Lokinet users, accessible over Lokinet (and only over Lokinet), somewhat analogous to Tor’s hidden services. Service Node applications are powerful and versatile — but power and versatility don’t mean anything without a catchy name. “Service Node application” is a little clunky, after all. So we decided to shorten the name, and make it a little… snappier.
That’s right, Service Node applications are more commonly known as SNApps, and in this article we’ll be exploring what they are, what they can do, and how they can help you #StayPrivate as you use the Internet.
Lokinet SNApps in a nutshell
So, what’s a SNApp? Essentially, SNApps are a way of providing internet-based services securely and anonymously.
On a fundamental level, SNApps are actually really simple — a SNApp is any content, application, or service made accessible via a Lokinet .loki address. The most basic SNApps are essentially websites: throw a basic index.html file (saying Hello World, as is tradition) in the ~/snapp/ directory you create when you follow our guide to SNApp setup, find your .loki address, give it to someone else who’s also running Lokinet, tell them to pop it into their browser, and Bob’s your uncle — you’ve got yourself a highly secure onion-routed Hello World. Once you have Lokinet configured with a static .loki address, though, you can do much more than just serve static webpages — we go into more detail on this in the next section.
So SNApps are easy to set up — but why use SNApps when you can just use the normal internet — the ‘clearnet’? Since SNApps are accessed over Lokinet, they provide all the privacy benefits of onion routing — none of the servers you communicate with ever know both your IP address and the IP of the destination server. Only one server knows your IP, and only one knows the destination IP. Every other server in the chain is blind to both your IP and the destination’s. And with the power and versatility of Lokinet’s onion routing protocol, SNApps give you the ability to privately browse and use a wide array of websites, applications, and services, with all the anonymity of an onion-routed connection.
Lokinet SNApps: Limitless low-latency potential
It’s super-easy to set up a basic website SNApp. That means SNApps have the power to become anything you’d normally see doing in a browser: a blog just like this one, a social media platform, an online shopping platform, a video streaming site, a block explorer, or just a place to share a picture of your puppy with your friends and family.
Of course, it’s not limited to fun and games. Lokinet is serious business — and it has the potential to help protect people’s rights. Because of Lokinet’s built in censorship resistance, it’s a good fit for vulnerable groups which are prone to suppression — like news organisations, human rights advocates, and whistleblowers.
Websites are easy enough, but SNApps can be much more than just websites. Once you have Lokinet configured on the machine you want to serve a SNApp from, you can set up almost any software to listen for connections to the machine’s .loki address. So yes, you can set up websites (simple, complex, and anything in between), but you could also run servers for apps like Mumble or Teamspeak, or secure file storage and access solutions. One of our most treasured community members, TechnicalTumbleweed, even set up Quake III. No — not a Quake III server. Quake III. The entire game was served and playable in-browser, entirely routed through Lokinet. That’s right, onion-routed rocket launchers.
SNApps have even been used as a basis for other blockchain projects’ tech, like Arweave, a blockchain-based permaweb. Arweave’s Lokinet gateway fetches Arweave transactions through Lokinet, and the gateway can be further integrated into other applications, like in the case of Arweave’s SILO: SILO uses the Lokinet Arweave gateway to fetch transactions before decryption. For more on SILO, check out Arweave’s writeup over on Medium.
Not all SNApps are run from servers, either. You’ll be able to set up IoT (Internet of Things) devices like home security cameras and smart doorbells to be accessible over Lokinet, securing them against marauders seeking to exploit the growing web of IoT vulnerabilities. This is a pretty big deal, especially when you consider the tenuous privacy of out-of-the-box smart doorbell solutions like those from Ring. IoT devices have a lot of potential applications, from things as small as turning off the lights in the living room to as huge as sniffing out forest fires before they get out of control. With Lokinet, IoT devices can do all of those amazing things without leaving a security gap that’s wide enough for a double-decker bus to drive through.
Thanks to Lokinet’s low-latency capabilities and network-layer routing of both TCP and UDP traffic, almost anything that can be hosted and accessed over the clearnet can be run as a SNApp. The only limit is your imagination. The future of onion routing is waiting for you. Head on over to the Oxen Docs to check out our SNApp hosting guide, or to get the technical low-down on Lokinet itself.
You've got mail!
Sign up to our newsletter to keep up to date with everything Oxen.