Skip to content

Setting up a Hub

Alex Grin edited this page Nov 14, 2022 · 37 revisions

create an aws instance

We recommend a c5.4xlarge instance or equivalent (16 vCPU, 32G RAM, 500GB SSD drive)

(As a benchmark, on Nov 13, 2022 this setup used 350 gigs of disk space.)

create lbry user

sudo adduser lbry --disabled-password --gecos ""
sudo -H -u lbry bash -c 'mkdir -p /home/lbry/.ssh && echo "YOUR-SSH-KEY" >> /home/lbry/.ssh/authorized_keys'
sudo -H -u root bash -c 'echo "lbry ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'

logout and log in as lbry user

install docker

https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo service docker start
sudo usermod -aG docker $USER
newgrp docker
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

create lbcd and rocksdb volumes

mkdir -p /home/lbry/docker-volumes/lbcd /home/lbry/docker-volumes/rocksdb
sudo chown -R 999:999 /home/lbry/docker-volumes
docker volume create --driver local --opt type=none --opt device=/home/lbry/docker-volumes/lbcd --opt o=bind lbry_lbcd
docker volume create --driver local --opt type=none --opt device=/home/lbry/docker-volumes/rocksdb --opt o=bind lbry_rocksdb

download lbcd snapshot

sudo apt install -y zstd
cd /home/lbry/docker-volumes/lbcd
wget -c https://snapshots.lbry.com/blockchain/lbcd_snapshot_1238238_v0.22.116_2022-10-07.tar.zst -O - | tar --zstd -x
sudo chown -R 999:999 .
cd ~

download docker-compose.yml

https://github.com/lbryio/hub/wiki/docker-compose.yml

remember to remove markdown if downloading directly from that url

start lbcd first and let it catch up

docker compose up -d lbcd

wait for it to sync fully (how will they know?)

download scribe snapshot

cd /home/lbry/docker-volumes/lbcd
wget -c https://snapshots.lbry.com/hub/block_1256013/lbry-rocksdb.tar -O - | tar -x
sudo chown -R 999:999 .
cd ~

start scribe and let it sync

scribe sync takes two days if you sync from scratch, or an hour or two if you use a recent snapshot

docker compose up -d scribe

wait for it to sync

then start elastic sync and wait for that

docker compose up -d scribe_elastic_sync

wait for it to sync

finally start herald

federation

Clone this wiki locally