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.

--

--

Every user (node client) will have an address with his NCH
Address with NCH will be stored on node’s wallet
The user will be able to add or withdraw NCH from his account (address)
Every hour the script will move the tariff ammount of NCH from user’s account to node’s account.

--

--

Aleksej Sokolov

Aleksej Sokolov

Ideologist & Main Developer at PrivateNess