Unexpected fail to produce first block/ Falstart jako witness

in #witness-category7 years ago (edited)

This is going to be post with polish and english translation.

Hi, today I want to post some informations regard my first steps as witness so far. I will make short story of my actions and I will describe recent situation.

So about 20 days ago I started my adventure with being witness. I bought a 32 GB RAM which was not enough, I didn't have scripts to update steem, sbd price and I was struggling to make everything working.
First thing I did was to look for different ways to get around 32 GB RAM issue. I found zram which was a good way to resolve it and some people made it work. Well, I fail in first try, then I tried again and yay I made it work.. for about few minutes until it freezed and stopped syncing transactions. I just said that well, let's leave it and let's buy a new machine, now with 64 GB RAM.

I upgraded my server and I happily configured witness node and well I was almost ready. All I had to do was to find script to feed prices in blockchain. I found Steemfeed-JS which is based on few exchange markets so it makes average prices. I linked my witness account to the script and I was working "sometimes". I figured out that "default" node which was connecting to update price feed was timeouting connections so I decided to find another node to update my price feed. I found steemd.pevo.science which works better than privex (at least it crashes less when using it :D). And that kinda resolved my problem. Till... next problem occured suddenly.

I was happy that I run witness node and price feed script and I was waiting for my first block production to occur. I was waiting about 1 week or little bit more because of my low witness ranking position and when the time has come (about 3 a.m) it... failed. I was surprised, but why it failed. My CPU usage is like 0.17 load from all 4 cores, my RAM usage is about 33.2 GB and nothing else is using my network (apart from small content voting bot every 2.5 hours (voting power 100% everytime)).

And right now I just redid all steps to sync witness and link signing keys and let's see what is going to happen. I'm just curious what was the reason of this fail. I lost my logs when replaying witness so I wait for next fail xd Or maybe someone will see from their node what was the reason of my failing. To resolve issue I need to know what was the core. RAM shouldn't be the issue, CPU too, HDD usage also shouldn't be a problem because everything is stored in RAM. Maybe there is something with linux configurations in general. I need to investigate it and when next fail occurs I will be aware of what caused this.

Polish version

Cześć, dzisiaj chciałbym napisać parę informacji o moich dotychczasowych zmaganiach z węzłem witnessa i sytuację związaną z produkcją pierwszego bloku.

Także około 20 dni temu rozpocząłem moją przygodę jako witness. Kupiłem serwer z 32 GB RAMu, który oczywiście nie wystarczał do tego, nie miałem odpowiednich instrukcji związanych z prostym uruchomieniem węzła, nie miałem automatyzacji aktualizowania cen steem, sbd w wewnętrznym rynku i generalnie miałem problemy, aby to wszystko uruchomić.

Pierwsze co musiałem poprawić było ogarnięcie tego RAMu. Znalazłem informację o kompresji danych i wrzucaniu ich do ramu używając programu zram. Niektórym to działało, więc też chciałem spróbować. Pierwsza próba.. fail, druga próba fail.. i za którymś razem udało się uruchomić węzęł witnessa.. na jakieś paręnaście minut :D Po tym czasie, proces po prostu się zawiesił i witness node już nie synchronizował transakcji. Postanowiłem, żeby to olać i kupić maszynę, gdzie tego ramu będzie już 64 GB RAM.

Taki ucieszony zakupiłem nowy serwer, wydałem już na to jakieś 500 zł i myślałem, że pójdzie z górki. Znalazłem sobie skrypt na aktualizację cen w markecie, oczywiście on nie chciał działać prawidłowo z powodu rozłączania się z węzłem, gdzie aktualizowała się cena. Znalazłem pewne rozwiązanie, a mianowicie zmieniłem węzeł z privex na steemd.pevo.science, który działa lepiej, bo po prostu nie odrzuca transakcji tak często. To rozwiązało moje wszystkie problemy. Do czasu.. aż naszedł czas produkcji pierwszego bloku z transakcjami.

Tak sobie wszystko skonfigurowałem, wszystko działało i czekałem aż wyprodukuję pierwszy blok. Czekałem z jakieś ponad 7 dni na wylosowanie, ponieważ mój ranking jest wciąż bardzo niski. Taki ranking opiera się o głosy przez społeczność nadane na określonego witnessa na tej stronie. Każdy użytkownik oczywiście ma odpowiednią moc, przez co głos osoby jest różny. Aktualnie mam moc głosów na poziomie ~95 co ustawia mnie na 190 miejscu. Takie miejsce powoduje dłuższe oczekiwanie na wylosowanie do produkcji głosu. No ale dobra, nadszedł czas wylosowania (gdzieś wczesnym rankiem) no i fail. Nie udało się wyprodukować bloku. Zupełnie nie mam pojęcia dlaczego. Może przez zły klucz podpisujący tworzenie bloku, może błąd w konfiguracji linuxa, trudno mi jest aktualnie powiedzieć. Nie jestem pewien czy logi węzła pokazałyby coś sensownego. I tak nie mam do nich dostępu, gdyż od nowa przeszedłem tworzenie węzła witnessa w dockerze.

Może gdzieś jest więcej informacji jaki był powód tego problemu, ale aktualnie nie jestem wstanie tego powiedzieć. Raczej sam sprzęt nie był tu powodem problemu. Dodatkowo zadziałał mechanizm wyłączenia witnessa, gdy nie uda się wyprodukować bloku w celu uniknięcia następnych pominiętych bloków transakcji.

Aktualnie wygenerowałem nowy klucz do podpisu bloków, zschynchronizowałem blockchain od nowa i aktywowałem witnessa. Pozostaje tylko czekać następny tydzień na pomyślne stworzenie bloku lub ponowną porażkę. Przy drugiej porażce wykonam ponowną instalację systemu i jak najbardziej minimalną konfigurację, aby mieć pewność, że przy robieniu węzła "out of the box" wszystko zostanie wyprodukowane pomyślnie.

Generalnie do stworzenia węzła wykorzystałem skrypty od @someguy123, który wykonał kawał dobrej roboty.

Sort:  

You have a minor typo in the following sentence:

I was suprised, but why it failed.
it should be surprise instead of suprise.