Jeśli zastanawiasz się dlaczego widzisz ten komunikat to znaczy, że prawdopodobnie przekroczyłeś limit dostępnej przepustowości... albo... blockchain Steem zaczął się bronić ;-)
Co to jest bandwidth (przepustowość) i jak to działa?
Steem jest dostępny dla każdego za darmo, tu nie ma opłat za transakcje tak jak w przypadku wielu innych kryptowalut, nie ma tu reklam które wyskakują i próbują nam coś sprzedać, jest wręcz przeciwnie, Steem nas wynagradza i pozwala zarobić prawidziwe pieniądze. W związku z tym, Steem został uzbrojony w pewne mechanizmy obronne które pozwalają na szybką reakcję w przypadku gwałtownego zwiększenia się aktywności w sieci.
Każde konto w zależności od ilości posiadanych STEEM POWER ma nałożony limit na ilość danych które może wysłać i odebrać, im więcej SP posiada, tym większy dostaje limit. Jako dane wysłane lub odebrane uważa się każdą operację, może to być oddanie głosu, śledzenie użytkownika, transakcja, dodanie posta lub komentarza, generalnie każda nasza aktywność.
W przypadku normalnego działania Steem, kiedy nie występuje wzmożona aktywność, np. spowodowana przez boty które masowo głosują na posty, limit przyznany użytkownikowi powinien mu w zupełności wystarczyć na swobodne korzystanie z serwisu. Natomiast w przypadku gdy ruch w Steem zwiększy w krótkim przedziale czasowym, włączy się mechanizm ograniczający globalnie przepustowość dostępną dla wszystkich, co będzie skutkować również tym, że ucierpią wszyscy użytkownicy, a w szczególności nowi, ponieważ ich limit jest zazwyczaj bardzo niski ze względu na małą ilość SP jakie posiadają.
Co zrobić kiedy dostaję "Bandwidth limit exceeded"?
Tak naprawdę to są dwie możliwości, możemy zdobyć dodatkowe SP lub otrzymać je w postaci delegacji od innej osoby, albo po prostu przeczekać aż limit się zregeneruje ;-)
Natomiast, jeśli problemem nie jest bezpośrednio Twoja aktywność, a wzmożona aktywność w Steem to pozostaje Ci tylko poczekać aż obciążenie sieci trochę się zmniejszy i wszystkie limity wrócą do normy. Niestety tak to działa, ktoś psuje a cierpią wszyscy...
Jak wyliczana jest przepustowość Steem
Algorytm do obliczenia maksymalnej przepustowości zapisany jest w kodzie steemd, dokładnie w pluginie witness
r.max_virtual_bandwidth = ( uint128_t( max_block_size ) * uint128_t( r.current_reserve_ratio ) * uint128_t( STEEM_BANDWIDTH_PRECISION * STEEM_BANDWIDTH_AVERAGE_WINDOW_SECONDS ) ) / ( STEEM_BLOCK_INTERVAL * RESERVE_RATIO_PRECISION );
już tłumaczę na polski ;-)
przepustowość_dostępna_w_Steem = ilość_bloków_produkowanych_tygodniowo * maksymalny_rozmiar_bloku * current_reserve_ratio
- ilość produkowanych bloków tygodniowo - wiemy, że bloki w Steem generowane są co 3 sekundy, tak więc będzie to
20 * 60 * 24 * 7 = 201600
- maksymalny_rozmiar_bloku - jest ustalany przez TOP 20 witnessów, obecnie jest to 65536 (64kB)
- current_reserve_ratio - "ilość zapasu", jest to kluczowy element w algorytmie, ponieważ jako jedyny automatycznie zmienia się w czasie w zależności od obciążenia Steem
Z algorytmu wynika, że co minutę robione jest sprawdzenie czy średni rozmiar produkowanego bloku jest większy niż 25% maksymalnego rozmiaru bloku (65536/4 = 16384), jeśli tak, to current_reserve_ratio jest proporcjonalnie zmniejszany. Parametr ten jest mnożnikiem i przez to ma duży wpływ na całkowity wynik maksymalnej przepustowości w Steem.
Policzmy więc jaka jest dostępna przupustowość blockchain podczas normalnego działania, kiedy średnia wielkość bloków nie przekracza 16384. Wiedząc, że maksymalna do uzyskania wartość current_reserve_ratio wynosi 20000 i jest zdefiniowana w kodzie steemd jako STEEM_MAX_RESERVE_RATIO
, możemy wykorzystać ją do wykonania obliczeń,
201600 ilość bloków * 65536 rozmiar bloku * 20000 current_reserve_ratio = 264241152000000
Z tego prostego mnożenia wynika, że wydajność Steem to 264241152000000 bajtów tygodniowo.
A co z przepustowością użytkownika?
Przepustowość użytkownika zależy od ilości VESTS które posiada oraz maksymalnej przepustowości blockchain którą policzyliśmy przed chwilą. Jeśli wiemy, że całkowite dostępne pasmo dla blockchain Steem to 264241152000000, oraz wiemy, że wszystkich VESTS w platformie jest 406336942450, (wartość total_vesting_shares możemy pobrać z blockchain)
$ curl --silent https://api.steemit.com --data '{"jsonrpc":"2.0", "id":0,"method":"get_dynamic_global_properties","params":[]}' | python3 -m json.tool|grep total_vesting_shares
to w łatwy sposób da się wyliczyć jaka jest przepustowość użytkownika,
przepustowość_użytkownika = vests_posiadane_przez_użytkownika * przepustowość_dostępna_w_Steem / liczba_vests_w_Steem
791764.870035 * 264241152000000 / 406336942450 = 514885159.3697
514885159.3697 / 1024 / 1024 = 491.0327 MB
w moim przypadku będzie to 491MB!
Dla potwierdzenia poprawności wyliczeń, możemy jeszcze sprawdzić wyniki z wartościami na https://steemd.com/@jamzed.
Jeśli widzisz gdzieś błąd, chcesz coś dodać, zmienić lub po prostu wyrazić opinię, to będę bardzo wdzięczny za każdy komentarz który zostawisz. ;-)
Chcę zostać Witnessem (delegatem) w sieci Steem i wspólnie z Wami mieć wpływ na jej działanie. Jeśli uważasz, że jestem osobą która posiada odpowiednie umiejętności i może się sprawdzić, proszę o Twój głos.
- wejdź na stronę https://steemit.com/~witnesses
- przewiń na sam dół tabeli
- wpisz mój nick jamzed w polu formularza i kliknij przycisk VOTE
Bardzo dziękuję.
Jest jeszcze trzecia: poprosić inną osobę, by zdelegowała Ci trochę SteemPower.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dzięki @noisy, faktycznie nie było to oczywiste z mojego opisu... poprawione ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ciekawy artykuł. Do tej pory temat PASMA jakoś mi nie "wypłynął" na stemmit.
Popraw sobie:
przupustowość
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dziękuję za zwrócenie uwagi, po chwilowym przemyśleniu "przepustowość" faktycznie brzmi lepiej. ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Kolejny raz dobre wyjaśnienie. Właśnie takie osoby powinny być witnessami :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dzięki ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Na steemit bardzo mi brakuje treści bardziej technicznych. Infromacji o tym, w jaki dokładnie sposób działa blockchain Steem. Jasne, że można samemu to znaleźć, ale trzeba w to włożyć trochę wysiłku. Jako leniwy człowiek, cieszę się kiedy mogę bez trudu przyswoić sobie wiedzę. Mam nadzieje, że będę mógł poczytać tutaj więcej takich artykułów.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dzięki za wyjaśnienie. Spotkałam raz taki komunikat i się zmartwiłam ale widzę, że to nie jest tragedią :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Cieszę się, że udało mi się przybliżyć temat trochę bliżej ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ciekawy artyukuł (wczęsniej poczytałem na ten temat po angielsku i nawet myślałem, żeby go przetłumaczyć), mi dzisiaj bandwith spadł do 0, dlatego nie zaniedbuję pisania
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Ostatnio też miałem problem bandwidth z zupełnie nieznanych mi wcześniej powodów. Starałem się to wyjaśnić, ale zawsze pewne zrozumienie gubi się przy tłumaczeniu. Jako, że nie posiadam zbyt dobrego rozeznania w świecie IT bardzo miło przeczytać post, który wyjaśnia trochę funkcjonowanie Steemit i jest po polsku. Rozumiały i zwięzły, a takich postów potrzeba jeszcze więcej :D
Z chęcią przygarnę więcej artykułów!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dziękuję i zapraszam do śledzenia, myślę, że się jeszcze trochę rzeczy pojawi ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Btw. co robicie z takimi przypadkami? @samolot1337 (i @krzychuu18 - prawdopodobnie ten sam człowiek) Wrzuca on kilka razy dziennie ten sam post w intruduceyourself. Używa maskowania (niczym Monero :D) - pomiędzy nimi robi kilka resteemów, aby nie było widać na pierwszy rzut oka, że wkleja ciągle to samo.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
W Steem każdy ma takie same możliwości, jeśli czujesz, że jego działania naruszają przyjęte zasady to masz możliwość oflagowania jego postów, przez co straci wynagrodzenie i reputację. Dodatkowo zawsze jest możliwość zgłaszenia nadużyć na https://steemcleaners.org/abuse-report/ i wtedy kilka osób z zespołu @steemcleaners prześledzi jego działalność i podejmie odpowiednie akcje ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dobry wpis, masz vote na delegata.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dziękuję za zaufanie ;-)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Nie miałem z tym jeszcze problemu, ale od początku zastanawiało mnie, co oznacza ten drugi pasek na steemd. Teraz już wiem:)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @jamzed! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes
Award for the number of upvotes received
Award for the number of comments received
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dziękuję za wyjaśnienie na "poziomie komórkowym", jak dzieciom w trzeciej klasie.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Wpadliśmy na ten sam pomysł na artykuł, ale Twój jest zdecydowanie lepszy. Skąd się bierze te algorytmy? W sensie, czy w jakimś dokumencie da się je wyszukać? Patrzyłam w white paper, ale tam nic nie było :(
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hej, dziekuje ;-) Twoj post jest bardzo dobry, ja opisalem to troche bardziej od srodka ;-) Wszystkie szczegoly implementacji sa w kodzie zrodlowym steemd, dzieki temu mozna dokladnie sprawdzic jak dziala kazda funkcjonalnosc i to jest wlasnie potega oprogramowania Open Source ;-)
Pozdrawiam!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dzięki za wyjaśnienie! :)
Wychodzi na to, że nowi użytkownicy powinni też uważać na to gdzie klikają? uważam, że wypadałoby kliknąć w w upvote na artykuł który przeczytałem jak i również jak mi ktoś odpiszę na komentarz ale już mi parę razy wyskoczył komunikat więc może za dużo jednak klikam?
Dzięki raz jeszcze :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Dałem vote na delegata.Dobry artykuł.
Załapałem się jako świerzak na Bandwidth limit exceeded
Trzeba przeczekać.
Pod tym linkiem zmieniając na swój login https://steemd.com/@piotrj można sprawdzić swój Bandwidth Remaining .
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Wczoraj miałem 0 i się zastanawiałem co to jest. W samą porę artykuł. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit