FirePortal: Revolutionizing Decentralized Hosting for Handshake Domains with IPFS

In a recent SkyInclude tutorial video, Nathan Woodburn, a key contributor to the Handshake community, joined the host to discuss his innovative project, FirePortal. This project aims to integrate Handshake's decentralized domain names with IPFS (InterPlanetary File System) for decentralized hosting, creating a fully decentralized web experience. Nathan explained how FirePortal uses a simple TXT record to link a Handshake domain to an IPFS hash, allowing seamless resolution of decentralized content. He demonstrated the process using Pinta, a free IPFS pinning service, and highlighted the potential for enhanced security, as the cryptographic proof of content via the TXT record makes it harder for malicious actors to display fake sites. Despite occasional delays due to IPFS's decentralized nature, FirePortal offers a promising solution for hosting small-scale websites (up to 1GB for free on Pinta). The discussion also touched on the current reliance on centralized A records for browser compatibility, with hopes for more decentralized solutions like CNAME records in the future. Nathan’s work underscores the growing activity and potential within the Handshake ecosystem, blending decentralized domains and hosting for a more secure and resilient internet.

Transcript

start.

Yes, button or something.

All right.

Thanks, everybody, for tuning in to our SkyInclude tutorial video.

I have, and we have Nathan Whitburn back with us, a regular and a very important contributor to the Ganshi community.

So thanks for coming on, Nathan.

My pleasure.

Thanks for having me.

Yeah, I mean, we haven't done a SkyInclude video in a little while.

I feel like so many things are getting busy now, right?

In Handshake, I mean, people, I just heard Kiba's back, getting back involved again.

You built this fire portal, ShakeStation's getting busy.

I'm seeing a lot of different activity, which is always exciting.

And it's always what's impressed me about Handshake as a project or as a protocol is, I do feel like it's definitely, it passes, in my opinion, decentralized and, you know, just control around the world, building and doing.

It's crazy because it was, like, dead quiet for like two months ago.

Yeah, right.

Yeah, it was scary quiet.

Maybe you felt the same, but now it just seems like it's just, other people are saying the same on Twitter.

I'm seeing, like, Raul says there's lots more activity and other people are talking to me.

So, you recently, so it's getting to the, well, summer here, but winter for you was summer in the northern hemisphere in June.

Yeah, winter for us.

Winter for you down under.

It's pretty warm today.

I think you get up to 12 degrees.

Yeah, get the tank top and shorts and flip-flops.

Yeah, something like that.

So today we're going to share what you've built is FirePortal and I get to learn myself too.

So, this is something I've actually have always been wanting is, you know, Handshake is what everybody knows is domain names, but there's, of course, the other part, whether it's web2 or web3 or internet, you have a domain, but you also need a host, right?

So, the hosting- It's like having a domain with nothing on the domain, right?

Yeah, we need stuff on them.

And of course, you know, I've got a lot of videos I've done about, you know, centralized hosting with a Handshake name, which is somewhat easy depending on the host.

But, you know, to actually have a decentralized host with a decentralized domain feels pretty decentralized and exciting and proper.

So, I believe that's what FirePortal does.

So, basically, I'm not sure if you remember a while back, Namebase had D-Links.

Yeah.

Using, I think it was SIA or something like that.

Yeah, S-I-A, yeah, S-I-A and then- Yeah.

So, SIA basically closed down and I've had a lot of people saying, where's decentralized links?

So, I decided IPFS, I don't think that's ever shutting down.

It's pretty much mainstream by now.

So, why don't we use IPFS for storage and just have a simple TXT record to an IPFS hash, which just points to the data.

So, basically, that's what FirePortal does.

It just goes, here's the IPFS hash.

As soon as you type in your domain, it looks it up, does the IPFS resolution for you, and then gives you the content.

Yeah, I think we'll have a demo in a second.

Yeah.

My question back to you is, I'm not saying I'm an expert at all, but I recall with IPFS, there is some kind of cost for pinning, if I recall.

It depends.

It depends.

So, there are quite a few pre-pinning services.

So, I'll show an example using Pinta, which is free for, I am not 100% sure, but I think it's either one or five gigabytes.

One gigabyte.

So, as long as you don't store a whole gigabyte, you should be fine for free storage with Pinta.

