To send a file, user encrypts it to the channel address, puts it in a folder on the webserver that is not part of the git repo, names the file a hash of itself, and includes the hash in a message, along with mimetype and file size.
To receive a file, the user connects to hiddenservice/hash and downloads the file from the user who posted it. The user's webserver limits connections to a reasonable number.
Simplest implementation:
To send a file, user encrypts it to the channel address, puts it in a folder on the webserver that is not part of the git repo, names the file a hash of itself, and includes the hash in a message, along with mimetype and file size.
To receive a file, the user connects to hiddenservice/hash and downloads the file from the user who posted it. The user's webserver limits connections to a reasonable number.