Hacker News new | ask | show | jobs
by uuid_to_string 4439 days ago
"It doesn't scale!"

Who said it needed to scale?

How many Facebook friends does the average user have?

Do these these networks need to be larger than that?

If users want larger networks they can bridge their VLAN's.

"I don't like your logo!"

I'm using a text-only browser so I really don't care what your logo looks like.

Keep up the good work and ignore the critics.

Suggestion: Make the crypto fungible, so if a user wants to use a different library, e.g., NaCl, they can.

1 comments

Heh.

Actually, thank you to the previous poster. I didn't mind the criticism. His point -- "your existing site doesn't look good enough to convince my boss" -- is very valid. The new site looks a lot better and it's not done yet.

It does in fact scale pretty darn well, mostly due to the fact that it's connectionless, stateless, and opportunistic. If you're on a network with ten million people but are only talking to ten, you'll only be sending packets to/from ten.

The supernodes have to know about all ten million, but last I checked that wasn't very much memory... maybe a few gigs tops? So that's what, $20-$30/month per node? Or I could add the ability to put a real database under it and use SSD cloud nodes and handle billions of users with sub-10-ms lookup latency.

Of course if I get that many users that'll all be in the good problem to have category and I'll have plenty of money to scale out and if necessary improve the protocol/architecture. There are many directions I could explore: M:N supernodes with load balancing, various other sharding techniques, moving to beefier cloud providers, further decentralization in the protocol, all of the above, etc. I could set up big labs, run simulations, do all sorts of cool stuff. I've done enough so far to convince me that the problem of monstrously scaling this thing is very solvable. Just have to do the work.

I'm not making the crypto fungible. The protocol does have flags that could be used to indicate new algorithms if upgrading the crypto becomes necessary, but I have been an absolute simplicity nazi with this thing so far and will continue to be.

Interesting projects. What role does the website/service play wrt to the clients? Is it possible to run fully separate networks with just the client?

Any thoughts of how it compares with i2p? (http://geti2p.net/en/)

You could technically set up your own completely separate network -- everything you need is there. You'd just have to fork it. It'd be kind of like forking Bitcoin to make Dogecoin or JuggaloCoin or whatever. But in this case I wouldn't see the point. You wouldn't be able to join networks on the "real" network, etc.

Compared to I2P and Tor: it's neither of those. This is about network virtualization and making it easy to set up ad-hoc networks across physical boundaries. It's not a privacy tool per se, though it is end-to-end encrypted so the content of your data is hidden. My goal isn't to duplicate the work of Tor or I2P-- if you want strong anonymity, use those. (You could use ZeroTier One through Tor, though it would be slow.)

There is an incomplete beginning to a technical FAQ here that answers some of these questions in more detail:

https://github.com/zerotier/ZeroTierOne/wiki/Technical-FAQ