W zeszłym tygodniu członek społeczności CKB, Retric, zaproponował protokół wiązania Nostr.

Protokół wiązania Nostr służy do tworzenia mapowania jeden do jednego pomiędzy zdarzeniami Nostr i komórkami CKB. Zwykli użytkownicy mogą tworzyć i rozpowszechniać zasoby natywne w sieci społecznościowej Nostr w oparciu o ten protokół. Dzięki RGB++ te zasoby w Nostr mogą być również kontrolowane za pomocą adresów Bitcoin. Programiści klienccy mogą na nim budować produkty W przeciwieństwie do ETH dApp, który jest podzielony na dwa systemy (jeden to serwer poza łańcuchem, a drugi to inteligentny kontrakt w łańcuchu), protokół wiązania Nostr wprowadza nowy paradygmat programowania do dApp. Twórz dApps przy użyciu spójnego systemu z różnymi poziomami danych. Poinformowano, że protokół wiązania Nostr można w przyszłości bezproblemowo zintegrować z siecią CKB Lightning Network, aby rozwiązać natywne problemy z płatnościami w sieciach społecznościowych.

Nostr to minimalistyczny protokół przesyłania informacji oparty na kluczach publicznych i prywatnych, którego zadaniem jest stworzenie odpornej na cenzurę globalnej sieci społecznościowej. Nostr używa Relay do przechowywania danych społecznościowych (takich jak posty) i przesyłania ich użytkownikom, którzy uruchamiają oprogramowanie zwane Klientami.

9 marca tego roku, podczas pierwszej konferencji Bitcoin Singapore współorganizowanej przez Fundację Nervos i ABCDE, Retric wygłosił wykład tematyczny na temat „Bieżącej sytuacji i problemów rozwoju ekologicznego Nostr”👇

Poniżej znajduje się treść opracowana na podstawie udostępnień firmy Retric, która może pomóc każdemu lepiej zrozumieć protokół Nostr:

Ten protokół Nostr powinien być najprostszą rzeczą na dzisiejszym spotkaniu. W porównaniu z niektórymi technologiami lub protokołami, o których mówią inni, jest to najłatwiejsze do zrozumienia, ponieważ jest również bardzo proste. To, co Nostr chciał na początku zrobić, to tak naprawdę „Twitter”, ale ten Twitter nie był kontrolowany przez Elona Muska, ale bardziej zdecentralizowany Twitter, który nie robiłby nic złego ani nie robiłby nic złego. Idźcie, blokujcie ludzi i miejcie trochę wolności słowa . Chce to zrobić od bardziej realistycznego punktu wyjścia, to znaczy chce stworzyć takie oprogramowanie. W tym celu zaproponował zdecentralizowany protokół w sieciach społecznościowych o nazwie Nostr. Teraz wszyscy zaczynają zdawać sobie sprawę, że te rzeczy nie służą tylko do tworzenia Twittera, ale raczej do lepszej struktury Internetu, na której możemy tworzyć różne aplikacje.

Najpierw pokrótce przedstawię protokół Nostr. Można go właściwie wyjaśnić w jednym zdaniu: Są to dane podpisane kluczem prywatnym. Dane te są propagowane na różnych przekaźnikach lub wzmacniakach, a następnie wysyłane do klienta. Zasadniczo podpisuję dane w stałym formacie, a po podpisaniu wysyłam je do niektórych wzmacniaków, a następnie pozwalam innym użytkownikom pobierać te dane z tych wzmacniaków za pośrednictwem klienta, aby je odczytać.

图片

Podstawą Nostr jest struktura Jasona, która będzie miała różne pola, każde pole reprezentuje znaczenie. Na przykład klucz pubkey jest kluczem publicznym, którego użyłem do podpisania wysłanych danych. Na przykład ma kolumnę treści, co oznacza, jaka jest zawartość danych, które podpisałem. Może to być dowolny ciąg znaków Wysłałem, albo może to być liczba, albo rzecz zaszyfrowana. W protokole nie ma żadnych ograniczeń. Tutaj również będzie podpis, co oznacza, że ​​na przesłane przeze mnie dane złożyłem gwarancję, że dane rzeczywiście zostały przesłane z mojej strony.

