hi, i have an multiple hidden services with onionbalance on the same server and periodically one of master-domains is offline, but if i try restart service multiple times - domain is online.
here an logs from service with offline domain:
#-----------------------master------------------------
service1_master | 2026-01-09 16:36:04,738 [INFO]: [*] fetch_instance_descriptors() called [*]
service1_master | 2026-01-09 16:36:04,739 [INFO]: Initiating fetch of descriptors for all service instances.
service1_master | 2026-01-09 16:36:10,246 [INFO]: Found instance sgdfoigjwohgd4fhgidgowisgoehirgoiehrogahefdogregsdfgwrad for this new descriptor!
service1_master | 2026-01-09 16:36:10,249 [INFO]: We got a new descriptor for instance sgdfoigjwohgd4fhgidgowisgoehirgoiehrogahefdogregsdfgwrad but the intro set did not change.
service1_master | 2026-01-09 16:36:10,504 [INFO]: Found instance fdgfeqgjwohgd4fhgidgoewfsdgwrhjoiehrogahefdogregsdfgwrid for this new descriptor!
service1_master | 2026-01-09 16:36:10,507 [INFO]: We got a new descriptor for instance fdgfeqgjwohgd4fhgidgoewfsdgwrhjoiehrogahefdogregsdfgwrid but the intro set did not change.
service1_master | 2026-01-09 16:36:10,834 [INFO]: Found instance fsdgahfgkjdfghehfsgjoewfsdgwrhjoiehrogahefdogregsdfgwrid for this new descriptor!
service1_master | 2026-01-09 16:36:10,837 [INFO]: We got a new descriptor for instance fsdgahfgkjdfghehfsgjoewfsdgwrhjoiehrogahefdogregsdfgwrid but the intro set did not change.
service1_master | 2026-01-09 16:36:11,995 [INFO]: Found instance htjefhrfgfuefhehfsgjoewfsdgwrhjoiehrogahefdogregsdfgwrid for this new descriptor!
service1_master | 2026-01-09 16:36:11,998 [INFO]: We got a new descriptor for instance htjefhrfgfuefhehfsgjoewfsdgwrhjoiehrogahefdogregsdfgwrid but the intro set did not change.
service1_master | 2026-01-09 16:36:51,887 [INFO]: [*] publish_all_descriptors() called [*]
service1_master | 2026-01-09 16:36:51,888 [INFO]: Intro set not modified
service1_master | 2026-01-09 16:36:51,888 [INFO]: Our first descriptor is still fresh (3599 seconds old).
service1_master | 2026-01-09 16:36:51,897 [INFO]: Using srv dae5f6eb79c695789663c7d56c627dd38444875b0d64534b8661ab8dbee9e7f5 and TP#20461 (first descriptor)
service1_master | 2026-01-09 16:36:51,994 [INFO]: Initialized hash ring of size 5774 (blinded key: b'DhGLJ6ztpkP8+NwVVCiNIsKk6lRCDcuj+N/Yvy9wl8o=')
service1_master | 2026-01-09 16:36:51,994 [INFO]: Getting HS index with TP#20461 for first descriptor (1 replica)
service1_master | 2026-01-09 16:36:51,994 [INFO]: Tried with HS index 557e3f6b0c75b0240932a046987abec66bf616bc632291293bc65f33390a2ea5 got position 1930
service1_master | 2026-01-09 16:36:51,994 [INFO]: Getting HS index with TP#20461 for first descriptor (2 replica)
service1_master | 2026-01-09 16:36:51,994 [INFO]: Tried with HS index 1607ebb098e886f10f9480982e3ea382663c4a2522598222593937f2223f6022 got position 480
service1_master | 2026-01-09 16:36:51,994 [INFO]: HSDir set remained the same
service1_master | 2026-01-09 16:36:51,994 [INFO]: No reason to publish first descriptor for hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion
service1_master | 2026-01-09 16:36:51,994 [INFO]: Intro set not modified
service1_master | 2026-01-09 16:36:51,994 [INFO]: Our second descriptor is still fresh (3599 seconds old).
service1_master | 2026-01-09 16:36:51,999 [INFO]: Using srv 1bc8ad0ab9eb2f6b6b3d00bdc65bd5af5fc15595fbf6ca66019c91e2792fe722 and TP#20462 (second descriptor)
service1_master | 2026-01-09 16:36:52,044 [INFO]: Initialized hash ring of size 5774 (blinded key: b'EDuPkqwQnV+uRWGqkBn5uKd19KVruNTjlf+tPwWgMaw=')
service1_master | 2026-01-09 16:36:52,044 [INFO]: Getting HS index with TP#20462 for second descriptor (1 replica)
service1_master | 2026-01-09 16:36:52,044 [INFO]: Tried with HS index ebb7613a6c1ef26b738ec280e2f5d01235c0ef883ecf7f3c6ab24aecc0db71e7 got position 5304
service1_master | 2026-01-09 16:36:52,044 [INFO]: Getting HS index with TP#20462 for second descriptor (2 replica)
service1_master | 2026-01-09 16:36:52,044 [INFO]: Tried with HS index e769916436ddb214539256569900a3dd2b468223a1192e5107a2fc9a6f0c6887 got position 5210
service1_master | 2026-01-09 16:36:52,044 [INFO]: HSDir set remained the same
service1_master | 2026-01-09 16:36:52,044 [INFO]: No reason to publish second descriptor for hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion
service1_master | 2026-01-09 16:41:51,086 [INFO]: [*] publish_all_descriptors() called [*]
service1_master | 2026-01-09 16:41:51,086 [INFO]: Intro set not modified
service1_master | 2026-01-09 16:41:51,086 [INFO]: Our first descriptor has expired (3898 seconds old). Uploading new one.
service1_master | 2026-01-09 16:41:51,096 [INFO]: Using srv dae5f6eb79c695789663c7d56c627dd38444875b0d64534b8661ab8dbee9e7f5 and TP#20461 (first descriptor)
service1_master | 2026-01-09 16:41:51,189 [INFO]: Initialized hash ring of size 5774 (blinded key: b'DhGLJ6ztpkP8+NwVVCiNIsKk6lRCDcuj+N/Yvy9wl8o=')
service1_master | 2026-01-09 16:41:51,189 [INFO]: Getting HS index with TP#20461 for first descriptor (1 replica)
service1_master | 2026-01-09 16:41:51,189 [INFO]: Tried with HS index 557e3f6b0c75b0240932a046987abec66bf616bc632291293bc65f33390a2ea5 got position 1930
service1_master | 2026-01-09 16:41:51,189 [INFO]: Getting HS index with TP#20461 for first descriptor (2 replica)
service1_master | 2026-01-09 16:41:51,190 [INFO]: Tried with HS index 1607ebb098e886f10f9480982e3ea382663c4a2522598222593937f2223f6022 got position 480
service1_master | 2026-01-09 16:41:51,190 [INFO]: HSDir set remained the same
service1_master | 2026-01-09 16:41:51,190 [INFO]: We got 12 intros from 4 instances. We want 8 intros ourselves (got: 8)
service1_master | 2026-01-09 16:41:51,584 [INFO]: Service hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion created first descriptor (8 intro points) (blinding param: 2bd2db38a1bad942a0fffc20b6fc5d2c6933ef8182d400f051fd4047fcfa7d79) (size: 26419 bytes). About to publish:
service1_master | 2026-01-09 16:41:51,584 [INFO]: Using srv dae5f6eb79c695789663c7d56c627dd38444875b0d64534b8661ab8dbee9e7f5 and TP#20461 (first descriptor)
service1_master | 2026-01-09 16:41:51,620 [INFO]: Initialized hash ring of size 5774 (blinded key: b'DhGLJ6ztpkP8+NwVVCiNIsKk6lRCDcuj+N/Yvy9wl8o=')
service1_master | 2026-01-09 16:41:51,620 [INFO]: Getting HS index with TP#20461 for first descriptor (1 replica)
service1_master | 2026-01-09 16:41:51,620 [INFO]: Tried with HS index 557e3f6b0c75b0240932a046987abec66bf616bc632291293bc65f33390a2ea5 got position 1930
service1_master | 2026-01-09 16:41:51,620 [INFO]: Getting HS index with TP#20461 for first descriptor (2 replica)
service1_master | 2026-01-09 16:41:51,620 [INFO]: Tried with HS index 1607ebb098e886f10f9480982e3ea382663c4a2522598222593937f2223f6022 got position 480
service1_master | 2026-01-09 16:41:51,620 [INFO]: Uploading first descriptor for hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion to ['5A1688FA7441B69920F8DC2A71265C57393CADE7', '32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F', '876BA5C41AB7F4A8A99AACAB980C081DBA61711B', '6A562C3B1403AE530FD93CD7B84EA1DDBC1BB306', '0CAFFFE470E88AF156D6750B616995B3790F24EF', 'D281CCB4BEF52391DCD7E90E73B32E324043A944', '1AD5D1AB1932F683B6CE40D85021FB4CA830E7F2', '54D3DD124E52B1A474838A60005D10AA4CBF167A']
service1_master | 2026-01-09 16:41:51,700 [INFO]: Intro set not modified
service1_master | 2026-01-09 16:41:51,701 [INFO]: Our second descriptor has expired (3899 seconds old). Uploading new one.
service1_master | 2026-01-09 16:41:51,704 [INFO]: Using srv 1bc8ad0ab9eb2f6b6b3d00bdc65bd5af5fc15595fbf6ca66019c91e2792fe722 and TP#20462 (second descriptor)
service1_master | 2026-01-09 16:41:51,738 [INFO]: Initialized hash ring of size 5774 (blinded key: b'EDuPkqwQnV+uRWGqkBn5uKd19KVruNTjlf+tPwWgMaw=')
service1_master | 2026-01-09 16:41:51,738 [INFO]: Getting HS index with TP#20462 for second descriptor (1 replica)
service1_master | 2026-01-09 16:41:51,738 [INFO]: Tried with HS index ebb7613a6c1ef26b738ec280e2f5d01235c0ef883ecf7f3c6ab24aecc0db71e7 got position 5304
service1_master | 2026-01-09 16:41:51,738 [INFO]: Getting HS index with TP#20462 for second descriptor (2 replica)
service1_master | 2026-01-09 16:41:51,738 [INFO]: Tried with HS index e769916436ddb214539256569900a3dd2b468223a1192e5107a2fc9a6f0c6887 got position 5210
service1_master | 2026-01-09 16:41:51,738 [INFO]: HSDir set remained the same
service1_master | 2026-01-09 16:41:51,738 [INFO]: We got 12 intros from 4 instances. We want 8 intros ourselves (got: 8)
service1_master | 2026-01-09 16:41:51,909 [INFO]: Service hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion created second descriptor (8 intro points) (blinding param: 7af21d1b57034c3efddb679f8ee1454fea40ab62fe1ad3bb8bd19030719cf40e) (size: 26322 bytes). About to publish:
service1_master | 2026-01-09 16:41:51,909 [INFO]: Using srv 1bc8ad0ab9eb2f6b6b3d00bdc65bd5af5fc15595fbf6ca66019c91e2792fe722 and TP#20462 (second descriptor)
service1_master | 2026-01-09 16:41:51,941 [INFO]: Initialized hash ring of size 5774 (blinded key: b'EDuPkqwQnV+uRWGqkBn5uKd19KVruNTjlf+tPwWgMaw=')
service1_master | 2026-01-09 16:41:51,941 [INFO]: Getting HS index with TP#20462 for second descriptor (1 replica)
service1_master | 2026-01-09 16:41:51,941 [INFO]: Tried with HS index ebb7613a6c1ef26b738ec280e2f5d01235c0ef883ecf7f3c6ab24aecc0db71e7 got position 5304
service1_master | 2026-01-09 16:41:51,941 [INFO]: Getting HS index with TP#20462 for second descriptor (2 replica)
service1_master | 2026-01-09 16:41:51,941 [INFO]: Tried with HS index e769916436ddb214539256569900a3dd2b468223a1192e5107a2fc9a6f0c6887 got position 5210
service1_master | 2026-01-09 16:41:51,942 [INFO]: Uploading second descriptor for hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion to ['A5E662AB4A4644E55D6C37D56468B57ADA8D0F6B', '868D28B145A379BE094390A52E61C063A891A1EB', 'AA876FF84E0F035F1D20BDF0150C045156168619', 'EBC856A495B361C4207229CB03EFE64637A5CE4F', '4916C94702DB9FE5A94B69657880FCF6D1B2A21B', '3D01CE600B2DC5C719684800E8C6990FE4CB8F9A', '071C2330B45FCFE8228161CAEED4E6AADE60841B', '81F4867EC51E06053346C0226FB82AC8D14BE4D2']
service1_master | 2026-01-09 16:41:52,433 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F~ndnr1 (UPLOAD_REJECTED)
service1_master | 2026-01-09 16:41:52,557 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $5A1688FA7441B69920F8DC2A71265C57393CADE7~AnonRelay13 (UPLOAD_REJECTED)
service1_master | 2026-01-09 16:41:52,594 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $6A562C3B1403AE530FD93CD7B84EA1DDBC1BB306~privatus (UPLOAD_REJECTED)
service1_master | 2026-01-09 16:41:52,824 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $0CAFFFE470E88AF156D6750B616995B3790F24EF~mgvx (UPLOAD_REJECTED)
service1_master | 2026-01-09 16:41:52,825 [WARNING]: Descriptor upload failed for frontend hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid to $876BA5C41AB7F4A8A99AACAB980C081DBA61711B~TORKeFFORG13 (UPLOAD_REJECTED)
#-----------------------node1------------------------
service1_node_1 | Jan 08 18:50:32.828 [notice] Tor 0.4.8.21 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.3.5, Zlib 1.3.1, Liblzma 5.6.2, Libzstd 1.5.6 and Unknown N/A as libc.
service1_node_1 | Jan 08 18:50:32.828 [notice] Tor can't help you if you use it wrong! Learn how to be safe at
service1_node_1 | Jan 08 18:50:32.828 [notice] Read configuration file "/etc/tor/torrc".
service1_node_1 | Jan 08 18:50:32.830 [notice] OnionBalance: MasterOnionAddress hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion registered
service1_node_1 | Jan 08 18:50:32.831 [notice] Opening Socks listener on 127.0.0.1:9050
service1_node_1 | Jan 08 18:50:32.831 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050
#-----------------------node2------------------------
service1_node_2 | Jan 08 18:50:32.770 [notice] Tor 0.4.8.21 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.3.5, Zlib 1.3.1, Liblzma 5.6.2, Libzstd 1.5.6 and Unknown N/A as libc.
service1_node_2 | Jan 08 18:50:32.770 [notice] Tor can't help you if you use it wrong! Learn how to be safe at
service1_node_2 | Jan 08 18:50:32.770 [notice] Read configuration file "/etc/tor/torrc".
service1_node_2 | Jan 08 18:50:32.772 [notice] OnionBalance: MasterOnionAddress hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion registered
service1_node_2 | Jan 08 18:50:32.773 [notice] Opening Socks listener on 127.0.0.1:9050
service1_node_2 | Jan 08 18:50:32.773 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050
#-----------------------node3------------------------
service1_node_3 | Jan 08 18:50:32.718 [notice] Tor 0.4.8.21 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.3.5, Zlib 1.3.1, Liblzma 5.6.2, Libzstd 1.5.6 and Unknown N/A as libc.
service1_node_3 | Jan 08 18:50:32.718 [notice] Tor can't help you if you use it wrong! Learn how to be safe at
service1_node_3 | Jan 08 18:50:32.718 [notice] Read configuration file "/etc/tor/torrc".
service1_node_3 | Jan 08 18:50:32.720 [notice] OnionBalance: MasterOnionAddress hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion registered
service1_node_3 | Jan 08 18:50:32.721 [notice] Opening Socks listener on 127.0.0.1:9050
service1_node_3 | Jan 08 18:50:32.721 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050
#-----------------------node4------------------------
service1_node_4 | Jan 08 18:50:32.994 [notice] Tor 0.4.8.21 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.3.5, Zlib 1.3.1, Liblzma 5.6.2, Libzstd 1.5.6 and Unknown N/A as libc.
service1_node_4 | Jan 08 18:50:32.994 [notice] Tor can't help you if you use it wrong! Learn how to be safe at
service1_node_4 | Jan 08 18:50:32.994 [notice] Read configuration file "/etc/tor/torrc".
service1_node_4 | Jan 08 18:50:32.996 [notice] OnionBalance: MasterOnionAddress hrufera2kgutrjguthwigjrhenwisdjt2irnjyiwjdntjgnejyigjeid.onion registered
service1_node_4 | Jan 08 18:50:32.997 [notice] Opening Socks listener on 127.0.0.1:9050
service1_node_4 | Jan 08 18:50:32.997 [notice] Opened Socks listener connection (ready) on 127.0.0.1:9050
here an torrc of master:
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:6666
ControlPort 9051
CookieAuthentication 1
Log notice file /var/log/tor/notices.log
here an torrc of onionbalance nodes:
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 service1:8080
HiddenServiceVersion 3
HiddenServiceOnionbalanceInstance 1
NumEntryGuards 8
CircuitBuildTimeout 30
Log notice file /var/log/tor/notices.log
here is my services setup. i build docker images with tor and onionbalance:
FROM alpine:3.20 AS tor
RUN apk add --no-cache tor
CMD ["tor", "-f", "/etc/tor/torrc"]
FROM alpine:3.20 AS onionbalance
RUN apk add --no-cache tor git py3-cryptography py3-pip py3-pycryptodomex py3-setproctitle py3-wheel
RUN pip install onionbalance --break-system-packages
CMD ["sh", "-c", "tor -f /etc/tor/torrc & sleep 5 && exec onionbalance -c /etc/onionbalance/config.yaml"]
here is my docker-compose.yml:
services:
service1:
image: service1:latest
container_name: service1
expose:
- "8080"
restart: unless-stopped
networks:
- tor_service1
service1_node_1:
image: tor:latest
container_name: service1_node_1
volumes:
- ./data/service1/node1/torrc:/etc/tor/torrc
- ./data/service1/node1/data:/var/lib/tor
depends_on:
- service1
restart: unless-stopped
networks:
- tor_service1
service1_node_2:
image: tor:latest
container_name: service1_node_2
volumes:
- ./data/service1/node2/torrc:/etc/tor/torrc
- ./data/service1/node2/data:/var/lib/tor
depends_on:
- service1
restart: unless-stopped
networks:
- tor_service1
service1_node_3:
image: tor:latest
container_name: service1_node_3
volumes:
- ./data/service1/node3/torrc:/etc/tor/torrc
- ./data/service1/node3/data:/var/lib/tor
depends_on:
- service1
restart: unless-stopped
networks:
- tor_service1
service1_master:
image: onionbalance:latest
container_name: service1_master
volumes:
- ./data/service1/onionbalance:/etc/onionbalance
- ./data/service1/master/torrc:/etc/tor/torrc
- ./data/service1/master/data:/var/lib/tor
depends_on:
- service1_node_1
- service1_node_2
- service1_node_3
restart: unless-stopped
networks:
- tor_service1
# similar for service2, service3, service4
networks:
tor_service1:
similar issues still without solution: