Features and Tech Breakdown

1: Main Packages and Frameworks

• Create-torrent 3.29.2

• Crypto 1.0.1

• Drag-drop 2.13.2

• ElectronReact Framework

• Ethereumjs-util 5.1.4

• File-cryptor using a AES192 encryption

• File-loader 1.1.6

• History 4.7.2

• Parse-torrent 5.8.3

• Travis CI Testing Suite

• Url-loader 0.6.2

• Webtorrent 0.98.21

A full list of the packages/versions currently being used can be found in the application source code.

2: Upfiring Encryption and Seeding Protocol

Since the last update, we have devised a protocol to solve the issue of UFR fee avoidance by downloaders (downloading a file and attempting to avoid the UFR fee set by the original seeder).

Upfiring creates two copies of every file — one non-encrypted version to be used locally (unaltered version) and one encrypted version of the file to be used for transactions across the network. Information about the file owner (the original seeder) and UFR price is integrated into this encrypted version. The file is then transferred between peers using a modified bittorent protocol, and the downloaders funds are sent to the seeder smart contract. Once the funds are received by the contract, an encryption key is automatically sent to the downloader to decrypt the file.

If the downloader’s UFR transaction fails or they attempt to avoid paying the fee, they will be left with an unusable encrypted file until the transaction is sent to the contract. This ensures that peers always get rewarded for seeding and that users using other applications cannot bypass the UFR fee.

3: Wallet & Smart Contract Logistics

Users will be able to create new wallets within the Upfiring application or load existing wallets using their private key.

UFR and ETH are not initially needed to use the application. Users can begin seeding their local files and earning UFR immediately upon downloading the app without the need to deposit any funds.

The seeder smart contract keeps an active record of every seeder’s UFR in real-time. In order to claim UFR (earned by seeding) from the seeder smart contracts, users will need to make a small transaction to the blockchain to trigger the contract’s “Withdraw” function. This is done by clicking the large red “Withdraw” button within the application and inputting an amount of UFR that is less than or equal to the total amount of UFR that the user has earned. This process will require a very small amount of ETH, used to cover the cost of the transaction fee (less than $0.40 USD equivalent at the time of writing this post).

4: Downloading and Finished Protocol

Downloading files from other users requires the downloader pay a UFR price (set by the original seeder). As such, the downloader must make a single transaction to the main smart contract when downloading a file. This process is completed automatically within the application when the user agrees to the price and the “Download” button is pressed. If a downloader does not want to buy UFR on an exchange, it is recommended that he or she seeds some of their own files first to earn UFR and then uses the newly acquired UFR to download files.

After downloading a file from other users, the file is moved to the “Finished” tab where it can be reseeded for the same price by clicking the “Reseed” button (making that user an additional seeder on the original file) or seeded at a new price (making that user the original seeder of the new file).

This protocol encourages more users to share files and seed than on traditional networks — users will be motivated to seed as much as possible in order to maximize their rewards. This differs greatly from existing networks, where seeders/peers can be hard to find due to a large number of downloaders and no rewards delegated for seeders. As a result, we expect drastically increased file availability and reliability of downloads compared to traditional P2P networks.