There are a couple other paid ones, if you need more storage.

But if your website is a gigabyte size, probably you should fix it.

That's a little bit big for you.

Nobody wants to wait for a gigabyte page to load.

True, true, true.

Okay.

So, thanks for answering that.

But maybe go to screen share, and if you want to show us, that's the best.

Okay.

So, I've just got a simple single page HTML file.

So, I should be able to just show you exactly what it looks like.

For some reason, I'm not seeing.

I'm just...

It says it started, but I don't see it.

Let me just go back and double check.

Maybe on share, share again.

We can edit this part out.

Yeah, we'll see.

Yeah, we'll just see now.

No, it says has started sharing, but it's a black screen.

Let me just stop sharing.

Yeah, I think sometimes it's pre-start.

Yep.

Yeah, never know.

Technology, right?

Yep.

Weird, because before we started, it was, I saw your screen, but now it's still...

I can show you in Telegram, but it's just saying it's...

That should be showing up.

No, I'll send a screenshot to you.

Too easy.

Who knows?

I just showed you what I see.

It's what I see.

We actually want to do it.

Yeah, I just sent you on Telegram what I'm seeing.

So, I don't want to If you double click that area, does it work or?

It just pulls the full screen, but it's still showing black.

Yeah, that is weird.

I mean, we could even disconnect, reconnect, but that's...

Yeah, let me just...

Because it should be working fine.

I can just show a window, which that didn't work.

I think sharing full screen usually works, but it doesn't want to do it.

Yeah, I mean, I don't know if you see what you see on your side, but...

On my side, it just says you are screen sharing.

That's it.

Maybe it's because you shared...

Maybe because you shared already, but I don't know what I...

I don't know, we could just reconnect.

I mean, I can't think of any other...

Yeah, I'll just leave and rejoin and see if it works.

Okay, I'll leave it on, so I don't...

Yeah.

Okay.

Okay, let me just test if screen sharing works.

Watch as it doesn't work or something.

There we go.

I see it.

Now I see it.

So I don't know if there's any difference on your side, but...

Who knows?

It looks the exact same.

All right.

Okay, so I've just got a single HTML website, which I'll show you basically what it looks like with no CSS or anything.

So what you can do on Pinta, which is a free IPFS hosting, you can just go add, do a file upload.

Where did I store it?

Now comes the hard part.

Where is it?

It was the HTML file.

Exactly.

It was in documents, handshake, Sky Include.

There we go.

So you can just upload a file, call it Sky Include, single, it's just a single page, make sure it's public, and you can just upload it.

It should be very quick.

And then you want to copy the CID or the hash of the file by PFS.

And then you've got a domain.

I'm just using one from Namebase, but you can use one from anywhere.

Where is it?

Here we go.

In our name server records, not in the blockchain ones, but in the name server records.

If you want to check a TXT record, let's just check it on the root domain, IPFS, I think it's usually lowercase, equals, and then you just have that hash.

Okay.

If we save that, then if we go to file portal, what was the domain?

TLDEO.

Then we should be able to go TLDEO, and fingers crossed, it should just show that page.

Hopefully.

Every now and again, the DNS takes a little bit to propagate.

It'll probably happen because we're demoing it.

We'll see.

But you don't have to, this is just a way to visit, view it.

Or is this, you have to do this?

This is just to view it.

That file is already up.

You can have a look at it in another portal.

So for example, I, did that work?

No.

Oh, it says it couldn't find the IPFS file, which I don't know why it can't, because it's right there.

Who knows?

Unless Pinter is being annoying and not wanting to actually upload it.

Do you have another one that you've done before?

Yep.

So Pinter should work fine, but I'll just use my own IPFS portal.

Let's try the multi-page site.

This has just got, upload, it'll show you.

It has an index and it's also got some styling.

So it looks a bit pretty.

If you're having your own IPFS portal, you need to make sure you pin it, which is free.

Then you just copy the CID of the whole folder.

Yep.

And let's check that on our subdomain.

So if this works, we can see, call it multi.

IPFS equals, and there's the hash.

Okay, and we'll just go multi.tldo.

And that should then look up this hash from the txt file and hopefully should host it, unless something is wrong with my thing for no reason.

You never know.

