Blockchain Time Machine.
BTM is an incremental data backup mechanism that does not require downtime.
btm will give you the following abilities or advantages:
```rust use btm::{BtmCfg, SnapMode, SnapAlgo};
let cfg = BtmCfg { enable: true, itv: 10, cap: 100, mode: SnapMode::Zfs, algo: SnapAlgo::Fade, volume: "zroot/data".to_owned(), };
// Generate snapshots in some threads. cfg.snapshot(0).unwrap(); cfg.snapshot(1).unwrap(); cfg.snapshot(11).unwrap();
/// Print all existing snapshots. cfg.list_snapshots();
/// Rollback to the state of the last snapshot. cfg.rollback(None, false).unwrap();
/// Rollback to the state of a custom snapshot. cfg.rollback(Some(11), true).unwrap(); ```
Usage of btm ...:
```shell btm
USAGE: btm [FLAGS] [OPTIONS] [SUBCOMMAND]
FLAGS: -h, --help Prints help information -C, --snapshot-clean clean up all existing snapshots -l, --snapshot-list list all available snapshots in the form of block height -x, --snapshot-rollback rollback to the last available snapshot -V, --version Prints version information
OPTIONS:
    -r, --snapshot-rollback-to 
-R, --snapshot-rollback-to-exact <Height>
        rollback to a custom height exactly, an error will be reported if the target does not exist
-p, --snapshot-target <TargetPath>           a data volume containing both ledger data and tendermint data
SUBCOMMANDS: daemon help Prints this message or the help of the given subcommand(s) ```
Usage of btm daemon ...:
```shell btm-daemon
USAGE: btm daemon [OPTIONS]
FLAGS: -h, --help Prints help information -V, --version Prints version information
OPTIONS:
    -a, --snapshot-algo fair
    -c, --snapshot-cap 
Steps:
```shell make mv btmpackage.tar.gz /tmp/ cd /tmp/ tar -xpf btmpackage.tar.gz cd btm_package
su # swith your user account to 'root'
./install.sh \ --snapshot-itv=4 \ --snapshot-cap=100 \ --snapshot-mode=zfs \ --snapshot-algo=fade \ --snapshot-target=zfs/data ```
Outputs of systemctl status btm-daemon.service:
shell
● btm-daemon.service - "btm daemon"
     Loaded: loaded (/lib/systemd/system/btm-daemon.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2021-10-12 21:24:16 CST; 2min 27s ago
   Main PID: 334 (btm)
      Tasks: 1 (limit: 37805)
        CPU: 1ms
     CGroup: /system.slice/btm-daemon.service
             └─334 /usr/local/bin/btm daemon -p=/data -i=4 -c=100 -m=btrfs -a=fade
Usage of tools/install.sh:
```shell
Usage
install.sh
    --snapshot-itv=<ITV>
    --snapshot-cap=<CAP>
    --snapshot-mode=<MODE>
    --snapshot-algo=<ALGO>
    --snapshot-target=<TARGET>
Example
install.sh \
    --snapshot-itv=4 \
    --snapshot-cap=100 \
    --snapshot-mode=zfs \
    --snapshot-algo=fade \
    --snapshot-target=zfs/data
Example, short style
install.sh -i=4 -c=100 -m=zfs -a=fade -t=zfs/data
```