ENPLDEPT
Flash
Cała dokumentacja
Store · sprzedawca

Sprzedaj miejsce na dysku innym właścicielom nodów — agent Sensmos Store na NAS lub domowy serwer

Inni właściciele nodów potrzebują miejsca na zaszyfrowane kopie. Twój NAS, Raspberry albo domowy serwer ma miejsce, którego nie używa. Agent Store łączy jedno z drugim — trzymasz szyfrogram, którego nie odczytasz, odpowiadasz na dowód kilka razy dziennie i dostajesz zapłatę za każdy dzień, w którym dowód przeszedł. Nic nie idzie przez Twojego noda, nic nie otwiera się w firewallu.

Dla kogo to jest

Maszyna, która i tak stoi — NAS, Raspberry, mały domowy serwer, skrzynka w szafie, za którą już płacisz — z gigabajtem lub więcej miejsca, którego nie potrzebujesz, w tym samym LAN-ie co node Sensmos. Linux z Pythonem 3, nic do instalowania poza samym skryptem. Root jest potrzebny tylko do zapisania pliku stanu i jednostki systemd.

Kupującym jest zawsze inny właściciel noda: Store to handel wewnętrzny między ludźmi, którzy mają nody, nie publiczna chmura. Z kupującym nie masz do czynienia bezpośrednio; serwer dobiera sprzedawców, przenosi bajty i rozlicza dni.

Co naprawdę trzymasz

Zaszyfrowane bloby. Apka kupującego szyfruje każdy plik na telefonie kluczem wyprowadzonym z podpisu jego portfela; do Ciebie dociera szyfrogram z losowym identyfikatorem. Nie dostajesz klucza, nazwy pliku ani niczego, co wskazuje kupującego. Po Twojej stronie nie ma ścieżki w kodzie, która mogłaby cokolwiek odszyfrować — agent to jeden czytelny plik, sprawdź sam.

Szybki start

Uruchom to na maszynie, która będzie trzymać dane. Raz rozmawia z Twoim nodem po LAN-ie, potem już tylko z serwerem.

# 1 — pobierz agenta (jeden plik, tylko biblioteka standardowa)
sudo curl -fsSL -o /usr/local/bin/sensmos-store.py https://sensmos.com/ext/sensmos-store.py
sudo chmod +x /usr/local/bin/sensmos-store.py

# 2 — sparuj przez noda: jego adres w LAN-ie, jego PIN, etykieta, gdzie trzymać bloby, ile oferujesz
sudo sensmos-store.py --pair 192.168.1.50 --pin 123456 --name "NAS w piwnicy" \
                      --dir /srv/sensmos-store --capacity 100G

# 3 — zainstaluj i uruchom jako usługę startującą z systemem
sudo sensmos-store.py --install-service

# 4 — patrz
journalctl -u sensmos-store -f

Parowanie wypisuje OK — attachment …, token saved to /etc/sensmos-store.json. W logu usługi widać potem:

21:14:02 store agent store-py/0.1  dir=/srv/sensmos-store  capacity=100 GB  used=0.00 GB
21:14:03 connected as 3f9a1c2e

Od tej chwili jesteś w puli. Pierwszy kupujący pokaże się w logu jako put 7d0b… 18.1 MB …, a po nim put 7d0b… done; dowody jako proof 7d0b… block 3: answered (10 MB hashed).

Adres noda w LAN-ie znajdziesz na liście klientów routera; PIN to PIN noda z apki. Node musi być w chwili parowania online (połączony z serwerem) — przekazuje Twoją prośbę i odpowiedź serwera.

Jak dostajesz zapłatę

cowarunki
cena0,1 GALU za GB za kopię na dobę — pakiet zaczyna się od 1 GB i rośnie po 1 GB; 10 GB to 1 GALU dziennie za kopię
Twój udział70%; 30% wraca do puli nagród
płatne zakażdy dzień, w którym pakiet kupującego jest przypięty do Ciebie, a Ty byłeś na miejscu: gdy jego pliki leżą na Twoim dysku, kopia zaliczyła dowód; gdy pakiet jest jeszcze pusty, agent meldował się tego dnia — miejsce jest zarezerwowane tak czy inaczej
niepłatne zadni offline albo z oblanym dowodem; dni, w których kupujący nie miał GALU — taki dzień liczy się kupującemu jako zaległość (wysyłki wstrzymane, po 14 dobach kopie zwolnione), a Ty za niego nie dostajesz zapłaty

Rozliczenie idzie na serwerze raz na godzinę i księguje każdą trójkę (dzień, kupujący, sprzedawca) raz. GALU ląduje w saldzie Twojego portfela jak każdy inny przychód z usług.

Dowody — skąd serwer wie, że dalej masz plik

Trzy razy dziennie na kopię serwer wybiera losowy blok 10 MB losowego pliku, który trzymasz, i wysyła sól. Twój agent liczy skrót bloku z solą i odpowiada 32 bajtami — żadne dane nie idą, po naszej stronie nic nie jest liczone. Przy dwóch kopiach u dwóch sprzedawców obie odpowiedzi porównywane są ze sobą. Gdy się różnią albo gdy online jest tylko jedna kopia, serwer prosi o surowy blok i sprawdza go z listą skrótów, którą kupujący przysłał przy wysyłce.

Trzy oblane dowody z rzędu i kopia dostaje status zrzuconej: koniec wyzwań, koniec zapłaty. Innej kary nie ma — po prostu przestajesz na niej zarabiać.

