Scaling 3Speak: Introducing IPFS Hot Nodes & the Traffic Director - Time to Upgrade your Encoder Nodes
4 comments

Hello my friends
The time has come for a major shift.
Some weeks ago, I shared a post and a video outlining an idea that I believe gives 3Speak the ability to truly scale. And without scaling, there’s honestly very little to look forward to. That’s why focusing on this—even while many other things still need doing—made sense to me.
IPFS Hot Nodes
I’ll admit it: I’m somewhat reinventing the wheel. But there’s a madness to my method.
Up until now, every video uploaded to 3Speak ended up on the SuperNode immediately after processing. This worked okay, but it also meant the SuperNode worked alone. One powerful server had to carry the entire load.
That’s where IPFS Hot Nodes come in.
Think of a Hot Node as a cache layer—a middleman, or rather, a middle server. Its job is to temporarily store and deliver newly uploaded videos, ensuring playback speeds are as fast as possible.
A few days ago, the first IPFS Hot Node went live. If you’ve noticed faster video delivery lately… now you know why.
Instead of a massive server searching through millions of records, a smaller and slimmer server only has to search through thousands to find the video you requested.
It really is that simple.
I’m writing this post both to explain why this exists and to outline the next steps needed to fully roll it out.
A key part of this system is the
—a service that allows 3Speak administrators to dynamically add or remove IPFS Hot Nodes from our decentralized infrastructure.So What? I can almost hear you asking.
⚠️ If You Operate an Encoder
It’s time to pull the latest code.
If you don’t update, your Encoder won’t break, but it will default to the legacy upload flow—which is exactly what we’re moving away from.
What do you need to do?
1️⃣ Update the Encoder
Download the latest code from the repo:
https://github.com/Mantequilla-Soft/3speakencoder
If your remote is set correctly:
git pull
2️⃣ Edit your .env file
nano .env (or your favorite text editor)
Add the following line:
TRAFFIC_DIRECTOR_URL=https://cdn.3speak.tv/api/hotnode
3️⃣ Rebuild the Encoder
npm run build
4️⃣ Restart the service
If you’re running via systemd (recommended):
sudo systemctl restart encoder.service
And that’s it!
A successful job should log something like this:
{"level":"info","message":"✅ Hotnode upload successful: QmT2iey5D2mLNfFRBA65uvodDizCxJvYERttMa4Fnk7hXZ","timestamp":"2026-01-28T21:30:01.502Z"}
If you don’t see Hotnode mentioned anywhere, you’re not running the latest code.
Hot Node One
Right now, the only Hot Node running is owned by 3Speak and operated by yours truly.
That doesn’t mean it’s working in the dark.
Every Hot Node—including Hot Node One—has a frontend interface that lets anyone observe it in action. You can check it out here:
On its own, a Hot Node will:
Gradually migrate videos to the SuperNode for long-term storage
Delete any content not associated with 3Speak
Send notifications (errors, warnings, scheduled jobs, etc.) to the operator
In my case, those notifications land in a private Discord channel, so I can keep a close eye on things at all times.
The Plan. The Vision.
Just like with Encoders, the goal is for community members to run their own Hot Nodes too.
I’m working on making installation as painless as possible, but the idea is simple:
- The more Hot Nodes we have
- The smaller and cheaper each one can be
- The more decentralized video delivery becomes
- The faster the platform gets
Most importantly, Hot Nodes operate largely on auto-pilot.
A Hot Node reports to the Traffic Director when:
- It’s full
- It’s no longer accepting uploads
- It’s been disabled
- When Migration Errors Occur
- When it takes out the Garbage (Garbage Collection)
Traffic is rerouted automatically, downtime is minimized, and the system keeps moving—even when Murphy shows up. (freaking Murphy)
In the Next Few Weeks
@eddiespino and I will be doing some long-overdue cleanup and optimization on the SuperNode.
That work will begin once:
- All Encoders are upgraded
- We’ve had 7+ days of video delivery fully handled by Hot Node One
A fun fact
Hot Nodes continuously migrate content to the SuperNode (within the 7 day window). And if migrations are temporarily blocked—say, during maintenance—the Hot Node simply keeps storing videos until migration resumes.
This gives 3Speak resilience, flexibility, and breathing room.
TL;DR
- ✅ We launched a Traffic Director
- ✅ We launched the first IPFS Hot Node
- ⚠️ All Encoder operators need to upgrade
- 🚀 Hot Nodes can be community-run
Signing out for now, wishing everyone an awesome rest of the week.
— MenO
Comments