"Tent is a protocol for open, decentralized social networking. Tent users share content with apps and each other. Anyone can run a Tent server, or write an app or alternative server implementation that uses the Tent protocol. Users can take their content and relationships with them when they change or move servers. Tent supports extensible data types so developers can create new kinds of interaction.
Tent is for sharing with others and seeing what others have shared with you. You can ask to follow other users and other users can follow you. Because you control your own Tent server, it is also a good place to store things you do not want to share with others, a sort of personal data vault. It can also be used as a secure site login replacement so you don't need passwords when accessing other sites on the web."
There are two important pieces to your Tent identity.
1: Your Entity (this is the url you're referring to. I could be https://jonathan.tent.is and then change to https://titanous.com). Think of entities like a name. You can change it but you really want to think carefully first. Other Tent servers know you by your entity. If all you told someone was your entity (https://spindritf.net) their Tent server would contact the URL where you have saved information about your Tent server. It's all you need to find out someone's Tent information or start following them, like a username. When you change your entity, your server sends out a post to all your followers and lets them know about a profile update with a new entity URL so they can update their records.
2: Your "canonical tent URLs" (the addresses of the servers where you can be reached). These are literally like your address. You can have multiple addresses and move any time you want. Again, your server will simply send a post to your friends letting them know you're moving and where to reach you. In both of these cases you probably want to give other servers some time to update their records before moving just in case.
There are a few edge cases worth mentioning. This system does not actually depend on DNS, but most users will. For example, instead of https://titanous.com I could theoretically list an IP address instead or a tor hidden service.
What does HN think about using this protocol to build a distributed publishing system? Like I'vegot this software that facilitates publishing a certain kind of post type, and each node of the software can subscribe to any number of other nodes. The problem is that each node will represent a tent server, not every person publishing on said node. I'm not sure if this woud be a misuse of this protocol, but its features are really well-suited to what I want to do.
The tent.io protocol looks very interesting. Architecturally the way e-mail works, mixed with the functionality of social networks all done over JSON/REST.
I wonder if it would be possible to implement a tent.io -> facebook/G+/Twitter bridge? A tent.io server, which instead of being backed by some sort of database, would instead read and write to somebodies existing social network profiles?
Some kind of proxy that would join Tent with other social networks would IMHO do wonders for the adoption rate. But at the same time it’s not what the existing social networks want, which is why it probably wouldn’t work. Google+ doesn’t have a write API at all and see what Twitter is doing with their API. See also my thoughts on Tent, http://goo.gl/lGnfm.
Interestingly, rstat.us already does this one way. You can post a status update there and have it automatically crosspost that update to Twitter for you. I've switched to posting most of my text-only updates this way, so my rstat.us stream shows life even though all my followers are still on Twitter (for now).
I'm surprised by some of the negativity here - it's a pretty neat service for an alpha. Sure there's kinks/ shortcomings, but it's very early days. They even seem to be ironing things out even as we speak (switched from 140 to 256 char status updates in front of my eyes).
Negativity appears to be the default response to bold new things on HN. Ironic really, for a site run by an incubator for bold new things.
Personally I'm liking Tent a lot. It appears to be the exact social networking application I've occasionally daydreamed about for the last few years, and I'm sure I'm not alone in that. Hopefully that's a sign that this is an idea whose time has come.
How do users behind NAT run their own tent servers? If they can manage to run their own HTTPS servers from behind NAT, if they have those skills (not to mention a reachable IP), then why do they need tent? Couldn't they just host all their content on their own server? I can see tent as providing some sort of coordination of user data hosted on different servers, but I'm not seeing how tent enables users to host their own content and have full control over it. Maybe that's not the goal?
Correct me if I'm wrong but what this tent idea seems to lead to is a proliferation of tent service providers, not independent users running tent servers behind consumer ISP accounts. If that's true, then how can we be sure these service providers will not adopt the same sort of annoying monetization strategies of providers like Facebook and Twitter?
By no means am I suggesting tent could not be useful. I just want some clarification of what problem they are trying to solve. (There is no shortage of problems to choose from. :)
If users have an Internet connection at their home and are willing to accept the potential reliability issues associated with hosting a server at home then, by all means, host a server at home. UPnP NAT traversal is decently-supported in many consumer-oriented routers, as is dynamic DNS.
I wish that the tech community hadn't lost sight of this and formed this artificial distinction between the Internet and the "home Internet". We could have been focusing efforts on making hosting services on servers in users' homes easier, but the siren-song of offering hosted services to create recurring revenue streams won out.
I think that low-power computers are the future of "always on". I'm migrating the "always on" home computers I use, and those of my family members, in that direction.
I don't think email is a good "host at home" candidate, personally. Anti-spam services benefit too much from an economy of scale that comes from shared hosting. Having said that, though, I've hosted my email (SMTP and IMAP) on a consumer-grade Internet since June 2004. I've had outages because of service-provider issues (Time Warner) once in awhile, but the outages of significant duration (24 - 36 hours) have been either I was using unreliable old hardware. In those outages my secondary MX picked up my mail just fine and I worked from cached email on my personal computers.
Assuming I was using more robust hardware or, for that matter, more simple hardware (a plug-computer that I could swap with a spare, moving an SD card containing all my email and configuration between) I wouldn't have ever had an outage longer than 8 hours since 2004. If the server was in a larger city (rather than the rural setting where it's hosted) I don't think I would have suffered thru than 8 hour power outage, either.
The Tent protocol sounds like something that would work best hosted by your ISP, a third-party hosting service, or a rented platform in a third-party data center ("the cloud"). (It actually sounds like a naive re-implementation of some of the functionality of SMTP.)
The things I'm most interested in hosting at home are things like home automation and Internet-connected appliances / devices. These products typically aren't going to be receiving requests from a large number of Internet hosts, don't necessarily need 24 x 7 uptime, and, most importantly, won't work if the home's Internet connection or power has failed (and, thus, don't gain any reliability benefit by being "cloud"-based).
I have a Mac Mini on 24/7 that's a web/mail/file server. This is for my small business, so there is activity but nothing heavy. Absolutely more than capable of adding a dozen people for social networking.
This consumes 12W while idle, which is probably 99.9% of the day, these are just background daemons carrying out requests all day for loading the website and sending/receiving email.
It's cheaper than a hosting service and I have 100% physical control over my server. If it goes down for a power outage or whatever, the same exact thing happens on Linode every few months. Email will just start to backlog until your server comes back online.
You are at the mercy of your ISP though, the biggest hurdle is port blocking if they're bastards about it. Most of them are, but there are ways around it.
This is the answer I was hoping for. I know of at least one solution for your ISP concerns. I think it will work very nicely.
ISP's can obviously block anything they want to block. But with bigger bandwidth and things like VOIP services on the rise I would think that means letting some regular customer UDP traffic pass in/out. In your opinion, would you think that most ISP's would not allow customers to keep some long-term UDP "connections" open on any port? I have not had any trouble with this in the places I've tried, but it's hard to know what most ISP's do. Honestly I just can't see any reason they would block a low number of low traffic UDP peer-to-peer connections per customer (the customer's social network), when you consider they are allowing things like Bittorrent which are huge network hogs by comparison and are being blatently used for the sole purpose of downloading bootlegged entertainment media from random strangers.
The interesting thing is that if we can achieve this sort of peer-to-peer social networking, concerns about email servers being online, at least with respect to mail that you send to people on your social network, may turn out to be less of an issue. Why do I say this? Because the reason you want your email servers to always be up is so you can receive mail as timely as possible. Ideally you would like to have near "real-time" mail. Otherwise, if time is not an issue, then storing messages for pickup later on, e.g. in the cloud, should be fine. But if you and I are both on a private peer-to-peer social network, all that's required to send "real-time" email (or whatever format of bits you choose) is that we are both logged in. We might leave low power machines on in order to stay logged in over long periods. I would guess this might be a much more popular form of "email" between friends and family.1 Remember the UNIX programs talk and finger?
1. Obviously there is no spam. The only people who can send and recieve mail to members of the peer-to-peer private social network are those who are logged in. Spammers can't log in. Nor can they be bothered to try to crack their way into myriad disparate small p2p social networks.
I've been having a server "always on" at home since the early 2000s (in the 90s I would've run a BBS if not for the fact that Norway have never had free local telephone service -- and we only had the one phone line).
If I used that availability to host a web page and/or receive email via smtp -- such services would certainly be handled handily by a solid-state disk and an arm cpu -- maybe a rasperry pi? Or just a cheap, rooted, android phone plugged into the charger. Then I'd have redundant networking (4g and wireless to my adsl2-line -- shouldn't be too hard to whip up something that would work, perhaps using the android scripting framework ).
Currently I use it to have access to some of my (personal) files, schedule/check on downloads and updates, and haven't quite been able to whip my providers broadband router into shape (the box tends to go flaky every 7-10 days of uptime, probably due to buggy wireless) -- so it's nothing I consider "service grade" right now.
But distributed twitter done right, with several layers of caching (see the Fielding thesis on REST ) -- shouldn't really need much in terms of traffic to host my tweets/updates.
I still think an smtp/mailinglist/uunet/usenet design would work/scale better though.
But then how would we track users, spam them with ads and monetize something that takes so little infrastructure to run in a decentralized manner that there is no real need to monetize it? /rant
If you and I have a peer-to-peer connection and I queue up some content for you and possibly others who are on our private network, and you choose to retrieve it, is that "hosting"?
Are these rules about what belongs in the cloud and what does not published somewhere? Who drafted them? Marketers? Do they apply to both home and business consumers?
(Now there may be some interesting uses for the cloud, for sure. But to suggest I have to upload everything I want to send you to someone else's server in "the cloud" before you can access it makes little sense, unless of course you are working for a cloud provider.)
Yes, I'll admit I did jump from HTTPS to P2P. Although, I'm assuming that Tent is capitalizing on the term "decentralized" as in P2P.
I do believe in the idea of using the cloud and having your own server. I hear you. I cut the knot myself. I'm just not sure that such use of cloud servers has to include storing lots of (sensitive) data on them. We all know that's been the marketing push. But I'm not convinced it's the wisest thing to do.
Think of it this way. That cloud server you pay for gives you a reachable IP, something maybe your ISP does not give you. What can you do with a reachable IP? You can use it to traverse NAT. And once you can do that, then many possibilities open up to you. The internet becomes vastly more functional.
From perusing the website in your profile some years ago I know that you were once interested in P2P. Have you "given up" on it?
Another reason I prefer storing data on my cloud server is that my home computer is now a laptop and I put it to sleep when I'm not around. (I guess this is kind of irrational; it wouldn't hurt to leave it on.)
Yes, I have pretty much given up on P2P because the cloud dropped in price much more rapidly than residential broadband has increased in performance. I first realized this when I noticed that Megaupload/Rapidshare were faster than BitTorrent. The reason I was interested in P2P was because it was cheaper, but now it isn't.
This makes it easier for me to understand your comments on P2P. Thanks for filling me in.
I might have guessed (incorrectly) that the reason you would suggest the cloud over home is security. Is it easier for me to secure my laptop behind my home ISP connection (by just disconnecting it; or relying on the ISP's DMZ, NAT and the lack of any programs listening for connections) than it is to secure a cloud server that is always on, always connected and always listening for connections?
Random thought: Does anyone ever use Wake-On-Lan anymore? Could it be useful in some present day context?
I think disconnecting is only useful for forensics (kicking out the bad guys after being owned). The real problem in security is how to be connected yet secure and IMO that's a software problem that's the same regardless of where you're located. Even at home, Tent has to be listening on port 80.
While SaaS pricing is an ongoing discussion in other HN threads, this site is a good example of a terrible pricing strategy (IMHO). Their freemium model is useless for discovering what the service is capable of, since it only allows for a status post. The premium service is ridiculously over-priced as well -- if the "open sourced FB" model somehow becomes a viable product with a market, I'd expect GoDaddy and others to start offering it for $1-2/month or even less if paid annually.
I doubt they'd have a problem with GoDaddy coming along and offering it cheaper. The whole point is to get more people involved, and it's actually pretty smart of them to go ahead and anchor the price fairly high. There are probably about a million patio11 quotes that would be relevant here.
I am so glad someone built out a Tent.io service so fast! This is exactly what I imagined it'd be like. People would host their own and people like this would host one for those who don't want to or don't know how to host their own. I see this and laugh whenever I hear a doubter say Tent will fail because "no one will run their own server". That's beside the point and Tent.is is the counterargument.
Ok, I took the bait and signed up. I went to the home page, and was presented with a spartan and VERY pretentious pricing/signup/(ad copy? description of the service?) layout.
After trying to figure out what a Tent is (still had no idea after reading), I signed up with blind faith that the Tent will tell me what to do next.
The next page was where I was expected to make a status update. Ok, so I enter some gibberish. Click the post button.
Yay, I made a post.
Have you ever showed up way to early to a sporting event or large classroom, and there is nobody there. I mean nobody. No sound, just you. You look around and think "am I supposed to be here?". "Is it Saturday?".
Looking at the post I made made me feel like that. Now that I wasted 10 minutes of my life on this, good luck with pitching your Tent.
Too bad the docs are rather hard to understand :( I wish someone made some python source code or improved the docs. It seems the "server protocol" is basically just some sort of schema of JSON to be send over HTTP(s), but at the moment it seems rather unstructured.
For me the registration/login are broken even when I unblock mixpanel. Might be because I block third party cookies, or it's just allergic to NoScript or RequestPolicy, even if I unblock everything on their registration/login screens. I just get blank pages.
Just as if you wanted to invite your one million friends to a party, you would need to pay for drinks, you might have to pay to send 1,000,000 a photo. You could either pay yourself, ask your friends to pay, or find an advertising sponsor. The same options exist online.
Completely false. Think of email. I've been told by people running large-ish, open signup websites that Gmail, Yahoo! Mail and Hotmail together account for more than 70% of users. But, so what? Three choices is already better than one, and then you have a long tail of a zillion other email providers making up the last 30%, which you can use if you don't like those 3, and finally, if there's no third-party email service you want to use, you can run your own server.
With Facebook and Twitter, you don't have that choice. If you want to connect with friends on those services, there's only one provider available, and that's it. Tent will give you that choice back — even if, in practice, a few large servers have the most market share.
I don't know about you, but social networks and email seem fairly similar in that I don't want to be locked into the same website my friends are using. Can you imagine how painful email would be if it had been controlled by one company from the start? That's why people are excited about Tent.
About the same as mine as well. Although I don't personally utilize Facebook, I believe this could take the place of it. My friends' use of Facebook makes me feel uncomfortable, like I have to monitor them (they just don't have any understanding of the implications).