All Projects → YoRyan → Sia Slice

YoRyan / Sia Slice

Licence: mit
Maintain disk images or other large files indefinitely on the Sia network.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sia Slice

PyFiSync
Python (+ rsync or rclone) based intelligent file sync with automatic backups and file move/delete tracking.
Stars: ✭ 88 (+388.89%)
Mutual labels:  sync, backup
Docker S3 Volume
Docker container with a data volume from s3.
Stars: ✭ 166 (+822.22%)
Mutual labels:  sync, backup
Flickrsync
A command line tool to synchronise, upload, download, pictures between the local file system and Flickr. Image hash signature of the picture is used to uniquely identify the image.
Stars: ✭ 14 (-22.22%)
Mutual labels:  sync, backup
mindav
A self-hosted file backup server which bridges WebDAV protocol with @minio written in @totoval. Webdav ❤️ Minio
Stars: ✭ 64 (+255.56%)
Mutual labels:  sync, backup
docker-aws-s3-sync
Docker container to sync a folder to Amazon S3
Stars: ✭ 21 (+16.67%)
Mutual labels:  sync, backup
evernote-backup
Backup & export all Evernote notes and notebooks
Stars: ✭ 104 (+477.78%)
Mutual labels:  sync, backup
sicksync
Don’t accept the available as the preferable. Go the extra mile with extra speed.
Stars: ✭ 67 (+272.22%)
Mutual labels:  sync, backup
docker base images
Vlad's Base Images for Docker
Stars: ✭ 61 (+238.89%)
Mutual labels:  sync, backup
Gmvault
gmail backup software
Stars: ✭ 3,396 (+18766.67%)
Mutual labels:  sync, backup
Org Noter
Emacs document annotator, using Org-mode
Stars: ✭ 671 (+3627.78%)
Mutual labels:  sync
Monstache
a go daemon that syncs MongoDB to Elasticsearch in realtime
Stars: ✭ 736 (+3988.89%)
Mutual labels:  sync
Bareos
Main repository with the code for the libraries and daemons
Stars: ✭ 651 (+3516.67%)
Mutual labels:  backup
Percona Xtrabackup
Open source hot backup tool for InnoDB and XtraDB databases
Stars: ✭ 678 (+3666.67%)
Mutual labels:  backup
Pgbackrest
Reliable PostgreSQL Backup & Restore
Stars: ✭ 766 (+4155.56%)
Mutual labels:  backup
Seam
Seamless CloudKit Sync with CoreData
Stars: ✭ 659 (+3561.11%)
Mutual labels:  sync
Safeharbor
local mirror of your Github stars (including ALL branches)
Stars: ✭ 16 (-11.11%)
Mutual labels:  backup
Elasticsearch Dump
Import and export tools for elasticsearch
Stars: ✭ 5,977 (+33105.56%)
Mutual labels:  backup
Weibo Picture Store
🖼 新浪微博图床 Chrome/Firefox 扩展,支持同步到微相册
Stars: ✭ 624 (+3366.67%)
Mutual labels:  sync
Phpmyadmin sql backup
A Python script to automate SQL dumps via phpMyAdmin's web interface
Stars: ✭ 17 (-5.56%)
Mutual labels:  backup
Ipfs Sync
Live IPFS directory synchronization.
Stars: ✭ 16 (-11.11%)
Mutual labels:  sync

Sia Slice

...is a small program that maintains a mirror of a large file on the Sia decentralized storage network. The envisioned use case is storing a long-term, low-cost disk image, with periodic updates, for backups and archives on The Cloud™.

The basic idea behind Sia Slice is to chop up a single block device (or other large, monolithic file) into thousands of 80MiB chunks, LZMA-compress those chunks, and then upload them to Sia. That way, the next time you sync, you only have to upload the chunks that have changed since the last sync. Sync operations always construct a complete and identical mirror; there is no history, and there are no "full" or "incremental" snapshots. This minimizes both the complexity of the program and the storage requirements on Sia.

Besides, if you need those features, you can simply use any filesystem you choose on top of the original device or disk image. This ability is what makes Sia Slice unique: In contrast to other synchronization programs like Siasync and Repertory that operate at the file level, Sia Sice operates at the block level.

Curses screenshot

Sia screenshot

Sia Slice was written for GNU/Linux systems with Python 3.7 or later. Ports to other platforms should be possible with minimal effort.

The author uses Sia Slice weekly to mirror his Btrfs backup drive.

Installation

pip install https://github.com/YoRyan/sia-slice

Usage

You must provide the API password required to communicate with Sia, either through the command line or by setting $SIA_API_PASSWORD. I recommend using the environment variable:

export SIA_API_PASSWORD=xxxxxx

To copy the contents of /dev/sdb1 to a new Sia folder at /backupdrive:

siaslice --mirror /dev/sdb1 backupdrive

(To sync again, just run the same command. Sia Slice will locate the previous uploads and determine which blocks need to be re-uploaded.)

To download all Sia Slice data from /backupdrive and reassemble it on /dev/sdc1:

siaslice --download /dev/sdc1 backupdrive

Finally, Sia Slice writes a timestamped state file that can be used to resume any mirror or download operation in the event of a program crash, network interruption, or other catastrophic event.

To resume a stalled mirror operation:

siaslice --resume siaslice-mirror-20191024-1522.dat

Notes

Sia is an emerging technology, and I jumped through a lot of hoops to write this software. For the curious, I have written a companion blog post.

For contributors and forkers, some tests are located in tests/.

pip install -e .
pip install asynctest
cd tests/
python -m unittest ...
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].