Zatem rdzeń Nostr jest tak prosty, że oznacza to po prostu, że użyłem określonego klucza prywatnego do podpisania określonego fragmentu danych, który napisałem lokalnie. Po przesłaniu tych danych do Internetu struktura sieci Nostr jest również bardzo prosta i składa się tylko z dwóch struktur, jednej zwanej Relay i drugiej zwanej Klientem.

图片

Relay to serwer, który każdy może skonfigurować. Funkcja tego przekaźnika polega na tym, że zawsze działa w Internecie i monitoruje, kto przesłał mi dane, o których właśnie wspomniałem, a następnie odbiera je i zapisuje. Jeśli klient poprosi mnie o określone dane, przekażę mu je ponownie .

Druga część dotyczy sposobu rozpowszechniania tych danych, czyli specyfikacji rozpowszechniania, która faktycznie zawiera wiele szczegółów. Na przykład, jeśli przekażę te dane firmie Relay, czy będą się one ze sobą komunikować? Czy po tym, jak przekażę je do Relay, Relay zapisze dla mnie dane w całości, a następnie przekaże mi je, gdy o to poproszę? W rzeczywistości są takie szczegóły. Odpowiedź Nostra brzmi: „Nie obchodzi mnie to, możesz o tym pomyśleć sam”. Tak czy inaczej, jest to właściwie trochę dziwna reakcja, ale czasami myślę, że jest to mądrzejsza strategia. Czasami wydaje się, że niezależnie od tego, czy dzieje się to w realnym świecie, czy w Internecie, czasami nadmierne martwienie się szkodzi pewnym rzeczom, więc myślę, że ignorowanie tego jest naprawdę interesujące.

Podam na przykład prosty przykład. Kiedy korzystamy z tradycyjnej scentralizowanej sieci społecznościowej, scentralizowany serwer domyślnie zapisuje wszystkie Twoje dane. Wtedy, kiedy mnie o coś poprosisz, mogę ci to dać w każdej chwili, ale ponieważ Nostra to nie obchodzi, co się tutaj stanie? Niektórzy operatorzy przekaźników chcą stać się więksi i silniejsi i chcą zachować wszystkie wiadomości. Jest to jeden z rodzajów. Innym sposobem jest to, że jestem hobbystą i chcę po prostu zbudować bardzo mały węzeł i przyjmuję dane tylko od użytkowników, których lubię. Są też pewne dane, które jestem skłonny przyjąć od Ciebie, ale mogę ich nie chcieć po 30 minutach od otrzymania. Chcę je usunąć, ponieważ dysk na moim serwerze może być ograniczony i nie chcę ich w tym celu zapisywać długi.

Zatem w rzeczywistości będzie ewoluować w kierunku wielu różnych ról, a te różne role mogą mieć różny podział pracy. Przykładowo, jeśli ktoś naprawdę chce prowadzić działalność gospodarczą, to zostanę profesjonalnym węzłem serwisowym i będę starał się zapewnić każdemu bardziej stabilną i dłuższą usługę. Jest też kilku entuzjastów, którzy mogą również zarządzać urządzeniami takimi jak sieć LAN, więc będzie ona ewoluować w kierunku różnych podziałów pracy.

Powszechnym zjawiskiem jest to, że większość węzłów Relay jest skłonna odebrać część Twoich wiadomości, ale nie mogą zagwarantować, że zostaną one zapisane przez długi czas. Struktura ta faktycznie wydaje się być bardziej odpowiednia dla niektórych wzorców społecznych w naszym prawdziwym społeczeństwie ludzkim. Prawdziwy model społeczny. Na przykład, jeśli dzisiaj rozmawiam ze wszystkimi tutaj, usłyszycie mnie, kiedy mówię, będziecie o tym wiedzieć, a potem opuścicie salę. Po dwóch dniach niektórzy mają słabą pamięć i nie pamiętają już o czym mówię, ale niektórzy kupują w tym lokalu magnetofon i zapisują każde wypowiadane słowo. To oznacza, że ​​wasza wiadomość jest taka, że ​​nie zostanie na zawsze.

