Properly Decentralising Steem & Cutting Costs by Witnesses running their own Servers & APIs

in #steem5 years ago (edited)

View this post on Hive: Properly Decentralising Steem & Cutting Costs by Witnesses running their own Servers & APIs


In mid-February 2020 Justin Sun acquired the shares in Steemit Inc and proceeded centralise the blockchain under his control, improperly using Steemit's founders stake (intended for development and decentralisation of the blockchain) and tricking exchanges into initially supporting his power grab.

After extensive efforts to resolve the dispute failed, the community revolted and formed a new, fully decentralised blockchain - Hive - without the pernicious influence of Justin Sun and his minions.
Because of Open Source licensing, Hive was legally able to duplicate all the code and content on Steem.
The vast majority of the community and decentralised applications and projects moved to Hive and Hive was listed on many cryptocurrency exchanges without having to pay the normal listing fees.

On 19 May 2020, a Steem hard fork (0.23) designed to steal the Steem from 65 accounts associated with creating Hive became public.
My position on this hard fork can be found here: https://peakd.com/hf23/@brianoflondon/letter-to-exchanges-do-not-run-steem-hard-fork-23-hf-0-23-0

This was the final straw for my involvement with Steem.

I will now post exclusively on Hive at https://peakd.com/@apshamilton/posts
All my old Steem content can also be found on Hive.


From reading Ned's post announcing 70% staff cuts at Steemit Inc, it is clear that infrastructure costs, particularly the ongoing costs of paying outsourced "cloud" providers for running full node servers supporting APIs are a big problem for Steemit Inc.
This is a problem that arises from centralisation and it can be solved by decentralisation!

It has always concerned me that in a supposedly decentralised environment so many witnesses and Steemit Inc itself were outsourcing to centralised companies running big server farms for the actual hardware that is powering decentralised blockchains like Steem.

There are three four big problems with this:

  1. Cost 1. It is far more costly in the long run to rent something from someone else than to own it yourself.
  2. Cost 2. With outsourced "cloud" companies you are paying for density, reliability and redundancy that properly decentralised systems don't need.
  3. Undermining Decentralisation: Use of out outsourced cloud servers creates centralisation that reduces the security and redundancy of the system.
  4. Impact of Steem price. If you own your hardware then you can ride out low prices. If your rent it you are committed to fees every month and may need to power down and sell to meet those costs.

@anyx has made a series of posts on these issues and has put his money where his mouth is and created his own gold standard 512Gb Xeon server running a full node with APIs: https://anyx.io.

https://steempeak.com/steem/@anyx/what-makes-a-dapp-a-dapp
https://steempeak.com/steem/@anyx/fully-decentralizing-dapps
https://steempeak.com/steem/@anyx/announcing-https-anyx-io-a-public-high-performance-full-api

However, as @anyx notes, it is possible to create a witness server running some APIs or a node running lots a APIs using a 128Gb server based on relatively inexpensive High End Desktop (HEDT) systems costing less than $2000.

Screen Shot 20181128 at 12.30.56.png

Doing some further analysis shows that witnesses can run a full node on 3 HEDT class machines. Top 20 Witnesses need 3 servers in any case to run the main steem node, backup node and seed node.

Quoting @anyx
"For Steem, the current usage as of this articles time of writing is 45 GB for a consensus node. Each API you add will require more storage (for example, the follow plugin requires about 20 GB), adding up to 247 GB for a "full node" with all plugins on the same process (note, history consists of an addition 138 GB on disk).
Notably, if you split up the full node into different parts, each will need a duplicate copy of the 45 GB of consensus data, but you can split the remaining requirements horizontally.

With these constraints in mind, commodity machines (which have the highest single core speeds) are excellent candidates for consensus nodes, with Workstation class Xeons coming in a close second."

This means 3 x 128Gb memory servers on HEDT class hardware can run all the APIs needed for a full node. API data is 202 GB (247-45 Gb) split into 68Gb on each machine + 45Gb per machine for consensus data = 113Gb (which is less than 128Gb max for HEDT class machine).

Sort:  

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by apshamilton from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

one small step towards decentralization that we never had on steem :)

themarkymark is right that it won't be smooth and there may be some disastrous outcome. but it's an overdue process. for too long too many steemians blindly trusted ned to do everything.

Thanks another learned thing, in this world as complex as it is steemit and even more the complex world of cryptocurrencies, greetings and my respects my support with my vote.

I will comment on the points in this thread but before jumping into the new infra, there can be a lot of things done on the existing infrastructure - I have written about it below.

https://steemit.com/steem/@ned/2fajh9-steemit-update#@bobinson/re-ned-2fajh9-steemit-update-20181128t044734822z

@apshamilton, thanks for an interesting analysis! :)

however it seems like somewhat contradictory to focus mostly or only on the technical solutions, which focus only on Cost price - while expecting that it would help the increase of Sell price. or am I missing something?
(further elaborated here in my post, inspired by things discussed in this post)

Basic budgeting. If you spend more than you earn you go under. Earnings are down so costs have to come down too. Also, when huge infrastructure costs are funded by selling Steem, like Steemit Inc have been doing, it drives down the Steem price making things even worse.

Posted using Partiko iOS

I like the idea of splitting up big things to smaller parts and I know that this works fine when done right. Doing hosting myself for almost two decades now, I know that this is absolutely feasible.
This reminds me of the times in the dotcom bubble where my role usually was to replace/stand by some big insanely expensive Sun servers with a few of cheap independent Linux boxes (and also phase out bloaty java enterprise crap for lean modern codebases).

Coin Marketplace

STEEM 0.32
TRX 0.12
JST 0.034
BTC 64664.11
ETH 3166.18
USDT 1.00
SBD 4.11