W ostatnich 12h program obsługujący requesty użytkowników Wise napotkał 2 niespodziewane błędy:
Pierwszy z błędów skutkował zablokowanie przetwarzania kolejnych blocków. Ostatni przetworzony block miał numer 23643143
i miał miajsce 2018-06-25T22:23:30 (UTC)
.
Wszystkie requesty użytkowników do konta użytkownika @noisy wysłane po tym czasie mogły napotkać trudności w przetworzeniu.
Obecnie kolejne blocki i requesty teoretycznie są już przetwarzane, jednak zauważono problem z niespodziewanym błędem Delegator had no such ruleset.
Trwają pracę naprawcze
Obecnie pracujemy nad zdiagnozowaniem problemu.
Silicon Valley, Optimal Tip-to-Tip Efficiency
Zostanie wydany stosowny komunikat, gdy uznamy, że wszystko działa już stabilnie
Decentralizacja w służbie ludzkości
Korzystając z okazji, chciałbym wspomnieć co nieco na temat tego w jaki sposób Wise jest zbudowany. Wszakże mógł zrodzić się niepokój, że takie błędy mogą w przyszłości powodować przestoje w działaniu Wise.
Zacznijmy więc od podstaw:
Wise to protokół
Wise to nie tylko projekt czy program, lecz przede wszystkim protokół, tj. ustandaryzowany sposób komunikacji. Jak już zapewne zauważyliście, komunikacja ta pomiędzy użytkownikami i odbywa się za pośrednictwem narzędzi przez nas przygotowanych.
Jak miałem okazję wspomnieć w jednym z ostatnich komentarzy, cała ta komunikacja odbywa się w sposób transparetny.
Przeanalizujmy to jak działa protokół, na przykładzie użytkownika kont @noisy i @assayer.
noisy postanawia stworzyć pełnomocnictwo dla assayer, pozwalające głosować assayer z konta noisy.
Pewnego razu assayer postanawia skorzystać z przydzielonego mu pełnomocnictwa i chce zagłosować z konta noisy na jakiś wpis
- assayer może nie pamiętać, jakie pełnomocnictwo mu przydzielono, dlatego może skorzystać z narzędzia voter-page (np. za pomocą strony https://wise.vote/), by dowiedzieć się jakie obecnie ma pełnomocnictwa od wskazanej osoby
- assayer umieszcza w blockchainie inny specjalny wpis[link się pojawi jak steemD zacznie znowu działać], w którym precyzuje:
- kogo prosi o swój głos, np. użytkownika noisy
- na jaki wpis chciałby by został oddany głos
- z jaką mocą taki głos powinien zostać oddany
noisy chcąc automatycznie odpowiadać na requesty zdefniniowanych przez niego osób, posiada na swoim komputerze uruchomiony program Wise CLI w trybie tzw. daemona (czyli program jest włączony cały czas).
- Wise CLI użytkownika noisy analizuje wszystkie kolejne nowe blocki blockchaina Steem, w celu znalezienia requestów skierowanych do niego
- Gdy Wise CLI znajdzie request skierowany do użytkownika noisy, sprawdza on, czy ów request spełnia zdefiniowane reguły.
- Jeżeli request spełnia zdefiniowane reguły, oddawany jest głos, który dodatkowo zawiera informacje[link się pojawi jak steemD zacznie znowu działać], które mówią o tym na podstawie jakiego requesta został ten wpis oddany
- Jeżeli request nie spełnia zdefiniowanych reguł, głos nie jest oddawany, natomiast do blockchaina Steem zapisywana jest informacja[link się pojawi jak steemD zacznie znowu działać]mówiąca o tym, dlaczego głos nie został oddany
- Jeżeli request spełnia zdefiniowane reguły,
Co w takim przypadku może się zepsuć?
Cały Wise?
Na pewno przypadkiem, w którym może się zepsuć cały Wise, jest przypadek w którym następuje awaria blockchainu Steem. O ile zdarza się nie rzadko... że awarię zalicza strona internetowa Steemit, to blockchain Steem w swojej historii (wedle mojej wiedzy) awarii skutkującej wstrzymaniem generowania blocków nie miał.
Innym przypadkiem, w którym cały Wise może się zepsuć jest przypadek w którym następuje aktualizacja zachowania sieci Steem, tj. wystąpienie tzw. hardforka blockchainu Steem. Hardforki są planowane i można się do nich wcześniej przygotować, więc kłopotów da się uniknąć.
Wise CLI poszczególnego użytkownika
Dwa błędy opisane na początku tego wpisu, są przykładem błędów, które mogą uniemożliwić działanie Wise u niektórych użytkowników. Jeżeli kilku użytkowników zdecyduje się tworzyć pełnomocnictwa Wise dla innych użytkowników, będzie to oznaczać, że każda z tych osób, będzie musiała mieć skonfigurowany i uruchomiony program Wise CLI (w późniejszym czasie zostanie stworzony tzw. Wise Portal, który będzie mógł świadczyć usługi hostowania takich programów dla osób trzecich).
Jeżeli błąd programu Wise CLI wystąpi tylko u jednego użytkownika, nie wpływa to na działanie Wise CLI u innych użytkowników.
Czy Wise CLI danego użytkownika działa?
W niedalekiej przyszłości zostanie dodana funkcjonalność pozwalająca stwierdzić status daemona danego delegatora. Stworzenie funkcjonalności udostępniającej takie informacje, będzie wymagało stworzenia osobnego serwisu, który będzie agregował tzw. heartbeat (bicie serca) daemonów poszczególnych użytkowników (chcemy uniknąć spamowania co 3 sekundy blockchainu Steem, że dany daemon działa).
Mając do dyspozycji taki Status Page, inne narzędzia (np. Voter Page, czy przeglądarkowa wtyczka) będą mogły na bieżąco sprawdzać status danego użytkownika, dzięki czemu osoba zlecająca głos będzie wiedziała, czy faktycznie ma do dyzpozycji dany głos... czy też jednak nie.
Cel
Naszym celem jest stworzenie oprogramowania, która będzie umożliwiało funkcjonowało sieci Wise w maksymalnie zdecentralizowany sposób. W naszej ocenie tylko taki sposób jest w stanie zapewnić bezpieczeństwo użytkowników oraz w dłuższej perspektywie, stabilność całej sieci.
To m.in. z tego powodu, całe tworzone przez nas oprogramowanie jest otwarto-źródłowe. Tworzenie oprogramowania uruchamianego w środowisku rozproszonym jest jednak znacznie trudniejsze. Np. w momencie znalezienia i naprawienia błędu, by dany daemon mógł poprawnie funkcjonować z resztą sieci, będzie musiał on zostać zaktualizowany przez daną osobę, a także by cała sieć działa poprawnie, przez wszystkie osoby.
To właśnie dlatego wystartowaliśmy Wise tworząc pełnomocnictwa na razie tylko z jednego konta. Chcemy bowiem najpierw rozwiązać większość błędów, by w przyszłości nie zmuszać innych delegujących do ciągłych aktualizacji spowodowanych błędami.
Chcielibyśmy jeszcze raz podziękować całej polskiej społeczności za pomoc w testowaniu Wise we wczesnym stadium :)
Wise jest technicznie trudny, ale jeśli chodzi o podstawowy pomysł to dziecinnie łatwy do zrozumienia. Dobrze to widać przy porównaniu z dotychczasowymi kuratorstwami, jak np. OCD.
OCD działa jak czasopismo, które dzieli się na działy językowe (narodowe), gdzie redaktorzy działów znają poszczególne języki. Z kolei Wise działa jak czasopismo, podzielone na działy tematyczne, gdzie redaktorzy działów ("eksperci") znają poszczególne dziedziny, są w nich do jakiegoś stopnia ekspertami (religia, kuchnia, astronomia itd).
Moim zdaniem przejście z kuratorstwa językowego (ogólnonarodowego) na tematyczne (robione przez specjalistów) to naturalny krok, konieczny do podjęcia, gdy pisze coraz więcej ludzi i ani kuratorzy ogólnonarodowi, ani posiadacze wielkiego SP - nie są już sami w stanie tego wszystkiego czytać. A przede wszystkim - nie są w stanie się na wszystkim znać. Więc - po prostu rozdzielają zadania innym, którzy się znają lepiej. (Nie wiem, dlaczego to się miałoby kojarzyć z botami? Podział pracy to nie automatyzacja).
Jeśli inni z "polskich wielorybów" pójdą śladem @noisy, mamy szansę na polish uruchomić prawie cały nasz "śpiący steem power" i rozwinąć się bardzo szybko.
hmm... właśnie uzmysłowiłeś mi, że teoretycznie jest to jeden ze sposobów wyceny projektu (może przyda się to do celów marketingowych :)). Nawet nie tyle, ile można dodatkowo dzięki Wise zebrać z postów czy kuracji... ale ile więcej STEEM trzeba było by mieć na kontach polskiej społeczności bez WISE... by osiągnąć taki sam wynik używając WISE :)
Przyszło mi do głowy pytanie dotyczące protokołu Wise.
Załóżmy, że rozdasz pełnomocnictwa do dawania flagi np. na #polish: jednemu użytkownikowi z maksymalną VP 10%, kolejnemu również 10% i trzeciemu z mocą 25% Twojego VP.
Czy protokół przewiduje obsługę sytuacji gdy więcej niż jeden użytkownik zdecyduje się jakiemuś wpisowi dać flagę (Wisem)? Jak to się zachowa? Protokół da flagę o mocy pełnomocnictwa ostatniego flagującego użytkownika? Czy tego o najwyższej mocy pełnomocnictwa? Czy też moce poszczególnych flag się zsumują (w naszym przykładzie przywali flagą 10+10+25=45%)?
Oczywiście pytanie może dotyczyć również odwrotnej sytuacji (upvote'u).
https://github.com/noisy-witness/steem-wise-voter-page/issues/13
ten przypadek nie jest obecnie w 100% obsługiwany. Prawda jest też taka, że to jest sprawa dyskusyjna w jaki sposób Wise powinien się zachować. Pod uwagę trzeba brać m.in. trudność konfuguracji i sprawe resetowania nagrody kuratorskiej
To my @noisy tobie dziękujemy. Obdarzyłeś nas wielkim zaufaniem udzielając nam ,, pełnomocnictwa,, do rozporządzania twoim głosem. Moim zdaniem wise to rewolucja, która da autorowi satysfakcję że jego praca nie poszła na marne. Podziękowania i wyrazy szacunku.
Jeśli dobrze rozumiem to Wise CLI jest kolejnym botem w ekosystemie Steem, a takich jest już wiele. Coraz bardziej skłaniam się ku przekonaniu że Steem to jeden wielki poligon botów, które głosują za ludzi.
Nie do końca botem. Jeśli dobrze rozumiem, to program implementujący protokół Wise (albo jego najważniejszy kawałek). On pozwala reagować na decyzje ludzkie.
@noisy wybrał rozwiązanie, które uniezależnia działanie tego protokołu od Steemit Inc. i nawet od niego samego. To taka nakładka na blockchain, zwiększająca jego możliwości. Owszem jest to jakiś automat, ale nie służy automatycznemu głosowaniu przecież, tylko pomaga wykonywać decyzje ludzkie zapisane w blockchainie.
Jest to czysty automat, głosujący za mnie według reguł określonych w konfiguracji ustalonej przezemnie. Musi być odpalony 24h na komputerze żeby działał. Dokładnie tak działają boty na steem.
Powiedziałbym, że to jest tak jak z warunkiem koniecznym i z warunkiem wystarczającym. Dostarczona przez Ciebie konfiguracja jest warunkiem koniecznym do tego by głosowanie mogło się odbyć, warunkiem wystarczającym do oddania głosu jest jednak decyzja podjęta przez człowieka, który w 100% zdaje sobie sprawę z konsekwencji swojej decyzji.
Zwykłe głupie boty które są na Steem nie działają w sposób transparetny. Ja nie mam pojęcia ile botów śledzi moje ruchy. Nie mam też możliwości zakazania im głosowania, np. jeżeli przez przypadek zapostuję coś na swój profil.
Głupie boty, nie podpisują też swoich głosów. Twój głos w niczym się nie różni od tego oddanego przez bota. Tutaj każdy głos oddany przez Wise zawiera referencje do voteordera osoby, która o ten głos poprosiła.
To trochę jakbyś porównywał bagnet do wbijania ludziom w kiszki z nożem do krojenia kanapek. Oba mają ostre końce - i to jest prawda. :-P
Ustalasz reguły ale one nie powodują, że nagle "bot" sam zagłosuje. Gdzieś na drugim końcu blockchaina to człowiek podejmie decyzję a zdefiniowane przez Ciebie reguły pozwolą wyłącznie na wykorzystanie Twojego głosu w taki sposób jaki Ty sobie życzysz.
Jeśli nie lubisz botów, to ten automat jest tylko narzędziem, nie podejmuje mniej czy bardziej losowych decyzji.
no i boty są generalnie płatne czyli nastawione na wyciągnięcie od ciebie SBD?
Są różne boty. Takie jak napisałeś również. Ale bywają również takie nieszkodliwe a wręcz pożyteczne. Na przykład witające nowych użytkowników czy szukające potencjalnych plagiatów.
Czekam cały czas aż to będzie działać tak jak trzeba :) na pewno będę korzystać z tego programu. Dużo lepsza opcja niż inne automatyczne oddawanie głosów na innych użytkowników.