deltachat-core-rust
deltachat-core-rust copied to clipboard
feat: new backup transfer method
⚠️ ~~There be dragons~~ 🐉 There be exciting things
Idea: use p2p based transfer methods to move backups from one device to the other.
Implementation: Use iroh a new implementation of IPFS to build iroh-share, a simple protocol that moves data from device a to device b.
Local Testing
Using the new commands send-backup and receive-backup <Ticket> you can test this on a local machine or between two machines running the repl example.
Current Restrictions
- Both devices must be in the same network to discover each other
TODOs
Before Merging
- [x] finish
iroh-share - [x] test on very large files
- [x] add progress bar
- [x] add indicator for finishing
- [x] review current security properties
- [x] fixup todos
- [x] add documentation
- [x] finish C-api
Future
- [ ] improve
iroh-shares hole punching so it does not need to be on the same network anymore - [ ] add python bindings
- [ ] add node bindings
In which direction does this go? only "scan to import" for now? Though I guess it's probably easy to switch directions once the connection works at all (to also allow scan code from computer (when computer has no camera) to export from phone to that computer)
librocksdb takes forever to build, why is it needed as a dependency? Is it possible to disable it as a feature somehow?
I see iroh supports different stores: https://github.com/n0-computer/iroh/tree/main/stores
librocksdb takes forever to build, why is it needed as a dependency? Is it possible to disable it as a feature somehow? I see iroh supports different stores: https://github.com/n0-computer/iroh/tree/main/stores
@link2xt no it is not optional, those stores are just for experimentation. RocksDB is the only supported DB in iroh atm
foo-shm and foo-wal are checked in accidentally i think.
ups, fixed
iroh requires rust1.63, so this bumps the msrv for dc
closing, this is superseded by https://github.com/deltachat/deltachat-core-rust/pull/4007