The State Of Steemd

in busy •  24 days ago

Earlier today I noticed that my witness node had crashed.
I have not seen the issue that caused the crash before, but I will report on it on github soon.
When I noticed the problem, my witness node had already missed 2 blocks.

To disable a witness and get it off the witness schedule the operator needs to make a witness update with a new Signing Key: STM1111111111111111111111111111111114T1Anm.
Since I had no backup server, this is what I had to do.

The cli_wallet that comes with steem (https://github.com/steemit/steem/tree/master/programs/cli_wallet) has been broken ever since I have tried it 2 years ago. It times out within seconds and unless you have all the commands ready for copy + paste, you will not be able to finalize a single transaction with it.
Apparently, the issue still exists: https://github.com/steemit/steem/issues/2474

Usually, I do not bother trying, but the machine that I use for conductor was broken, too. (this and my node fail are not steem's fault)

So I tried a dockerized cli wallet from steemit/steem.

It failed.

So I tried installing Steempy and Conductor on a new machine, since the fast version did not work out. I need the comfort version anyways in the long run, right ?
After following all instructions to install steem-python on a new Ubuntu 17.10, I try steempy and get a command not found as a return.
After fiddling for another 30 minutes and cloning into the repos manually, I can finally get it to work.

Only to encounter this issue:

https://github.com/Netherdrake/conductor/issues/17

However, steempy works and I can finally shut down my witness.

This took me way too long.

I know, I was ill prepared. I know, I could have done this much faster.
The fact, that not a single steem software works fresh out of the box is ridiculous, though.
Some of these issues are just sitting there since forever.

After I have now successfully shut down my witness, I run into the next issue:

https://github.com/steemit/steem/issues/1101

This happened for the last year. Or pretty much ever since I run for witness.
To make it short:

When I turn the witness off, and try to turn it back on, it's broken

Most of the times, I have to fully resync and can not just start from where I stopped.
Even after a clean exit.

So ... The witness is resyncing now.

When I import a block_log from somewhere I have a 30% chance of it working and not failing to reindex. Resync takes even longer than 3 days, but I can not be bothered to put any more effort into this shit right now.

My witness will be up again in a few days.

Thanks ned.

Looking forward to Steemfest

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

You can use Witness Essentials to disable your witness, change keys or even remote control it.

For example: npm run disable

Regarding block log:

I wouldn't advise to resync, it takes way too much time. Instead, download the block-log and unpack it.

Downloading and unpacking it took about 1 hour for me. Replaying took about 3 hours. Which means you can have a running node in less than 5 hours.

Block Log from @gtg: https://gtg.steem.house/get/blockchain.xz/block_log.xz


I've done exactly that (building steemd, downloading block_log & replaying) just 3 days ago.

Steempy and conductor are a bit buggy since they're not actively being developed, but that's why I've developed Witness Essentials.

Everything you can do with conductor, you can also do with Witness Essentials.

·

Replaying took about 3 hours.

I feel like there is a trick to this, that nobody told me.
Takes 3 days for me - Yes, replay.

And that fails - like I said - most of the time anyways.

·
·

What are your steps? Did you download block_log and then replayed or started steemd in replay mode without adding a block_log.

·
·
·

It finds a block_log and starts reindexing that, instead of a full resync.
I know the difference.
That just takes longer than 3 hours and I will call some others to this thread just to confirm that.

·
·
·
·

It's your call if you want to find a solution or just rant.

The question to your answer is:

Hey steemchiller, why are you still no witness?

I have work to do and don't have the time for studying steemd currently. Even the 'one-click' solutions don't work out of the box. Sad but true...

·

Hey steemchiller, have you seen my first JS project :) ?

https://github.com/fxnormaluser/steessenger

·
·

Looks interesting. I don't want to dive into the code in detail, but I already have a few tips to begin with:

  • Separate the layout from the code (create files for CSS, JS, HTML and include them in the main file)
  • You don't need a ';' after conditions and loops
  • Instead of setting the styles directly in code, I would recommend to create classes in a separate CSS file and set them at the relevant places
  • The SteemJS methods all do have an asynchronous equivalent (for example 'steem.api.getAccountHistoryAsync') which you will need when you want to keep your page stable/reactive while making API calls
  • Get rid of global functions:

instead of
function a() {}

you may create something like
MyApp.a = function() {};

or even cleaner/more grouped like

MyApp = {};
MyApp.layout = { 
     setStyle: function() {}, 
     makeBlue: function() {}
};

and then just call MyApp.layout.makeBlue();

If you should have any questions in future, you can always contact me in steem.chat or directly here via comment ;)

·
·
·

I am working on most of these things.
I just wanted to have some working code quickly to show off and to keep myself motivated.
I have now decided to make the messenger only a plugin module for a bigger project;
A steem gaming wallet, where users can challenge each other to battleships, chess, or dice (turn-based games).

What does it take for you to join Discord ?
We all abandoned steemit.chat.
The community misses you in DACH :)

Ouch this is bad. I'm happy that I'm no witness if I hear such stories xD
Maybe you should've used beempy instead of steempy though :P

sounds like fun

Looks like I won't be setting up a steem witness node 😀

I will go with ARK or Scorum or even both...

ARK especially has excellent documentation and a full setup and configuration package for its delegate node.

Asi que tardaste mucho en resolver ese problema @felixxx. Y no te preocupes que llegaras a lograr el objetivo de ser testigo en Steemit