lainchan / λ

(untitled)

Mario Rossi · 2017-11-28 19:24
What should I study for creating distributed applications that communicate via Tor network?
William Holtzer · 2017-11-28 19:37
Distributed systems. There's so many different aspects of it, you'll need to be more specific in what you want to do. Communicating via Tor shouldn't change much other than routing your traffic through Tor and using hidden services instead of normal domain names.
Tequila · 2017-11-28 19:42
>>5317 >Distributed systems. I know distributed systems. I just want to learn how to open sockets that will transmit data via Onion, instead of using normal sockets.
list · 2017-11-28 21:07
>>5318 You just need to communicate with your Tor Daemon via a Socks5 connection. Whatever language you're using should have a socks5 client library. Everything after that is pretty much standard
Trinity · 2017-11-28 21:55
look into how hosting hidden services actually works remember not to bind to 0.0.0.0
tz · 2017-11-28 23:39
This isn't specific to Tor. And if ISPs block Tor and your application is built with Tor in mind then you're screwed. We need a platform for distributed/decentralized (E2E encrypted, where applicable) alternatives for Snapchat, Facebook, Instagram, reddit, etc. It doesn't even have to be built specifically with Tor in mind as people can simply publish posts and send/recieve messages using Tor as a gateway to be (mostly) untraceable. Even then, it would be trivial to make a hidden service as a frontend. Having a "host" concept like GNU Mastodon I think is interesting since it allows data storage to be much more flexible, but it makes it a lot easier to takedown the network if data "lives" in one location and only has selective mirrors across the network. Perhaps it would work well if we built it on IPFS's storage model where objects are stored in a "local neighborhood" based on the keys of the object. Something like Snapchat would be really easy to implement since there is actually fairly little data to keep persistent. In fact it's basically just lipstick on top of Signal. I'm building a distributed network that could be used to build messageboard-style (*chan, reddit, etc.) applications, but right now doesn't have any facilities for something realtime like Snapchat.
Lady 3Jane.. · 2017-11-29 00:07
>>5316 Sweet Jesus this is the thread I've been waiting for. I've always wanted to create network based on: *TCP hole punching/STUN *some good cryptography *with distributed encrypted files stored in multiple backups on clients connected to network, so thaht only clients having keys/passwords are available to read them *The Network which can't be shut-down by any authority and it's traffic is transparent (one can archive maxium possible anonimity, no ip/mac, only some kind of certificate). Then I would build some kind of irc & chans services on top of it. Next I wanted to give users ability to create their own services and servers. Finally I would like to create some kind of python module with functionality like send(arguments_describing_user, data, data_length); data = receive(...); //this should be asynchronous, it's just pseudocode. This would be fuarkking awesome (despite it would be very slow), but I am totally green in this area, terms like IPFS/Mastodon are just words to me, I know nothing about those networks. Have you got any interesting materials about this topic? Where should I start? What is state of Hole-Punching? Are there devices/routers/networks where one can't use this method? Another question: When I was 14 I've created a chat for my friends (php&plain js, good ol' days). It recently got shut down because of transfer limit (free acounts for the win). ngrok isn't good option since I cant run my PC 24/7 (maybe I can buy rasp-pi with wifi access and simply plug it to my PC). So I want to create it over simplified network I described above, so only hole-punching and some kind of guerilla cryptography. I want my chat to store data for each channel, so that if I login I will get all the data from all the channels I subscribed to. How to minify transfer? Is there some kind of algorithm to optimaly balance data storage over such a network? Another problem is thaht I expect rather small network size (maximally 5 persons) so there will be moments when someone will be only online member of the network. For such cases adding artificial clients to the network which only store data and are available 24/7 seems like a good solution, altough a bit hacky. What dou ya think lainons? Any tips? Which public STUN server should I use (let's cut off ip transparency for a while I will later add some kind of onion routing option)?
progn · 2017-11-29 00:07
You pick an existing application that supports SOCKS5 proxy, or simply just TCP and force it to communicate through hidden services, instead of IP address or IANA domain name it will have and request .onion domains. Bloody simple. Email, IRC, XMPP, TahoeLAFS, SIP, NNTP are already working examples I can come up with. Be advised that Tor is also slow and latent, you will have to contribute to it with your own bridges.
Fred Nurk · 2017-11-29 06:14
>>5323 sounds like Retroshare to me. The latter part (date = receive...) is basically the raw bare-bone dht-level. its not very comfy at this level and lacks a lot of features so that you will either have to live with the drawbacks or implement workarounds. Example: the DHT of BitTorrent only stores where the torrent is located, not the actual torrent data despite it being only a few kb big. Then there is chord and pastry but they are just research tools, more toys and labs that serious software. OceanStore should be around somwhere but Im not aware of anyone using it. You might want to check out "Distributed Systems" by Tanenbaum, its a really great book for this kind of things.