HelloZeroNet / HelloZeroNet/ZeroNet

Feature Request: Multiuser Support 4 Hundreds of Users

Aperta
#1,214 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
JavaScript
Stelle
18.8k
Fork
2.3k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

During the paper data carrier age families
had their own, personal, mini-libraries in a
form of a set of book shelves. At the 21. century
the knowledge transfer is based on files and
the "family library" will likely be a
storage server at the home LAN(hereafter: "library_server").

The ZeroNet is a perfect candidate
for the home Library software. From resource usage
point of view it does not make sense that the
multiple TiB set of files is duplicated in the
devices of different family members. "Notebooks" and
thin touchscreen devices do not have the
storage capacity that desktop computers and
USB-HDDs can have. The relatively high rate of
HDD traffic that all P2P data sharing applications have
mandates that the P2P data sharing applications
must run at a dedicated server, not the computers
that run the user interface for humans.

# Implementation Idea and UX Issues

A simple set-up is that different family members
connect to different port numbers of the
library_server. May be a solution might be that
the current ZeroNet software is divided into
2 "modules": "ZeroNet storage server" and
"ZeroNet storage client". Each family would run
a single instance of the "ZeroNet storage server" and
the library_server runs a separate
"ZeroNet storage client" instance for each of the
family members.

May be the currently existing "Multiuser plugin"

(renaming of plugins/disabled-Multiuser -> plugins/Multiuser)

already has all the requested functionality, but
to cope with end users, who fail to analyze,
what they are doing while they are using a
computer(read: "grannies", "mothers"),
a solution, where each family member has to
explicitly select a user ID from some menu
in stead of using the ZeroNet from a

http://localhost:43110/foo/bar

will likely lead to a situation, where a
slightly demented "granny" will forget to
choose the right user ID and will carry out
an accidental "identity theft" of some of her
family members. If the library server has
one ZeroNet storage client per user, then the
granny's computer can be configured to
create an SSH tunnel to the granny's own
ZeroNet storage client instance, making sure
that the granny only uses her own identity.

# Test Case

**An extreme test case might be a nursing home or
a school that has a single library_server and
users have Android touchscreen devices.**
In that case the ZeroNet storage clients
solve the issue of multi-CPU support, because
each ZeroNet storage client instance is/can_be a
separate operating system process and the
operating system distributes the load to different
CPU-cores automatically. The security in that setting
can be solved by giving each user a dedicated
SSH account on the library_server and
by setting the routing tables on the library_server
so that each user has its own, dedicated,
loopback address that only he/she can connect to.
That is to say, the security aspects of the
current feature request can be solved with
server-side configuration and that the
ability to run the ZeroNet storage client
instances at a given port is sufficient, provided
that the ZeroNet storage clients communicate
with the ZeroNet storage server through some
named pipe or TCP connection.

An example Bash script for creating SSH tunnels:

https://github.com/martinvahi/mmmv_notes/blob/master/mmmv_notes/mmmv_utilities/src/various_Bash_scripts/ssh_tunnel_t1.bash

(archival copy: https://archive.is/EtFKP )

# Related Bug Reports

* The #613 seems to be related.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.