PeerVault is a peer-to-peer decentralized application used to share sensitive information with someone else identified by cryptographic keys. The Vault is yours, no server involved, 100% Open Source. Leverage from blockchain technology innovation such as libp2p and bip39 Mnemonic code for generating deterministic keys.
Download the binary either for Linux or OSX depending of your platform on the github release page
❯ ./bin/peervault --help PeerVault-Service/git/master !
Usage of ./bin/peervault:
-apiAddr string
http api service address (default "localhost:4444")
-bbolt string
Location of bbolt DB file
-dev
Enable dev mode
-log int
Log level, 3=error, 6=notice, 9=debug
-logfile string
Location of log file
-relay string
Relay Host URL
-wsAddr string
WebSocket event service address (default "localhost:5555")
Start the daemon in foreground with debug log enabled
❯ ./bin/peervault \
--log 9 \
--relay /ip4/37.187.1.229/tcp/23003/ipfs/QmeFecyqtgzYx1TFN9vYTroMGNo3DELtDZ63FpjqUd6xfW \
--bbolt ~/bbolt.db
!!! ATTENTION !!!
DEBUG LOGGING MAY CONTAIN SENSIBLE INFORMATION SUCH AS CLEAR PRIVATE KEY OR ANY DATA.
IT SHOULD ONLY BE USED IN DEVELOPPER MODE
19:01:05.523 Listen ▶ DEBU 002 Listen
19:01:05.523 Listen ▶ INFO 001 listen from event
19:01:05.524 Listen ▶ INFO 003 listen from control
19:01:05.525 CreateOrOpen ▶ DEBU 004 Checking keychain status
19:01:05.551 CreateOrOpen ▶ DEBU 005 Keychain status returned nil, keychain exists
19:01:05.552 Get ▶ DEBU 006 16Uiu2HAm5fREw7TtUEjkru7xgHZGpRTLRxrtVVMFmxKNZgX4qRFr Owner
19:01:05.822 Listen ▶ INFO 007 listen from peer
19:01:05.822 Listen ▶ INFO 008 16Uiu2HAm5fREw7TtUEjkru7xgHZGpRTLRxrtVVMFmxKNZgX4qRFr
19:01:05.822 Listen ▶ INFO 009 [/ip4/127.0.0.1/tcp/50451 /ip4/127.94.0.1/tcp/50451 /ip4/192.168.127.155/tcp/50451 /ip6/::1/tcp/50452]
If you wish to test all the functionaly without the GUI
You can use POSTMAN to request the service.
Import the collection using api-postman-collection.json
- API CRUD
/owner
(Create new Vault Owner) - API POST
/owner/seed
(Recovery from Paper Key) - API CRUD
/secret
(Manage secrets) - API CRUD
/expose/request
(Share secrets with others Peer) - WebSocket notification when sharing request received
- Sharing secrets protocol (View Doc Architecture)
- Minimal GUI to retrieve information (View Flutter GUI)
- Cryptography Key Derivation BIP32 / BIP39
- Peer Libp2p with Relay integration (View Relay example)
- Exchange string between Peer through NAT using relay
- Security by design, no server involve to make it work
- Strong private key generation using bip39 / bip32
- Secure private key inside OSX Keychain
- Encryption of all secrets using private key
- Logging system in place for easily debuging and print error
- Clean directory tree structure for clean software architecture
- Api / Peer / Notification are split in three server, HTTP, LIBP2P, WS