Sometimes it just does not want to work.

Yeah.

I haven't played with these in a while, but in the past I...

Yeah, I do miss, you know, they had that portal.

Oh, there it is.

Well, some reason the CSS hasn't properly loaded, but I'm assuming that might just be...

Oh, I can probably type a check.

It says the CSS has loaded.

Maybe I just didn't make it look pretty.

But yeah, so it's got two pages.

There we go.

It's got a main page and an about page.

Okay, now the CSS is loaded, yeah.

Yeah, I think it was just taking a second.

So that's all on IPFS.

So you've got this giant link here.

What you could also do, if you go to the main page, is...

How to set up a domain.

You should add an A record pointing to this IP address.

Now, this does make it more centralized because you are basically telling people to use my portal.

In the future, it would be nice if we got more people having their own portals, so they can do this themselves.

But you could just go multi, add this IP address, save.

Might need a wait a minute or two, we'll see.

Then if you go to multi.tldo, that should then...

Not sure why the CSS did not load that time either.

I think it's just a delay or something.

Maybe.

I'll have to check later.

But that should show the page.

I'll fix that, so it actually loads better.

Okay.

But in general, it should look like this.

And pinta should work.

Watch as it works now.

Let me try the original page.

Will it work?

Maybe not.

Yeah, IPFS can be a little bit slow because it is decentralized.

So every now and again, a file takes a while to propagate.

Yeah, I mean, this is always the complaint from non...

I mean, even technical, but non-technical is decentralized slower.

It's decentralized, but yeah, it's distributed.

So it just takes longer.

So it has to be on a...

You said you can't be on the blockchain record.

So you can't...

Because you could put a text record on blockchain, but it wouldn't work.

You can.

The problem with that is it's a little harder to do a DNS lookup for on the blockchain.

So I might add support for that as well.

If you have it on here, you also won't...

Well, an A record wouldn't make as much sense because that then is a centralized A record with a decentralized TXT record.

I mean, you can, but there's a little bit of a why have a decentralized TXT record when the A is already centralized.

I mean, there's sides to that.

We've discussed this on rerecord proposal, but because they can't take the domain to keep hosting, but you can just update the hosting.

With a TXT record, I guess that is basically the authority of the content of the site.

And the A record is just how to access the content.

So in a way, it makes more sense to have the TXT record decentralized.

Cool.

It makes sense.

Great.

Basically, the TXT record has the content hash, the IPFS hash.

So if that was decentralized, then somebody could say with cryptographic proof that that is the correct content for the site.

So for example, what's a DEX exchange, so Uniswap or something like that.

If they had a handshake domain with that TXT record of the IPFS hash, then if anybody was trying to show a illegitimate or fake site, they would need to be able to have access and set the records on the blockchain, which is quite a bit harder than hacking into a online name server system.

So in a sense, it makes it more secure.

Okay.

All right.

I think that's good.

I will get this on the channel.

I've got some notes.

So just to summarize, of course, we're still early.

I've learned this also at Hamsa and everything.

I mean, Web3 and content sites and content businesses are real use of it still seems early, but I appreciate what you're building.

And yeah, the idea is a decentralized host and a decentralized domain, handshake domain, IPFS hosting.

Honestly, I'm having a little bit of trouble grasping, but I guess the A record points to an IP address.

The IP address is centralized.

So if that IP was to turn off, then it would not work.

So that would be like a week to use the A record.

A record in that case is just saying, well, mainly for people to resolve the same in any browser because browsers inherently don't have a decentralized resolution method.

The only way I can think of at the moment is having an IP address.

In the future, we might have like a CNAME or something like that.

So we can have a list of a couple of public nodes to make it more decentralized, but it doesn't have one point of access to view the content.

Okay.

It's not needed.

Just makes it easier.

Makes sense.

All right.

I think we're good for now.

And thanks.

Too easy.

And it's ipfs.woodburn.au, right?

ipfs.hshosting.au.

Excuse me.

Yeah.

But I think I should redirect.

So yeah, woodburn.au.

It just points to the same one.

Okay.

Too easy.

All right.

Thanks so much for sharing, Nathan, and what you do for the community.

And we'll get this out for everybody in the coming days.

No worries.

All right.

Catch you around.