4 ms·
I am writing a fully decentralized application and in doing so have learned a lot about the concept. There has been a lot of interest on the subject over the la
by austincheney 5y ago
I am writing a fully decentralized application and in doing so have learned a lot about the concept. There has been a lot of interest on the subject over the last few months so I likely need to write a document about the things I have learned. Some quick things:
* Security is wildly different in a decentralized model compared with a client/server model.
* Decentralization is about one thing only: maximum autonomy.
* Federated systems are semi-autonomous. They are a move towards decentralization but not completely so. With decentralization you only need an application that send/receive agreed upon instructions.
* Anonymity and privacy are opposing qualities. Decentralization is not about either but enables one or the other.
As I have been exploring this subject I have formed some criteria for decentralization:
* Address based (IP addresses or identifiers that resolve to an IP address without third party consultation, no DNS)
* Protocol agnostic (what ever two parties can agree upon)
* No third parties (no servers or message proxies unless you own them)
Think about it in terms of snail mail. The post office moves packages around without opening or inspecting the contents. The contents are never stored in a database and could be broken. It is address to address communication.
Decentralization allows for personal or organizational devices to be remotely connected as a large physically distributed computer:
* A single file system, cross OS.
* Remote application execution, such as Steam’s remote game play.
* Content on demand. Push media out to your friends or access their computer and pull it off yourself.
- loceng 5y ago"* Content on demand. Push media out to your friends or access their computer and pull it off yourself." Reminds me of dialing into a BBS way back when, that early on was just someone with a non-dedicated or dedicated telephone line hooked up to their personal computer's modem; you could connect to fun, non-real-time multi-player text-based games (ASCII art FTW!) hosted on their PC, and some had file servers open for download and sometimes upload.
- Comevius 5y agoI'm writing an offline-first database and it typically uses a server for storage and coordination. The difference is that I don't think the server should be able to see what it stores and coordinates, for which searchable encryption is the solution. However my database is address based, it reads and writes blocks of encrypted data, and it is protocol agnostic, it works over S3 and Google Drive, or could work over a pendrive sent in a letter back and forth, or IPFS. It just requires a single source of truth and optionally event notification. So would this fit into an every peer-to-peer system is decentralized, but not every decentralized system is peer-to-peer picture, or is this not decentralized at all, because you would normally use it with Amazon S3, albeit in a maliciously-secure manner (the confidentiality, integrity and authenticity of your data is secured via authenticated encryption, the client keeps the key, the access pattern is obfuscated).
- austincheney 5y agoPeer to peer systems are not necessarily decentralized. They are decentralized if their traffic does not require access by a third party. Its the difference between Napster and BitTorrent. In the case of your scenario it could be considered decentralized as you are using cloud storage as merely a storage point, as in a dedicated redundancy, but I am hesitant to consider a dedicate server as a point of decentralization regardless of its intention or access limitations.
- mlatu 5y agoconsidered 9p yet?
- austincheney 5y agoI had no idea about this. I am looking at it now. https://en.m.wikipedia.org/wiki/9P_(protocol) https://en.m.wikipedia.org/wiki/9P_(protocol) Here is the approach I am taking: https://github.com/prettydiff/share-file-systems https://github.com/prettydiff/share-file-systems
- mlatu 5y agoalso gnunet and its gnu name system might be worth a look maybe instead of mp4 files no one bothers with, upload your demo on peertube or similar?