W rzeczywistości jest to bardzo podobne do tego, co dzieje się w naszej rzeczywistości. Taka sytuacja może się zdarzyć, ponieważ Nostr nie reguluje wielu szczegółów ani wielu innych rzeczy i nie dba o to, czy Relay musi się komunikować z Relay, czy nie. Nie jest wymagana synchronizacja wiadomości nawzajem, ale to nie znaczy, że nie można. Dlatego wiele Przekaźników będzie udawać Klienta, a także uda się do innych Przekaźników, aby uzyskać swoje dane i zsynchronizować wszystkie dane. Ale nie nakłada obowiązkowych wymagań, mówiąc, że musisz się komunikować. Jednym z powodów jest to, że jeśli postawię ten wymóg i będziesz musiał się komunikować, to każdy przekaźnik musi zapisywać dane każdego użytkownika w całej sieci, w takim przypadku będzie bardzo dużym sprawdzianem dla działania Przekaźnika. Być może mogą go obsługiwać tylko profesjonalni usługodawcy, a indywidualni entuzjaści mogą go nie obsługiwać. Oto niektóre z powodów, dla których zawarto tę prostą umowę.

Podsumowując, myślę, że protokół Nostr jest bardzo prosty. Inną interesującą rzeczą jest to, że w tym momencie mamy Bitcoin i blockchain. To, czego chcemy, to konsensus, tak jak wszyscy siadamy i mówimy, używamy ujednoliconego. W rzeczywistości pojawia się w bardzo interesującym węźle do użycia. format i ujednolicony protokół do tworzenia niektórych sieci społecznościowych lub tworzenia niektórych produktów internetowych. Ale teraz myślę, że istnieje kierunek, w którym powinien ciężko pracować ten węzeł, który polega na użyciu bardzo prostej struktury danych i bardzo prostego protokołu wymiany do wykonywania niektórych czynności, które robią WeChat, Twitter itp. Myślę więc, że może ci się to wydawać bardzo proste i na pierwszy rzut oka niezbyt interesujące. Ale jeśli pomyślisz o czasie jego pojawienia się, znaczenie jego pojawienia się będzie bardziej interesujące.

Inną kwestią jest to, że ze względu na swoją strukturę duża liczba weryfikacji faktycznie odbywa się po stronie klienta. Właściwie należy tu sprawdzić tylko jedną rzecz: czy dane, które publikujesz, rzeczywiście są wysyłane przez zadeklarowaną przez Ciebie parę kluczy publiczny-prywatny. Tylko taka weryfikacja zostanie przeprowadzona. Dlaczego przeprowadzamy tę weryfikację? Na przykład, jeśli wyślę tweeta i powiem coś, czego nie powinienem mówić, zostanie to wysłane do Relay. Za przesłanie go innym użytkownikom odpowiada Relay. Jeśli Relay tego nie zweryfikuje, może powiedzieć, że sfałszowałem dziwne powiedzenie, które powiedziałeś i wysłałem je innym użytkownikom. Ponieważ mam podpis, kiedy wysyłam dane, klient, który otrzyma dane, może dokonać weryfikacji i stwierdzić, że podpis, który podpisał, jest dokładnie zgodny z tym, co powiedział, więc Relay nie może oszukiwać innych.

Zatem jedną z jego weryfikacji jest weryfikacja podpisu. Weryfikacja tego podpisu jest w rzeczywistości taka sama, jak w przypadku naszego scentralizowanego Internetu w przeszłości, takiego jak WeChat. Serwer na WeChat jest kontrolowany przez siebie i może zapisywać wszystko na serwer, nie masz możliwości być pewnym, że Cię nie okłamuje, gdyż wszystkie dane i wszelkie prawa znajdują się na serwerze. Ale dopóki istnieje najprostsza weryfikacja, tak naprawdę możemy odebrać serwerowi prawa i przekazać je użytkownikowi posiadającemu konto. O ile posiadasz klucz publiczny i prywatny, możesz poprosić znajomych o jego weryfikację, aby mieć pewność, że nikt inny nie udaje mnie ani nie mówi czegoś innego nie tak.

Jaki jest zatem rozwój Nostr? Oto niektóre dane, na które natknąłem się w marcu. Ponieważ jest to sieć rozproszona, nie jest łatwo policzyć jej dane. Takie dane uzyskałem ze strony nostr.band. Łączna liczba użytkowników Nostr może wynosić około 370 000, a dzienna liczba aktywnych użytkowników może wynosić zaledwie 12 000. Całkowita liczba Przekaźników, Przekaźników, które się pojawiły oraz liczba osób, które przeszło przez ten węzeł, może wynosić ponad 2000. Jednak liczba tych węzłów, które są faktycznie zawsze online, jest prawdopodobnie mniejsza niż 200. Prawdopodobnie tak jest, więc użytkowników jest wciąż stosunkowo niewielu.

Dla porównania spójrz na porównanie z protokołem BlueSky. Bluesky powinien był powiedzieć pod koniec ubiegłego roku, że osiągnął 2 miliony użytkowników. Dane po prawej stronie pokazują, gdzie ktoś zliczył użytkowników, którzy opuścili Twittera i dokąd poszli. Widać także, że Mastodon zajmuje pierwsze miejsce, a Mastodon jest stosunkowo stara marka. Potem część osób trafiła do OST News, a część do BlueSky. W rzeczywistości Nostr należy do piątego szczebla, czyli do stosunkowo niewielkiej części.

图片

Jest to trudna sytuacja deweloperska. Oczywiście za Nostrem kryje się wiele rzeczy, których nie widać na podstawie tego rodzaju danych. Na przykład do protokołu złożono pewne propozycje, a programiści przesłali do niego kilka żądań PR. Te działania rozwojowe lub dyskusje mogą nie być liczone, ale jeśli klikniesz na te linki, faktycznie zobaczysz, że wciąż wiele się dzieje i duża liczba osób chce wnieść swój wkład w ten protokół. Oto niektóre z rzeczy, do których wszyscy używają Nostr. Nie tylko ja naprawdę tworzę Twittera, ale jest też wiele aplikacji związanych z muzyką, aplikacji typu YouTube i aplikacji typu blog.

Podsumowując, teraz uważamy, że większość użytkowników to tak naprawdę programiści lub twórcy. Są zainteresowani samym protokołem i chcą coś na nim rozwinąć, albo jestem osobą, która chce coś zrobić. Popracuję nad Twoim protokołem, a zwykłych użytkowników może być mniej.

Dlaczego Nostr jest taki prosty? Wizja wygląda dobrze, ale rozwój nie jest zbyt zadowalający. Myślę, że dzieje się tak również dlatego, że podczas pisania tego PPT odkryłem, że istnieje wiele drobnych problemów z niezliczoną liczbą szczegółów. takie jak Po stronie klienta są pewne kwestie dotyczące doświadczenia z produktem. Ale w rzeczywistości bardzo trudno jest jasno wyjaśnić tego rodzaju rzeczy, dlatego wspomniałem tylko o trzech kwestiach, które moim zdaniem są ważniejsze.

Pierwsze ważne pytanie brzmi: jak znaleźć treści opublikowane przez użytkownika w sieci Nostr Ponieważ, jak powiedzieliśmy wcześniej, działanie całego protokołu Nostr polega na tym, że podpisuję rzeczy lokalnie, a następnie wysyłam je do niezliczonej liczby przekaźników. Inni użytkownicy mogą pobrać dane, które wysłałem z tych przekaźników i je odczytać. To jest model. Ale jest problem z tym modelem. Po wysłaniu moich danych do Relay, gdy mój znajomy chce przeczytać tę wiadomość, skąd ma wiedzieć, na którym przekaźniku jest moja wiadomość? Musi wiedzieć, który przekaźnik ma moje dane, po prostu poszłam to przeczytać. Zatem teraz dużym problemem związanym z doświadczeniem użytkownika jest to, że podczas korzystania z Nostr wiele osób pyta swoich znajomych: „Hej, jakiego przekaźnika używasz? Chcę skonfigurować ten sam przekaźnik co Ty, abyśmy mogli razem wymieniać te dane”. „To bardzo głupia metoda.

Oczywiście wielu programistów zaproponowało pewne szczegółowe rozwiązania. Jest np. propozycja NIP-65, czyli mniej więcej na jakich przekaźnikach będę umieszczał swoje dane. Następnie w miarę możliwości rozpowszechniam tę wiadomość wśród wszystkich Przekaźników, tak aby mój znajomy najpierw udał się do Przekaźnika i zadał pytanie o to, gdzie mój znajomy zwykle wysyła swoje wiadomości. Po zdobyciu tej informacji udał się do Przekaźników, które często publikuję i poprosił o dane. Jest to metoda.

Jest on podzielony na dwa stosunkowo szczegółowe tryby, jeden nazywa się Skrzynka odbiorcza, a drugi Skrzynka nadawcza. Na przykład, podobnie jak Inbox, pozwala użytkownikom zdefiniować, z których przekaźników będę czytał wiadomości o mnie. Jeśli chcesz wysłać @me na Twitterze lub zrobić coś innego, możesz wysłać tę wiadomość do tej skrzynki odbiorczej. Drugi to Outbox Relay, który określa, że ​​wyślę część moich wiadomości do kilku przekaźników A, B, C i D. Prawdopodobnie oznacza to, że najpierw wyślę część wiadomości Relay, które często publikuję w Relay.

Pojawia się jednak problem techniczny, czyli skąd mam wiedzieć, gdzie są wiadomości. Więc ten problem również istnieje i niektóre rozwiązania są takie, że używam pewnych algorytmów, aby pobrać jak najwięcej informacji z całej sieci. Następnie, na podstawie ukrytych dowodów na istnienie Przekaźnika, wspomnianych w niektórych wiadomościach wysyłanych przez inne osoby, spróbuj obliczyć prawdopodobieństwo, że dane opublikowane przez osobę pojawią się w którym Przekaźniku. Korzystając z tego obliczenia prawdopodobieństwa, spróbuj znaleźć przekaźnik wymagający danych, a następnie upewnij się, że inni będą mogli znaleźć Twoje dane, gdy będą chcieli je przeczytać. Inne umożliwiają także użytkownikom definiowanie przekaźników, których będą używać, tworzenie grup i umożliwianie innym użytkownikom znajdowania Cię za pośrednictwem tych grup. Oto niektóre istniejące rozwiązania udoskonalające.

Drugi problem jest również poważniejszy i nazywa się zarządzanie treścią. Niezależnie od tego, czy są to produkty z treścią, czy sieci społecznościowe, dużą część energii należy poświęcić sposobowi utrzymania treści w tej sieci społecznościowej. Na przykład zdecydowanie nie musisz oglądać filmu przedstawiającego osobę ścinającą komuś głowę podczas przewijania Twittera, prawda? Firmy takie jak ta wykonują za nimi wiele operacji i potrzebują wielu osób do filtrowania treści lub używania algorytmów do dopasowywania treści. W tej części rynek jest stosunkowo pusty. Jest tego kilka powodów. Jednym z nich jest to, że wszyscy są bardzo oporni na algorytmy na tej platformie. Ponieważ wydaje się, że niezależnie od tego, czy jest to TikTok, czy YouTube, algorytmy nami kontrolują, ale tak naprawdę potrzebujemy algorytmów. Oznacza to po prostu, że potrzebujemy możliwości zmiany algorytmu.

Nie chcę przez to powiedzieć, że mogę zaakceptować jedynie obowiązkowy algorytm podany mi przez Youtube czy TikTok do wypychania reklam. Mam nadzieję, że mam wiele algorytmów, które mogę w każdej chwili zmienić. Jeśli nie podoba mi się ten algorytm, mam możliwość rezygnacji. Ten punkt widzenia jest powoli akceptowany przez jego konstrukcję. Tyle, że w tym obszarze, niezależnie od tego, czy chodzi o operacje ręczne, czy jakieś operacje na treści, czy też jakieś rzeczy wykonywane w technologii algorytmicznej, wciąż jest ich stosunkowo mało. Zatem głównym problemem w tej części jest to, że nasza sieć składa się ze wszystkich. Potrzebuje mechanizmu decydującego, które treści są dobre, które są złe, które treści Cię zainteresują, a które mogą Cię zainteresować. Dla tych, którzy nie są zainteresowani, jest to w rzeczywistości kwestia zarządzania treścią.

