It's a peer-to-peer distributed file system, built entirely from scratch in Go — (Golang File System OR GOD File System :-) no IPFS, libp2p, or DFS libraries. Think "minimal IPFS" where you understand every byte.
because.... chunkKey = SHA256(encrypt(userKey, randomNonce, plaintext)) ---> same userKey + chunk + plainText is very very rare.
---> so we don't need to worry about cross-user dedup, and deletion of chunk by other user.
To test the system across NAT (real-world trial), follow this 3-node setup.
Run this on a public server to act as the bootstrap and NAT traversal bridge.
./dfs node start --port :7000 --relay --advertise <PUBLIC_IP>:7000Run this on your workstation. It will bootstrap via the cloud relay.
./dfs.exe node start --port :7001 --bootstrap <PUBLIC_IP>:7000 --api-port :9001 -iRun this in another terminal window (simulating a second peer).
./dfs.exe node start --port :7002 --bootstrap <PUBLIC_IP>:7000 --api-port :9002 -iOnce all nodes are healthy (check with status), try a cross-node transfer:
On Node A (Terminal 1):
dfs> store my_file.txt
# Copy the CID returned (e.g., b64730...)On Node B (Terminal 2):
# Node B will find Node A through the Relay and pull the file
dfs> get <CID_FROM_NODE_A> -o downloaded.txtTip
Use the --api-port flag when using the thin CLI (e.g., dfs ls --api-port :9001) if you aren't using the interactive -i mode.