HelloZeroNet / HelloZeroNet/ZeroNet

Feature Request: Multiuser Support 4 Hundreds of Users

Open
#1,214 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
18.8k
Forks
2.3k
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.