@techcoderx is officially now a Steem witness.steemCreated with Sketch.

in #witness5 years ago (edited)

techcoderx Witness Announcement.png

Yes, you read that right. Another Steem witness has shown up in the Steem ecosystem, and yes, in the bear market like this.

For those who are new to this, in short, Steem witnesses are the block producers of the Steem blockchain, whose responsibility is mainly to sign blocks and maintain an up-to-date copy of the chain in a delegated proof of stake (DPoS) consensus algorithm.

These witnesses operate consensus nodes, which are critical for the functionality of the chain as they process and execute transactions which get added to the blockchain. In addition to that, some of them maintain full API nodes which allow anyone with an internet connection to obtain data from the blockchain (I will get to this later). Without them, Steem blockchain would not exist and you will not be reading this post.

Why am I running a witness, and why now?

Personally I want to get more involved in the Steem ecosystem and be able to fully understand the "behind the scenes" of all things relating to Steem, including the details of Steem transaction processing and such.

Being a witness here on Steem also enables me to offer a full RPC API endpoint (coming soon), which has fallen significantly in cost due to the development of MIRA (Multi-Index RocksDB Adapter) and Hivemind that reduces the system requirements all the way from 512GB RAM (!) down to as little as 32GB of RAM (64GB might be better) that many consumer CPUs and motherboards actually support. Instead, the database storage is handled by disk (primarily SSD), which is lower in cost as compared to RAM, therefore making it more feasible for me to offer such API node.

If I'm not wrong, according to @fullnodeupdate, there are only 7 people on the Steem blockchain (as of purchasing my server, including Steemit Inc) running a full API node. In my opinion, it is crucial to have more of such nodes for further decentralization of the Steem blockchain.

Starting a witness node right now in a bear market like this is way less competitive than starting one in a bull market as many backup witnesses have already disabled their nodes due to falling prices which makes it difficult to cover server costs, back in those days running a consensus node requires at least 64GB RAM. Due to recent developments to bring server requirements down, I think it is the best time for me to spin up a node now, rather than having to regret later when witnessing becomes even more competitive in the next Steem/altcoin bull run (if it will ever happen).

Prior experience

My first experience running a block producer that uses DPoS consensus algorithm is a Smoke.io (Steem clone) witness with @graylan, which has been running since 27 September 2018 till now. During this period, @graylan and I managed to run a top 20 witness over there for 375 days (until the blockchain crashed) with a miss blocks count of 331.

I am also currently a #9 block producer on Avalon blockchain, which is a far less stable JavaScript-based DPoS chain than any Graphene blockchains such as Steem. Due to its instability, the missed blocks count is far higher than anyone would expect. Here are the missed blocks count of the top 10 producers pulled from MongoDB:

> db.blocks.find({missedBy:'nannal'}).count()
151662
> db.blocks.find({missedBy:'ivansnz'}).count()
103313
> db.blocks.find({missedBy:'corenet'}).count()
81303
> db.blocks.find({missedBy:'tibfox'}).count()
33125
> db.blocks.find({missedBy:'techcoderx'}).count()
23165
> db.blocks.find({missedBy:'zurich'}).count()
19397
> db.blocks.find({missedBy:'christianknuchel'}).count()
13264
> db.blocks.find({missedBy:'dtube'}).count()
11624
> db.blocks.find({missedBy:'tokyo'}).count()
11536
> db.blocks.find({missedBy:'los-angeles'}).count()
7819

Current projects

IPFS Discord Pinning Bot + 3rd party uploader

Being part of the @onelovedtube community, I wrote an easy-to-use IPFS pinning bot that can be used on our Discord server (join here) to pin DTube videos and DSound audios to an IPFS node (or nodes) with just one simple bot command. For example:

Screenshot 20191128 at 1.07.49 PM.png

The latest update for this bot may be found here. This may be extended to support any other Steem DApps that leverage the IPFS protocol.

The problem with this bot is that it will not work when the official servers run by the devs are down for any reason. So I have developed a 3rd party uploader that is easy to setup and use, and solve many problems associated with official uploaders at the same time (such as encoding queues etc). The uploader currently supports DTube uploads, but it may also be extended to other Steem DApps using IPFS (for example a 3rd party DSound uploader if there is demand for one).

The latest update may be found here, and the live website here.

Steem hardware wallet application for Ledger wallets [Paused]

A more general contribution to the Steem ecosystem, this enables Steem hodlers to store their STEEM, SBD, Steem Power, Steem Engine tokens and SMTs securely on Ledger hardware wallets. Currently, the application can generate Steem public keys from the 24-word recovery seed successfully. I'm now trying to obtain a valid signature from a transaction, in which I still could not obtain one but the errors generated when trying to verify them is getting better and less intrusive.

