Upfiring is the first-ever blockchain file-sharing application with token rewards for multiple seeders, file-encryption and verifiable transactions.
We have made an immense amount of progress on the Upfiring application the past few months and are excited to share our work and upcoming roadmap. There’s a lot to discuss in this update, so let’s get started.
Topics• UI & UX Design• Source Code• Features and Tech Breakdown ○ Packages and frameworks ○ Encryption and Seeding Protocol ○ Wallet ○ Smart Contract Logistics ○ Downloading and Finished Protocol• Roadmap and Release Schedule• Exchange Listings• UFR Airdrop• Upfiring Communities Bounty Campaigns
To start things off, here are some screenshots of the application in action. We’ve kept the design sleek and simple while leaving room for a lot of complex functionality behind-the-scenes.
The application source code can be found here:
https://www.dropbox.com/s/6l0yo3z8zy64bct/upfiring_source_release_032318.zip?dl=0
We have excluded the wallet and smart contract functionality from this code in order to prevent users from attempting to use the application before it is fully developed, tested, and secure. The code for generating encrypted Upfiring files with embedded owner and price information is fully functional — among several other features. Feel free to critique the code and give us your feedback on the progress!
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.
Some of our main developmental focuses are ensuring the application is enterprise-grade, scalable, ready for mass adoption, and most importantly — secure. Because funds will be stored within wallets in the application and smart contracts will be deployed, we want to ensure that the first released version of the Upfiring dApp is entirely safe to use and free from potentially exploitable bugs. Because of this, we have altered our roadmap so that the first version of the application will be v1.0.0. and come fully-stocked with all planned features out of the box.
The release date for version 1.0.0. has been set for mid-late Q2. Throughout this time, we will continually release updates to the source code to the community for vetting as we finish new features.
Here is the updated roadmap with planned events and development progress:
Events
Development
✔ Design application, create layout, implement Electron framework✔ Create build machine for MacOS/Windows/Linux. Build machine configured to create builds in parallel with development✔ Configure test environment MacOS/Windows/Linux (Ubuntu)✔ Create encrypted Upfiring torrent files from a user’s local files with information about the file owner embedded in the encrypted file✔ Establish framework for smart contract functions✔ Allow users to see their UFR earnings via seeding in real-time on Wallet tab✔ Seeding protocol established✔ UFR price-setting for files and reseeding capabilities
In Progress
Smart Contract functions: — Ensure seeder balances are updated in real-time with seeding — Allow users to withdraw earned UFR from the contract
We want to make sure UFR is widely available on multiple exchanges and easily accessible to newcomers. Over the past few months, we have worked very hard to form partnerships with exchanges and have established several new relationships going forward.
Upfiring is officially listed on Yobit with UFR/BTC, UFR/ETH, UFR/USDT, and UFR/DOGE pairings.
We waited until this update to announce this but it is official — you can now trade UFR on Yobit’s BTC, ETH, DOGE, and USDT markets. You can also gamble your UFR using Yobit’s dice game (not recommended, of course!). Yobit is a huge exchange that has been around for several years with a lot of big-name coins and high volume. They are not currently accepting new registrations, but if you already have an account there you can begin trading UFR immediately.
Since the last update, we have also been listed on:
Existing Exchanges:
Getting listed on a major exchange(s) will become a top priority once the application is released, and is one of the main goals for Q3 of this year (in conjunction with the marketing campaign).
RightBTC is airdropping 500 UFR to each user who has deposited more than 1,000 UFR and traded UFR three or more times on the UFR/BTC or UFR/ETH markets. Trades must be completed to be eligible.
Anyone can register on RightBTC, deposit 1,000 UFR or more from an outside source (personal wallet, another exchange, etc), and complete 3 or more trades of any size on RightBTC’s UFR markets to become eligible from now until March 29th, 2018. The reward is 500 UFR for each qualifying user. UFR will be airdropped to users after the final day of eligibility ends on March 29th, 2018 at 11:59 PM GMT +4.
Dates: March 29th, 2018 — May 31st, 2018
Purpose
Upfiring communities are sites, applications, and social networks where Upfiring links will be shared. Content creators can benefit from communities by sharing their links for other users to download, allowing them to earn UFR and increase the number of seeders on their file. The main goal of an Upfiring community should be to empower content creators and sharers, though with this campaign developers are encouraged to build anything they feel would help to expand the community.
Some examples of Upfiring communities that can be built for this bounty campaign are: a website or mobile app that allow content creators to share Upfiring links, a decentralized/anonymous chat, a forum or message board, a decentralized exchange solely meant for buying/selling UFR, or any other type of media platform.
Projects do not have to be fully completed by the end of the campaign (May 31st, 2018). A project that is partially completed - but the community feels shows promise for the future - would likely perform well during voting.
This bounty campaign gives developers a chance to contribute directly to the widespread adoption of Upfiring. In addition, all projects — especially those that do well in voting — will benefit from promotion and attention from the community, making it easy for solid projects to gain a user base.
Rewards
We consider Upfiring communities vital to Upfiring’s early success, and as such are prepared to heavily reward those who partake in building up the ecosystem.
Tiers• 1st place project: 20,000 UFR• 2nd place project: 12,500 UFR• 3rd place project: 7,500 UFR• 4th & 5th place projects: 4000 UFR each• All submissions: 4000 total UFR divided by the total number of qualifying submissions, distributed equally (does not include the top 5). This amount may be increased if the number of qualifying submissions is higher than expected to ensure work is appropriately rewarded.Total**:** 52,000 UFR
Community Voting
The winner will be chosen by a community vote. To prevent vote manipulation, voting will be public and be limited to: • Reddit Accounts: account must be created before March 23rd, 2018 and have at least 20 comment karma• Bitcointalk Accounts: account must be created before March 23rd, 2018 and have a minimum of 10 posts
Vote threads will be posted on Reddit and Bitcointalk on June 1st, 2018 at 12 PM EST. Voting will end on June 8th, 2018 at 11:59 AM.
More Information
Upfiring and its team reserve the right to determine if a vote is considered valid. A vote may be considered invalid if it appears to be a duplicate or a product of vote manipulation. Bounty campaign rules, time periods, and voting requirements are subject to change at the team’s discretion. Upfiring strongly encourages participants to screen for copyright infringement on their communities. It is recommended that any project that includes Upfiring links offers some form of admin regulation of such infringement and provides a contact resource for content to be removed upon request.
Bounty campaign threads with further details will be posted on both Reddit and Bitcointalk next week when the campaign officially begins.
If you have any further questions about the project, feel free to post on our community pages or send us an email at [email protected]. Come join us over on Reddit, Bitcointalk and Twitter as we continue our mission to change the future of P2P file-sharing.