A decentralized File Storage System written in Go!
View Demo
·
Report Bug
·
Request Feature
Table of Contents
This is a fun hobby project I created to learn Go more in depth. This tool splits the file you input, encrypts then communicated the chunks to other peers in a P2P network. When acces is needed, peers communicate the requested chunks, decrypt them, the stitch the original file together.
The original scope for this is to be used for a P2P network of nodes in the same network for simple files. Individual setup on each node is needed.
Go 1.23+ is required in order to build the project.
go build .
in the project directory- Make a "files/testfile.ext" directory. The fletype can be whatever.
./gocrypt -host <local-network-ip> -port <free-tcp-port>
on two different terminals.- (For now the test file you input is automatically chunked and uploaded)
- Basic chunking functionality
- Basic encrypting functionality
- libp2p local network setup
- finish documentation
- cli implementation
- basic boilerplate / scaffolding
- command implementation
See the open issues for a full list of proposed features (and known issues).
Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. Or you can also simply open an issue. Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
No License as of now. (Don't) See LICENSE.txt
for more information.
Konstantinos Katserelis - @gravityWell
Project Link: https://github.com/its-kos/gocrypt