This project is paused for now as Avalon blockchain (which I also produce blocks for) needed more attention due to its recent instabilities. I will also be compiling a DTube Rewind (equivalent of YouTube Rewind, details here). OneLoveIPFS needed some marketing also due to the recent poor sales volume.

I hope to be able to resume this project at Q1 2020 and complete it within a few months as there are some security audits that needs to be completed before submitting the application to Ledger for approval. The proposal may be found here. I would also like to use this opportunity to thank everyone who has shown their interest in this project through your stars on the GitHub repo and your votes on the proposal.

Screenshot 20191128 at 3.55.40 PM.png

At this point I don't think this will ever get funded due to the high threshold set by the return proposal, and the fact that it's going to end by 31 December this year.

Technicals

Enough of all that, let's get into the technical aspects of the witness!

Screenshot 20191123 at 9.22.50 AM.png

My main node is a rented dedicated server from online.net (aka Scaleway) housed in DC5 datacenter in Saint-Ouen-l'Aumône, France. I managed to secure one of their Black Friday deals for this server for only €30/month! You can see it for yourself while their sales are still on here, it's already sold out by the time I started to replay the blockchain. The offer is only valid for the first 12 months, which means I will be finding another Black Friday deal next year if I am running the witness node from month 13 onwards.

Server specs:

Model: QuantaMicro X10E-9N
CPU: Intel Xeon E3-1240 v6 (4 cores, 8 threads, 4.1 GHz)
RAM: 64GB DDR4-2400 ECC
Storage: 2x 512GB SSD (configured in RAID 0)
Network: 300Mbit Bandwidth

I'm currently running steemd (built with LOW_MEMORY_NODE=OFF, CLEAR_VOTES=OFF and SKIP_BY_TX_ID=OFF) on this server in a screen session (not Docker) with all plugins enabled in MIRA so that I can combine it with Hivemind and Jussi to satisfy full node requirements. I could have run steemd in non-MIRA configuration in low memory mode and be able to replay faster, but I decided to replay that way so that there's one more reason to vote for me 😉

Steem RPC API endpoint and seed node info will be made available soon and will be announced in the next 1 or 2 witness update posts.

In addition, I may be considering running a light MIRA backup node over my LTE connection here in Malaysia, not sure if it is capable of producing blocks on time even with this optimization.

Witness updates

I will be posting regular witness updates (most likely every week) to help myself to breakeven the server costs faster, as well as providing up-to-date information such as resource usage that may be helpful to upcoming new witnesses.

Price feed

It is important for witnesses to maintain an up-to-date price feed for ensuring:

  • Accurate SBD debt details
  • Correct SBD payout amount
  • Correct SBD inflation that goes to the Steem Proposal System
  • Correct exchange rate between STEEM/SBD when performing SBD conversions

Accurate price feed matters a lot for the top 20 witnesses, but do not matter much for the backup witnesses. Hence, I will be using steemfeed-js built by @someguy123 to update the price feed every 6 hours. I will increase this frequency as I move up in witness ranking.

Vote for me!

As always, thank you for all your support over the past years since I joined the Steem blockchain on 2 March 2018, right after YouTube removed me and many others from the YPP due to policy updates.

Now that I'm officially a witness, so if you like my work, please vote for me by clicking on the image below:

vote me.png

or by using this link: https://beta.steemconnect.com/sign/account-witness-vote?witness=techcoderx&approve=1

Sort:  

Great work! I totally agree that it is so important for more people to run full and fat nodes now that MIRA and Hivemind allow it to be done on commodity equipment.
Please post detailed build instructions as I also want to do this but have been unable to find clear up to date instructions.

That could be a video idea for me to work on

i'd love to see those tutorial videos. maybe we can do a deal on tutorials vs videos made for promoting the one love stuff? :) i kind like making marketing stuff ;) -- i'd love to run a server for steem too but can't afford at the moment, great price thou, 30 euros a month!

Thank you for your support 🙌

Awesome man!
Really proud of you, wish you the best success and luck!

What a cheap price for that server! I got the same email but thought nothing of it. I will have to go through it again. I have a spare vote, so you have it for now ;) I'm running witness @untersatz with @organduo. Good luck!

Nice to have someone I actually know to vote for.
I wish you well with this endeavour and hope it works out for you.

Congrats Buddy so proud of you 💖 you are the backbone of the @OneLoveDTube community, more than happy to support your witness 💪

This post has been upvoted by witness @untersatz. You've done a great job!
The @untersatz witness and manual curation is under the guidance of @contrabourdon and @organduo.
Current VP: 94.4%