Pojemność i dobór sprzedawców

  • --capacity to Twoja oferta. Nie jest sprawdzana — kto zadeklaruje więcej, niż ma, obleje dowody i nic nie zarobi, i to jest cała kontrola.
  • Liczy się wolne miejsce w księdze serwera (co u Ciebie umieścił), nie meldunek agenta; raport co pięć minut jest informacyjny.
  • Pakiet kupującego zaczyna się od 1 GB i rośnie po gigabajcie u tych samych sprzedawców, więc każdy pełny wolny gigabajt Twojej oferty da się sprzedać.
  • Sprzedawcy są szeregowani po wolnym miejscu; dwie kopie kupującego idą zawsze do dwóch różnych właścicieli i nigdy na maszyny samego kupującego.
  • Raz wybrany jesteś przypięty: każdy plik, który ten kupujący od tej chwili wyśle, ląduje u Ciebie, a gdy dokupi gigabajt, musi się on zmieścić u Ciebie. Jego pakiet sam nigdzie się nie przenosi. Kupujący może go w każdej chwili zamknąć: jego pliki znikają z Twojego dysku, miejsce jest znów wolne, a opłaty kończą się z tym dniem.

Żeby zmienić ofertę, popraw capacity_b w /etc/sensmos-store.json i zrestartuj usługę. Żeby przestać sprzedawać, zatrzymaj usługę — bez dowodów Twoje kopie zostaną zrzucone w ciągu doby i wypadasz z puli; bloby w --dir możesz skasować.

Sieć

Agent łączy się wychodząco z sensmos.com po TLS i trzyma to jedno połączenie. Żadnego portu przychodzącego, żadnego przekierowania, działa za CGNAT. Transfery, dowody i kasowania przychodzą tym samym połączeniem.

Gdzie to widać

Dziś: w logu usługi. Apka nie pokazuje jeszcze statystyk sprzedawcy; to jest w budowie i ta strona powie, gdy będzie.

Flagi

flagaznaczenie
--pair IP --pin PIN --name "…"jednorazowe parowanie przez noda
--dir DIRgdzie trzymane są bloby (domyślnie /var/lib/sensmos-store)
--capacity 100Goferowane miejsce; przyrostki M, G, T
--install-servicekopia do /usr/local/bin, zapis i włączenie jednostki systemd
--be URLinny serwer, do testów

Jednostka, którą zapisuje:

# /etc/systemd/system/sensmos-store.service
[Unit]
Description=Sensmos store agent
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/bin/python3 /usr/local/bin/sensmos-store.py
Restart=always
RestartSec=10
User=root

[Install]
WantedBy=multi-user.target

Parowanie — token

Agent nie ma własnych poświadczeń. Prosi Twojego noda (PIN-em noda, z wnętrza LAN-u), żeby za niego poręczył; node przekazuje prośbę do serwera, a serwer wydaje token o zakresie store.serve — obsługa sesji Store, nic więcej. Token leży w /etc/sensmos-store.json (prawa 0600) i agent odnawia go sam. Jeden node może poręczyć za najwyżej cztery przystawki. Pełny kontrakt jest na stronie Przystawki i EXT API.

Aktualizacje

Agent nigdy nie aktualizuje się sam: działa jako root w Twoim LAN-ie, a serwer, który mógłby wgrać mu kod, byłby drogą do Twojej sieci. Żeby zaktualizować, powtórz krok 1 i zrestartuj:

sudo curl -fsSL -o /usr/local/bin/sensmos-store.py https://sensmos.com/ext/sensmos-store.py
sudo systemctl restart sensmos-store

Początki

Store jest nowy. Na czas testów pakiet to jedna kopia zamiast dwóch, a pula jest mała. Cena za kopię nie zmieni się, gdy druga kopia wróci. Jeśli postawisz sprzedawcę i przez jakiś czas nic nie przychodzi, to uczciwy stan popytu, nie błąd po Twojej stronie — odezwij się na Discordzie, a powiemy, jak wygląda pula.

Pytania i proste odpowiedzi

Czy mogę odczytać to, co trzymam?

Nie. Kupujący szyfruje każdy plik na własnym telefonie kluczem wyprowadzonym z portfela; dostajesz szyfrogram, nigdy klucz, nigdy nazwę pliku. Serwer też tego nie odczyta — tylko przekazuje bajty i trzyma listę skrótów od kupującego.

Co, gdy moja maszyna jest wyłączona?

Za ten dzień nic nie zarabiasz. Dowód bez odpowiedzi liczy się jako oblany; po trzech oblanych z rzędu kopia jest zrzucana. Dziś zrzucona kopia nie jest przenoszona do innego sprzedawcy — plik kupującego zostaje na jego pozostałej kopii — więc chodzi właśnie o maszynę włączoną na stałe.

Ile zarabiam?

0,1 GALU za GB za kopię na dobę, z czego 70% jest Twoje: pakiety zaczynają się od 1 GB i rosną po gigabajcie, więc pakiet 10 GB u Ciebie to 0,7 GALU dziennie. Tylko w dni, w których kupujący ma u Ciebie pakiet, a Ty byłeś na miejscu: zaliczony dowód, gdy jego pliki są na Twoim dysku, dzienny meldunek agenta, dopóki pakiet jest pusty. Nie obiecujemy, ilu będzie kupujących.

Czy mogę zaoferować 3 GB?

Tak. Pakiety zaczynają się od 1 GB i rosną po jednym gigabajcie, więc każdy pełny gigabajt Twojej oferty da się sprzedać — trzem kupującym z pakietem startowym albo jednemu, który dokupił do 3 GB.

Czy mój node potrzebuje radia albo czegoś specjalnego?

Nie. Dowolny node Sensmos w tym samym LAN-ie, online, z jego PIN-em. Ręczy za agenta tylko raz; potem nie bierze w niczym udziału.

Jest obraz Dockera?

Jeszcze nie. Wspierana droga to usługa systemd na hoście z Linuksem.

Aktualizacja: 2026-09-07