Skip to content

create a multi-file torrent of all monero release binaries with a deterministic file info hash and bootstrapped via getmonero webeed.

License

Notifications You must be signed in to change notification settings

plowsof/monero-torrent

Repository files navigation

monero-torrent

Docker local/remote build

create torrents for Monero GUI / CLI files.

  • getmonero.org added as a webseed
  • mktorrent creates the torrent file.
  • the torrent files info-hash is deterministic.
  • automated ci

create_monero_torrent.sh creates:

├── create_monero_torrent.sh
├── downloads
│   └── monero-v0.18.4.2
│       ├── cli
│       │   ├── monero-android-armv7-v0.18.4.2.tar.bz2
│       │   ├── monero-android-armv8-v0.18.4.2.tar.bz2
│       │   ├── monero-freebsd-x64-v0.18.4.2.tar.bz2
│       │   ├── monero-linux-armv7-v0.18.4.2.tar.bz2
│       │   ├── monero-linux-armv8-v0.18.4.2.tar.bz2
│       │   ├── monero-linux-riscv64-v0.18.4.2.tar.bz2
│       │   ├── monero-linux-x64-v0.18.4.2.tar.bz2
│       │   ├── monero-linux-x86-v0.18.4.2.tar.bz2
│       │   ├── monero-mac-armv8-v0.18.4.2.tar.bz2
│       │   ├── monero-mac-x64-v0.18.4.2.tar.bz2
│       │   ├── monero-source-v0.18.4.2.tar.bz2
│       │   ├── monero-win-x64-v0.18.4.2.zip
│       │   └── monero-win-x86-v0.18.4.2.zip
│       └── hashes-v0.18.4.2.txt
│   └── monero-gui-v0.18.4.2
│       ├── gui
│       │   ├── monero-gui-install-win-x64-v0.18.4.2.exe
│       │   ├── monero-gui-linux-x64-v0.18.4.2.tar.bz2
│       │   ├── monero-gui-mac-armv8-v0.18.4.2.dmg
│       │   ├── monero-gui-mac-x64-v0.18.4.2.dmg
│       │   ├── monero-gui-source-v0.18.4.2.tar.bz2
│       │   └── monero-gui-win-x64-v0.18.4.2.zip
│       └── hashes-v0.18.4.2.txt
└── watch
    ├── monero-v0.18.4.2.torrent
    └── monero-gui-v0.18.4.2.torrent

usage

Grab the torrent from https://github.com/plowsof/monero-torrent/releases

To build the torrent file:

  • Clone this repo, build and copy the mktorrent binary to the monero-torrent dir and run create_monero_torrent.sh:
git clone --recurse-submodules https://github.com/plowsof/monero-torrent && cd monero-torrent && cd submodules/mktorrent && make && mv mktorrent ../../ && cd ../.. && chmod +x create_monero_torrent.sh && ./create_monero_torrent.sh
  • By default the script downloads binaries from getmoneros CDN
  • to obtain files locally, pass CDN_URL which is a path containing all files required including binaryfate.asc and hashes.txt
  • BF_KEY_URL is the filename of the key inside the CDN_URL folder.
  • HASHES_URL is the filename of the hashes file in CDN_URL folder.

Note: they do not have to be nested in any particular folder, the script will find them recursively and copy them into the torrents file folder

CDN_URL="$HOME/monero-v0.18.4.3" \
BF_KEY_URL="binaryfate.asc" \
HASHES_URL="hashes.txt" \
./create_monero_torrent.sh

You can also pass a custom hashes URL, providing the files within are on the CDN_URL (Note: a local hashes file requires a local folder for CDN_URL):

HASHES_URL="https://raw.githubusercontent.com/binaryFate/monero-site/refs/heads/release-CLIandGUI-v0.18.4.4/downloads/hashes.txt" ./create_monero_torrent.sh

docker

if you see ContainerConfig error you need to upgrade docker-compose to v2 (Confirm version with: docker compose version). In debian:

sudo apt-get update
sudo apt-get remove docker-compose
sudo apt-get install docker-compose-plugin

env variables are defined in docker-compose.yml

after cloning:

git clone --recurse-submodules https://github.com/plowsof/monero-torrent && cd monero-torrent

Default where files are downloaded: Note: if you see unknown flag: --profile then you need to update to Compose v2

docker compose --profile remote up --build

see usage above and docker-compose.yml to use local files: (all files inside cdn/)

docker compose --profile local up --build

seeding

this is left up to the user, but after running the scripts you can add the torrent / files to your favourite client. Note: ensure the correct port(s) are open for your client

example with transmission-daemon:

transmission-daemon --config-dir ./config --download-dir ./downloads --watch-dir ./watch --foreground

for some automation linux/debian users can install inotifywait which can watch a directory for new files. when i push a torrent file to the watch folder - a script to remove the old torrent files is run. the webseed will be used to bootstrap the first seed node, simple.

apt install inotify-tools

running ./inotify.sh in a screen session will delete old torrent files when a new Monero torrent is placed in the ./watch folder.

if your client supports adding an RSS feed, one is provided in the rss folder.

About

create a multi-file torrent of all monero release binaries with a deterministic file info hash and bootstrapped via getmonero webeed.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •