Artykuł 7

Ten artykuł wyjaśnia techniczną implementację systemu wielo-użytkownikowego SafeClaw — jak działa izolacja użytkowników, jak egzekwowane są kontrole dostępu oraz jak są kierowane trzy typy kont Binance.



━━━ GŁÓWNE WYZWANIE ━━━

Agenta AI dla jednego użytkownika jest stosunkowo łatwo zabezpieczyć. Publiczny agent wielo-użytkownikowy obsługujący prawdziwe klucze API finansowych to fundamentalnie inny problem.

Wymagania:
1. Klucz API Użytkownika A musi być niewidoczny dla Użytkownika B
2. Historia transakcji Użytkownika A musi być niewidoczna dla Użytkownika B
3. Plan DCA użytkownika A nie może wpływać na użytkownika B
4. Kompromitowana sesja dla użytkownika A nie może ujawniać użytkownika B
5. Bot musi kierować wywołania API każdego użytkownika do odpowiedniego środowiska Binance

SafeClaw rozwiązuje wszystkie pięć.



━━━ ARCHITEKTURA IZOLACJI SESJI ━━━

System sesji OpenClaw jest skonfigurowany z:
dmScope: "per-channel-peer"

To oznacza: każdy unikalny identyfikator użytkownika Telegrama otrzymuje swój własny izolowany kontekst sesji.

Technicznie, co to oznacza:
• Wiadomości każdego użytkownika są przetwarzane w osobnej przestrzeni nazw sesji
• Dane sesji (przechowywane w sessions.json) są kluczone według identyfikatora użytkownika Telegrama
• Sesja żadnego użytkownika nie może odczytać danych z sesji innego użytkownika
• Kontekst agenta AI dla każdego użytkownika zawiera tylko dane tego użytkownika

Dane sesji przechowywane na użytkownika:
• typ_konta_binance (na żywo/demo/testnet)
• klucz_na_żywo_binance, tajny_klucz_na_żywo_binance
• klucz_demo_binance, tajny_klucz_demo_binance
• klucz_testnet_binance, tajny_klucz_testnet_binance
• klucz_square_binance
• waluta, metody płatności, profil ryzyka
• dca_asset, dca_amount, dca_interval, dca_history
• simulation_history, evaluation_scores

Żadne z tych danych nie jest dostępne dla innych użytkowników.



━━━ SYSTEM KONTROLI DOSTĘPU TRZECH KONTA ━━━

SafeClaw obsługuje trzy różne typy kont Binance dla każdego użytkownika. Umiejętność api-router zajmuje się kierowaniem:

KONTO RZECZYWISTE (Produkcja)
Polecenie: /updatekey [KEY] [SECRET]
Koniec walidacji: https://api.binance.com/api/v3/account
Koniec handlowy: https://api.binance.com
Koniec kontraktów terminowych: https://fapi.binance.com
Przypadek użycia: Żywe DCA, rzeczywiste monitorowanie zysków
Bezpieczeństwo: Uprawnienie do wypłat = natychmiastowe odrzucenie
Ograniczenie IP: Użytkownicy zostali poinformowani, aby ograniczyć do IP serwera

KONTO DEMO (Praktyka)
Polecenie: /updatekey-demo [KEY] [SECRET]
Koniec walidacji: https://demo-api.binance.com/api/v3/account
Koniec handlowy: https://demo-api.binance.com
Koniec kontraktów terminowych: https://demo-fapi.binance.com
Przypadek użycia: Symulacja w Akademii, testowanie strategii
Saldo: 5,000 USDT dostarczone przez Binance
Bezpieczeństwo: Brak rzeczywistych funduszy, brak ryzyka wypłat

TESTNET (Rozwój)
Polecenie: /updatekey-testnet [KEY] [SECRET]
Koniec walidacji: https://testnet.binance.vision/api/v3/account
Koniec handlowy: https://testnet.binance.vision
Przypadek użycia: Deweloperzy budujący na Binance, testowanie API
Saldo: Fundusze testnet z testnet.binance.vision



━━━ PROCES WALIDACJI KLUCZA API ━━━

Każdy przesłany klucz przechodzi przez ten dokładny proces:

1. Walidacja formatu
Długość klucza: musi mieć 64 znaki
Zbiór znaków: tylko alfanumeryczne
Jeśli nieprawidłowy: "Nieprawidłowy format klucza. Proszę sprawdzić i spróbować ponownie."

2. Żywe wywołanie API
GET {correct_endpoint}/api/v3/account
Z podpisanym znacznikiem czasu HMAC SHA256
Limit czasu: 10 sekund

3. Inspekcja uprawnień
Analizuj tablicę .permissions z odpowiedzi
Jeśli "WITHDRAWALS" obecny → odrzuć
Jeśli "TRANSFER" obecny → odrzuć
Jeśli "SPOT" nieobecny → ostrzeż użytkownika (może nie być w stanie handlować)
Jeśli canTrade = false → ostrzeż użytkownika

4. Przechowywanie
Po sukcesie: zapisane w pamięci sesji użytkownika
Flaga typu konta ustawiona: "na żywo" / "demo" / "testnet"
Użytkownik powiadomiony etykietą konta

5. Podpowiedź bezpieczeństwa
"✅ [Typ konta] połączone."
"⚠️ Proszę USUNĄĆ swoją wiadomość /updatekey z czatu teraz."



━━━ LOGIKA KIEROWANIA ━━━

Każda umiejętność, która wykonuje wywołanie API Binance, odczytuje z umiejętności api-router:

api-router odczytuje: typ_konta_binance z sesji
Zwraca: BASE_URL, FUTURES_URL, USER_KEY, USER_SECRET, ACCOUNT_LABEL

Umiejętności, które używają api-router:
• smartdca (każde wykonanie DCA)
• safeclaw-academy (każda symulacja)
• yield-monitor (każde zapytanie o zyski)
• profile (wyświetlanie salda)
• guardianclaw (przy wykonywaniu zatwierdzonych transakcji)

Umiejętności, które NIE potrzebują api-router (publiczne API):
• p2p-safefinder (API P2P jest publiczne)
• briefing (dane o cenach są publiczne)
• square-content-engine (wiadomości/trendy są publiczne)



━━━ CO SIĘ DZIEJE, GDY NIE USTAWIONO KLUCZA ━━━

Jeśli użytkownik próbuje uruchomić /dca run lub /simulate bez skonfigurowanego klucza:

"⚠️ Żadne konto Binance nie jest połączone.

Aby skorzystać z tej funkcji:
• /updatekey — Rzeczywiste konto Binance
• /updatekey-demo — Konto praktyczne (ZALECANE)
• /updatekey-testnet — Testnet dla programistów

Wyszukiwanie P2P i briefingi rynkowe działają bez klucza API."

Bot nigdy nie korzysta z uprawnień na poziomie serwera. Jeśli żaden klucz użytkownika nie jest skonfigurowany, funkcja jest niedostępna dla tego użytkownika.



━━━ OBSŁUGA WIELOKROTNYCH UŻYTKOWNIKÓW ━━━

Konfiguracja OpenClaw:
agents.defaults.maxConcurrent: 4
agents.defaults.subagents.maxConcurrent: 8

To oznacza:
• Do 4 głównych wykonania agentów działających równolegle
• Do 8 operacji sub-agenta na głównego agenta
• Dodatkowe żądania są kolejkowane — żadnych utraconych wiadomości

Na t3.small (2 vCPU, 2GB RAM), to komfortowo obsługuje dziesiątki równoczesnych użytkowników. Głównym wąskim gardłem są limity szybkości API OpenRouter, a nie zasoby serwera.



━━━ ROZSZERZENIE PRZYSZŁOŚCI ━━━

Skalowanie multi-instancyjne:
• Magazyn sesji Redis umożliwia wielu instancjom OpenClaw dzielenie stanu
• Load balancer rozdziela ruch webhooków Telegrama
• Każda instancja obsługuje podzbiór użytkowników z identycznymi możliwościami

Wybór modelu na użytkownika:
• Użytkownicy premium mogą kierować do Claude Sonnet dla wyższej dokładności
• Bezpłatna warstwa kieruje do bezpłatnych modeli zapasowych
• Wybór modelu zapisany w sesji użytkownika

Kategorie użytkowników:
• Bezpłatna: P2P, Briefing, Ucz się
• Standardowa: + DCA, Ochrona, Akademia
• Premium: + Zysk, Silnik treści, Priorytetowe kierowanie

Szybkie linki:

Artykuł 1 Artykuł 2 Artykuł 3 Artykuł 4 Artykuł 5 Artykuł 6 Artykuł 8

Źródło: https://github.com/bnbnepalbinanceangel/SafeClaw

#AIBinance #SafeClaw #MultiUser #AccessControl #OpenClaw