Hey guys !
I’ve just released mutant v0.5.1
.
You can install/update it using cargo install mutant
.
This is a complete rewrite from the ground up, with a cleaner API, better performances and more stable features.
Main changes
-
Configurable Upload Size: Split the data into smaller of bigger chunks to optimize the upload speed and storage costs (default is 2MiB).
When doing a put you can now provide the following flags to control how much data is uploaded per pads. Smaller pads are faster and more reliable but use more storage ($$$)
Bigger pads will take a lot more time to upload and download (and might fail) but will use your precious storage space more efficiently
-$> cat my_file | mutant put my_key --mode lightest
Chunk size: 0.5MiB
-$> cat my_file | mutant put my_key --mode light
Chunk size: 1MiB
-$> cat my_file | mutant put my_key --mode medium
Chunk size: 2MiB [default]
-$> cat my_file | mutant put my_key --mode heavy
Chunk size: 3MiB
-$> cat my_file | mutant put my_key --mode heaviest
Chunk size: 4MiBThe --heaviest option is the maximum size allowed for a pad, but will very likely fail because of the actual mainnet network state.
-
Recycling mechanism: Automatically recycle bad pads that take time to answer to stay performant.
When doing a put, if a pad fails to be uploaded 3 times in a row, it will be recycled.
If the verification fails repeatedly during 10 minutes, the pad is recycled.A recycled pad is put in the verification list in your index, to be later check by a
mutant purge
operation to discard it or add it back to the free list.
It is replaced by a new pad either taken from the free list or generated. -
Health Check: Perform a health check on scratchpads that should have been created but cannot be retrieved. Recycles the pads that are not found.
When doing big uploads, it is more than likely that some pads will fail to be created or propagated properly.
Now you can callmutant health-check my_key
to check for such pads and mark them for retry, and the key marked as incomplete.
You will have to call again the exact same put command you called with the exact same data and parameters to resume the upload for the specific pads that failed. -
Better retry mechanisms: The library will now automatically retry operations that fail due to issues.
I’m pleased to announce that with this release, the uploads/downloads are now more reliable than ever on the mainnet.
It is still not perfect, but it is a good step forward, and most importantly you have now very little chance to actually lose the pads you pay for. -
Import/Export: Import and export your index to a file to backup your data.
-
Overall performance improvements: We now don’t do redundant calls to check the status of the pads during uploads/downloads
What’s next ?
I’m am already working on the next version of the library that will bring many interesting features, like:
- Daemon mode: Run the library in daemon mode to automatically upload/download and manage data in the background. You will be able to interact with it in JSON via HTTP or websocket.
- Web UI: A web UI to visualize and manage your data. Will use the daemon mode to interact with the library.
- Official Frontpage Index: An official index that will be shown by default in the web UI to allow you to discover new data posted by others. You will be able to add your own data to it and mutate it at will.
- Some more experiments that I will disclose later
Daily meme public upload
Every day from now on I will post a new meme on this public key: 80a9296e666d9f6d0dad8672e8a17fe15d00bae67e35ae4a471aabc2351ac85c4af654be0ea4c2ababf9a788b751ceac
You can download the meme of the day with the following command:
$> mutant get -p 80a9296e666d9f6d0dad8672e8a17fe15d00bae67e35ae4a471aabc2351ac85c4af654be0ea4c2ababf9a788b751ceac > daily_meme.jpg
Please try it yourself and let me know what you think !