Nodes
Hardware
I have chosen ARM, the cheapest and most common architecture. The first version of the nodes are tested on RPI4 device, but the are many cheaper analogs …
I came to conclusion that it is easier to install everything on a separate small ARM device and access the infrastructure through WEB interface. This approach has many advantages in comparison with docker containers (you own the OS and that means you own the device). Also, small ARM device has low power consumption and can be turned on 24/7 (this is very ucesful when sharing IPFS data).
Personal Node
Purpose
The primary purpose of personal node is user key generation and storage. Secondary purpose is to operate different tools based on user keys and blockchain.
Blockchain
There are two blockchains:
1.Emercoin used for public key storage and for storage long-term data and for storage data which links to other data (magnet links, IPFS links, etc).
2.NESS blockchain for fast transactions and payments between users and service providers.
Internal Services
IPFS — torrent network for file sharing
Yggdrasil — DPN for communication (can be changed to TOR, I2P, Skywire, …)
Entities
Article about entities.
<human> — Article about <human>
<human name="" tags="">
<description></description>
</human>
<!--
tags - coma,separated,keywords
description - optional
--><share> — Used for file sharing, stored in blockchain.
<share filename="" mime="" type="ipfs" tags=""> <description></description></share>
<!--
mime - file mime type
type - ipfs or magnet
tags - coma,separated,keywords
description - optional
--><message> — Used for communication between humans, sent through network, stored in internal database.
<message from="" to="" subject="" reply="" mime="" unite="" time="" sig="">
<body></body>
</message>
<!--
mime - mime type of body (than base64 encoded if binary)
reply - reply to message (signature of that message)
unite - a part of some other massage, a file or some other data sent separately (signature of that message)
time - unixtime of message creation (UTC)
sig - signature of body
-->Tools
Messages — application for sending messages with WEB interface
Share — application for sharing files with WEB interface
Service Node
Services
More detailed described here.
Authentication
Authentication will be based on tokens described here.
Clients
Console client
The client will use token authentication and session algorithm for key storage.
WEB Client
Web inteface will be build on a top of existing console client.