Poniżej znajdują się niektóre istniejące plany ulepszeń, które wymieniłem, takie jak pierwsze dane dotyczące etykietowania. Na tym Nostrze istnieje specjalny rodzaj danych, który pozwala użytkownikom zaznaczyć, do jakiego rodzaju danych on należy lub jakie są jego atrybuty. Po prostu użyj tego rodzaju etykietowania, aby oznaczyć fragment danych, ale nie jest to powszechnie stosowane, ponieważ jest bardzo proste i nikt nie chce tego zrobić. Nikt nie chce pełnić roli członka społeczności i pomagać ci w wykonywaniu tej ciężkiej pracy. Bardzo wczesne społeczeństwo internetowe miało tego rodzaju ducha budowania. Teraz ludzie chętniej korzystają z niego jako konsumenci. Oczywiście niektórzy sugerowali, że mogę tworzyć interfejsy API. Specjalizuję się w prowadzeniu niektórych usług. Zbieram dane od niektórych firm w całej sieci, a następnie filtruję lub klasyfikuję, aby uzyskać więcej dobrych wiadomości do wysłania użytkownikom. Rozwiązanie to jest bardzo łatwe do wdrożenia, jednak ma ogromny problem, to znaczy, że po wykonaniu tej czynności wracamy ponownie. Zamieni się to w stwierdzenie, że nie proszę o dane z protokołu Nostr, ale zamiast tego powiem, że konkretnie szukam API, które działa szczególnie dobrze i proszę o dane z serwera tego API. Wtedy tego rodzaju umowa stanie się kolejnym Twitterem lub kolejnym WeChatem za tym API, więc to rozwiązanie jest bardzo dobre. Problem w tym, że ludziom się to nie podoba. Jeśli to zrobisz, wszyscy będą cię krytykować.

Istnieje inne rozwiązanie zwane DVM. Jego celem jest użycie protokołu Nostr do klasyfikacji lub algorytmu tych danych przy użyciu interfejsu określonego przez protokół. Jego ogólne znaczenie jest takie, że dasz mi trochę Satoshi z Lightning Network, a potem zwrócę ci dane, które chcesz. Określasz format danych, ale są z tym też pewne problemy.

Drugi to Noscript, co jest innym pomysłem. Bezpośrednio używamy tych algorytmów filtrujących lub niektórych technologii potrzebnych do klasyfikacji i używamy tych kodów bezpośrednio jako treści, umieszczamy je bezpośrednio w Nostr i pozwalamy Relay je przechowywać. Następnie klient bezpośrednio pobiera te kody i przeprowadza lokalne filtrowanie lub wydaje pewne zalecenia. Oczywiście rozwój tego będzie jeszcze gorszy, bo teraz są tylko pewne pomysły i niektórzy o tym dyskutują.

Trzecim poważniejszym problemem jest właściwie problem przedsiębiorczości, PMF. Obecnie duża liczba produktów i programistów Nostra nie może znaleźć PMF, ponieważ musi on stawić czoła dużej konkurencji. Z jednej strony mamy scentralizowane tradycyjne produkty, z drugiej może to być blockchain Web3. Bez wydawania tokenów nic nie robią, więc faktycznie brakuje niektórych modeli biznesowych, a także boryka się z problemem efektów sieciowych, ponieważ mniej osób się tu przeprowadza, co oznacza, że ​​mniej osób będzie się tu nadal przeprowadzać. Zatem PMF jest dużym problemem.

Największy klient Nostra nazywa się Damus. Nie wiem, czy z niego korzystaliście. Jego twórca pod koniec ubiegłego roku wysłał tweeta, w którym stwierdził, że rok 2024 może być ostatnim rokiem Damusa. Ponieważ prawie nie mają już pieniędzy, aby kontynuować tę działalność. Jeśli nie uda mu się tego zrobić do 2024 r., nie będzie mógł zarobić żadnych pieniędzy. Jest to więc także kwestia znalezienia kierunku zrównoważonego rozwoju dla dóbr publicznych sieci społecznościowych.

Tak naprawdę myślę, że wszystkie problemy tutaj są także szansami. Na przykład, podobnie jak w przypadku ostatniego PMF, myślę, że jeśli będziemy mieli więcej miejsc do integracji z blockchainem, będziemy mieć bardziej wykonalne modele biznesowe i dokonamy integracji z funduszami blockchain, być może będziemy w stanie rozwiązać ten problem finansowania dóbr publicznych .

Wreszcie myślę, że Nostr to nowe rozwiązanie do tworzenia alternatywnych aplikacji. Jeśli chcesz tworzyć alternatywne produkty, nie mogą istnieć tylko dwie skrajności, jedna skrajność nazywa się blockchain, a druga nazywa się Twitter. Nie jest jedyny, może istnieć złoty środek o nazwie Nostr, który nie jest oparty na blockchainie, ale nie jest też oprogramowaniem prawnie zastrzeżonym. Dzięki.

图片