Servers are weird like that.
The entire point of running a server or even just a basic bot is rooted in automation. The computer does a thing for a very cheap price that it would take thousands or even millions of humans to accomplish. Set it and forget it. Get the thing up and running and let it do the work without having to baby it.
If it's not broke don't fix it.
Of course servers do need at least some maintenance. I had been letting my Hive node run for several weeks without checking up on it, and in retrospect this was clearly a classic blunder.
So what had happened was...
Usually I check in on my node when it misses a block. I log in through SSH to make sure everything is looking good. The problem with this strategy is twofold. First, I didn't miss a block in a very long time, and second the problem in question had nothing to do with the node itself.
In any case I was having trouble getting access to the IP address in question but when I stumbled into my email account the problem was painfully obvious. Something like 15 emails over the last two weeks warning me that my payment was overdue and my node was going to be shut off with full data loss. LoL! Shit, that's embarrassing. Oops.
So I pay off the delinquent bill instantly and get some tech support to turn my node back on, hoping I won't have to start over from scratch as I was warned about. However, the first round of tech support had some issues. I new invoice was created, I got a message saying everything was all good, but it wasn't. My Privex login still showed I had no active servers up and running. After another ticket the issue was resolved and I held my breath during the login.
At first it was looking pretty good, all the files that I had modified were still there and it looked like I could just restart the node back up. Unfortunately no dice. Looks like whatever killswitch automation exists corrupted my database and I indeed had to start back at square one. The new node needed 24 hours to sync, which wasn't terrible but it was pretty annoying knowing this all could have been avoided by simply paying attention to my own project.
Price feed Hive = $x
The funny thing about this particular node setup is that the most difficult part isn't even producing blocks, but rather making sure the price feed doesn't just sit there stagnant. The price feed is pretty damn important because it's the one oracle function that witnesses are currently in charge of.
Hive needs to know what the value of Hive is in terms of USD. This is vitally important for HBD to function correctly. If the feed were to be higher than the actual value of Hive: too much HBD gets printed, and vice versa.
There are currently 4 witnesses in the top 40 who mint blocks but don't upkeep their price feed, which is okay on a technical level but in my opinion feels pretty amateurish and lazy. As long as the top 20 are on point, which they are, everything runs smoothly.
How does that even work?
It's weird to think about within the context of a decentralized system, but the most obvious way to post a price feed is to connect to the API of a prominent centralized exchange that lists Hive and simply ask it what the price of Hive is. A lot of witnesses are currently connecting to the Binance API and asking pretty please while trusting the answer that they get from Binance servers.
So what would happen if Binance just decided to lie?
Would we be screwed? Not really. There are other exchanges with other trading pairs that can also be pinged at the same time. If the number Binance is telling us and Huobi are completely different we know there is a problem that needs to be resolved.
Unfortunately for Hive the number of places one can even acquire it at this point has been consistently dwindling. The best thing for us now would be to get listed on decentralized exchanges or even create our own, which just so happens to be what VSC smart contracts are aiming to achieve. Access to a decentralized market would in turn make it much easier to trust a price feed API that could connect to multiple nodes to corroborate an answer.
Respect for the top 20
After dabbling with running my own Hive node I find myself blessed with newfound perspective when it comes to this network. Of course my first knee-jerk reaction when it comes to all things technical is something like, "Wow, what a shitshow. We need better code, documentation, and tutorials." But at the same time it's all quite impressive and a testament to what the developers actually do around here.
It's pretty obvious at this point that there's no way anyone can be a top 20 witness without having at least one backup node that kicks on in case the main one fails. I haven't even figured out how to do that yet but it's clear that the stakes are much higher for consensus witnesses.
There's also the issue of full nodes. That's an entirely different thing because it requires a lot more hardware and resources on top of being prone to attack. How does one deal with DDoS requests or simply legitimate requests that become unreasonable? What happens when connection issues occur or just random bugs pop up out of the woodwork? The only way to tackle these problems is to have been dealing with them for a while. Experience in the field is key, and yet experience with crypto just in general is extremely rare across the development board. We could have so much more, but we are also lucky to have what we've got.
The good, the bad, and the ugly.
It's always gross to learn how the sausage is made, but also that doesn't stop many of us from consuming it. Ignorance is bliss! On that note during all this mess I checked on the @hextech node to see how many rewards I had actually accumulated over these 10 weeks. It was actually kind of shocking to see that the account is up something like $500. Pretty impressive considering the cost of operation has been something like $125 so far.
Not to mention these dollar amounts are converted from Hive, as the rewards are denominated in Hive. So when I say $500, what I actually mean is 1500 Hive, which feels a lot more impressive than the current dollar amount. What would happen If the Hive price went up? Everyone makes more money and we potentially get a network effect flywheel. Of course the same is true in the opposite direction as well.
So what will I do with my newfound source of income?
Meh I don't know probably invest my time and money into a better node and understanding of how this all works. That's the idea anyway. At the end of the day this is kind of a big deal. Very few networks actually pay for and incentivize their own infrastructure. How can Bitcoin scale up if every single person running a node starts getting a bigger and bigger bill every month? Can't have that! With Hive it's different because the financial incentive can increase with the cost of hardware and digital infrastructure.
Conclusion
Well I certainly won't be letting that happen again! The sting of not paying a bill on time has never been more cringe. Live and learn I suppose. Still, it's all part of the journey I suppose and the bumps we hit along the way. Speaking of bumps... sell-the-news ETF action seems to be in full swing with a 5% dip in Bitcoin within the last hour. Ouch! I'm personally looking to reenter around $35k if the opportunity presents itself. Then again who cares what happens in the short term? Let it ride and keep grinding as this bull market materializes over the next two years.
Return from Hive Witness Node Back Online to edicted's Web3 Blog