Here's a script to check if your Steem Engine node is corrupt. It checks the block sequence as well as transaction organization.
First, install ruby. I like to use the Ruby Version Manager for this part.
Next, install Radiator:
gem install radiator
Then create a file called verify_steem_engine.rb
(note: we assume the node is on http://127.0.0.1:5000
):
block_agent = Radiator::SSC::Blockchain.new(root_url: 'http://127.0.0.1:5000')
block_num = 0
previous_hash = nil
trx_ids = {}
while !!(block = block_agent.block_info(block_num))
block_num % 1000 == 0 and print '.'
if !!previous_hash && previous_hash != block.previousHash
puts "\nprevious_hash: #{previous_hash}"
puts "block.previousHash: #{block.previousHash}"
abort("Problem detected at block_num: #{block_num}")
end
block.transactions.each do |trx|
(trx_id = trx.transactionId) == 0 and next
trx_id, idx = trx_id.split('-')
if trx_ids.keys.include?(trx_id) && trx_ids[trx_id] != block_num
puts "\nFound duplicate transaction id (#{trx_id}) already seen in block: #{trx_ids[trx_id]}"
abort("Problem detected at block_num: #{block_num}")
end
trx_ids[trx_id] = block_num
end
block_num += 1
previous_hash = block['hash']
end
puts "\nVerify complete, ending with block: #{block_num}"
Finally, run it:
ruby -r radiator verify_steem_engine.rb
If everything is fine, you'll see a result like this:
........................................................................................
Verify complete, ending with block: 95497
Otherwise, if there's something amiss, I recommend you delete the data
directory, download the latest blocks.log
file, and replay it.
Having a problem installing gem install radiator, maybe error in the ruby installation?
Usually, rvm.io documentation is pretty good about guiding you through the ruby install process. It does depend on your specific operating system. But on ubuntu, it boils down to:
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.rvm.io | bash -s stable source /home/tender/.rvm/scripts/rvm rvm install ruby-2.6.0 gem install radiator
Thanks a million, I will definitely check that out
Wow, thanks @inertia for the scripts, it’s help Steemers a great deal!
Posted using Partiko iOS
Hi, @inertia!
You just got a 0.93% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.
Hi @inertia!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 6.607 which ranks you at #144 across all Steem accounts.
Your rank has not changed in the last three days.
In our last Algorithmic Curation Round, consisting of 206 contributions, your post is ranked at #9.
Evaluation of your UA score:
Feel free to join our @steem-ua Discord server