Working with file service I realized, that we need not only alternative ID but also user shadowname.

URL: http://[IP]/files/pub/AlternativeID-Shadowname-FileHash

AlternativeID = sign(user_private_key, “node.url-node.nonce-username-user.nonce-alternative-123”)
Used to verify the user

FileHash = MD5(filename)
Filehash is needed to determine which file to download not showing real file name for security reasons

Shadowname = MD5(Username-node.url-node.nonce-username-user.nonce)
Generated when user gets registered (joined) and stored in local users db (.json file by default). Used to determine the user from which to download file.

Advantages:

  1. If we are using pregenerated ID for each file, we need separate database for that. That means more code and less reliable.
  2. Owner of file remains anonymous

TODO:

  1. Use Shadowname everywhere instead of username to increase security.

--

--

A little changes on registration process …

URL
join/username-or-userhash/auth-id
returns
{address: privateness-address-to-send-coin-hours} or ERROR

URL
joined/username-or-userhash/auth-id
returns
{joined: true-or-false} or ERROR

The user is “joined” (registered) if there are at least one transaction on user’s address “privateness-address-to-send-coin-hours”.

Userhash is also more secure than username.

--

--

The problem:
Skycoin/Privateness network at every transaction takes 10% fee of all Coin-Hours on input address. This makes small transactions impossible.

The solution:
Make a random payment every hour.
The user will pay for a whole month in 1/720 probability in every hour (month has 720 hours).
The user is valid if he has > 720 Coin-Hours on his account (user-address).

Emercoin has a similar technology https://emercoin.com/en/news/randpay

--

--

There will be TWO methods for each USER

  1. getAddress (GET)
    returns JSON: {NCH-address: NCH-ammount}
    NCH-address: deposit NCH here
    The method automaticaly generates NCH USER address if it does not exist.
  2. withdraw (POST)
    request:
    ammount: NCH-ammount

The USER — address pairs will be stored in JSON file ~/.ness/users_addr.json

There will be one Master-USER, the user which will recieve all nodes earned coin-hours.

--

--