OneLoveIPFS uploader v0.9.2: Optimisations, real-time upload event API and more!
It has been almost 9 months since the previous update release, and more than half a year since Utopian left the Steem blockchain. Finally, I'm ready to announce this overdue update that I've been working on for the last few weeks.
Updated for IPFS Javascript API v42.0.0
Recently, the Javascript API have received a major update that changed the way it is implemented in applications. For those developers out there who are using the API, the migration guide for updating your applications may be found here.
I'm pleased to announce that OneLoveIPFS uploader have been updated for the latest API release. In addition, I have optimised the way it adds files to the IPFS repo so that it consumes way less RAM by using the proper methods of adding files from the filesystem here, instead of reading the entire file into memory which is what most IPFS API guides out there do.
This also fixed the issue where the application will throw an error when it tries to add a file larger than 2GB to IPFS. Big thanks to @solominer for discovering this!
Introducing IPSync
IPSync is a Socket.io endpoint that notifies other nodes of new uploads in realtime, allowing other nodes to perform tasks using the information of the upload as new files get uploaded to the server.
While the existing pin script is great for syncing pinsets across IPFS nodes, it is not the best way to keeping up with new uploads as it requires setting up regular cronjobs that may result in multiple instances running at the same time due to large files being downloaded that causes another instance to start before the existing one finishes running. This causes duplicate files being downloaded unnecessarily.
IPSync solves this issue by ensuring that upload events are sent to nodes once so that no file can be downloaded more than once at the same time.
Nodes can connect to our instance at https://uploader.oneloved.tube/ipsync
so that they can trigger an event as new files get uploaded to our servers. An example of a client implementation can be found here, that downloads and pins files as new files get uploaded.
Steem beneficiaries bug fix
A bug has been found that the Steem beneficiaries that the user defines are not sorted properly when it is broadcasted to the blockchain, and the check for the maximum number of beneficiary accounts that witnesses allow is not present.
This has been fixed in this update so feel free to set your beneficiary accounts in the advanced tab if you need it!
UI improvements
If you have used the uploader for the last 24 hours at the time of typing this post, you probably have noticed this already.
Header and footer have shrunk to reasonable heights so that more page content can be seen (especially on a mobile device), and some buttons have been redesigned so that they look like a modern website.
Hello!
This post has been manually curated, resteemed
and gifted with some virtually delicious cake
from the @helpiecake curation team!
Much love to you from all of us at @helpie!
Keep up the great work!
Manually curated by @solominer.
@helpie is a Community Witness.
Excellent work 👌 I like the ipsync system for new pins, current pin script does the job but having it make requests every 5mins is a bit of a load on the system... Should be able to do that today 👍
great work! nice little update.