Decentralisation of Full Nodes - Essential for Steem's Success

in #steem6 years ago (edited)

View this post on Hive: Decentralisation of Full Nodes - Essential for Steem's Success


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.


Over the last couple of days I've been going back and forth with some of Steem's technical experts and full node witnesses @themarkymark, @anyx & @bobinson exploring the question of whether full RPC steem nodes can be run on relatively inexpensive (~$2k capital cost) high end desktop systems (HEDT) rather than renting high end servers costing $10-15k per month.

While some may wonder why I am focussing on this issue arising from Ned's bombshell announcement, given the many concerns that arise (delay in SMTs etc), there is a very good reason.

Ned's post has revealed the very concerning reality that our whole wonderful Steem ecosystem is highly dependent on Steemit Inc running full RPC nodes which provide the APIs that all the amazing Steem frontends and apps (@steempeak, @steemmonsters, @utopian-io, @steemworld, @partiko, @esteem, @actifit, @steemhunt etc) rely upon.

Steemit Inc is spending around $2M per year on outsourced (rented) infrastructure costs, of which full nodes are a big component. This is simply unsustainable in a low Steem price environment. These fiat costs are covered by Steemit Inc selling Steem and this pushes the price of Steem down further.

It is a vicious cycle that can only be solved by dramatically cutting infrastructure costs by properly decentralising Steem.

Only a few witnesses (including @themarkymark & @anyx) are running full RPC nodes to supplement Steemit Inc. This is because currently it is very expensive to run a full node as they currently require massive amounts of RAM (256Gb+) only available on expensive server grade computers to run efficiently due to the huge size of the Steem blockchain. This is a crucial failure of decentralisation which must be resolved if Steem is to thrive.

@anyx has shown that it is possible to cut costs substantially by purchasing (rather then renting) a very high end 512Gb Xeon Gold server for around $12k, and run a full RPC node on it. This is a vast improvement over spending the same amount PER MONTH as Steemit Inc has been doing.

However it is not enough for full decentralisation.
$12k upfront plus a couple hundred $ monthly for hosting is a big commitment that many witnesses, especially those outside the top 20, will not be willing or able to make.

To fully decentralise and remove central points of failure and control, all crucial elements of a decentralised network need to be able to be run on consumer grade equipment.

This is why in the Proof of Work (PoW) blockchain world, true believers in decentralisation support GPU based mining and oppose ASICs. If the equipment needed to participate fully in a decentralised blockchain network is not readily accessible and within the financial means of large numbers of people, then it will naturally centralise and become vulnerable.

In addition to the cost and accessibility issues, there are some real technical advantages of HEDT machines for blockchain applications. HEDT machines have much faster single core performance than server CPUs and single core performance is crucial to Steem nodes, particularly in the time consuming replay function, performed every time there is an outage or upgrade.

The tables below show the much higher single thread performance of HEDT CPUs costing $250-$550 like the:

  • Intel Core i7-7740X (max RAM 128Gb, Optane ready)
  • i7-6800K (max RAM 128Gb)
  • i9-9900K (max RAM 64Gb, Optane ready)
  • i5-8400 (max RAM 64Gb, Optane ready)

compared to server CPUs such as XEON Gold 6126 or 6130 costing more than $1900.

Screen Shot 20181130 at 13.27.20.png

AMD Ryzen Threadripper HEDT CPUs are also an option, with the advantage that they support ECC memory, but the disadvantage of lower single thread performance vs Intel HEDT CPUs.

There are two ways that HEDT class machines may be able to be used to provide full nodes:

  1. By supplementing RAM with Intel Optane memory. @bobinson is doing testing on this.
    It is crucial however that tests are done on consumer grade Optane, as server grade is 3x the price for marginal performance increase.

  2. By "sharding" full nodes into multiple HEDT class machines, splitting the APIs between them to provide redundancy for all but the most lightly used APIs. This sharding could be done within the one witness's setup and/or across multiple cooperating witnesses.
    Currently consensus data (which must be on every machine) is 45Gb and the total for all APIs is 202Gb. Thus each HEDT class machine would have around 80Gb available for running APIs.

  • Partial redundancy (of the most critical or highly used APIs) could be achieved with 3 HEDT class machines (~$6k)
  • Full redundancy (2 machines running each API) could be achieved with 5 HEDT class machines (~$10k). Even taking into account the somewhat lower reliability of HEDT class machines, the overall per witness reliability and performance of such a setup would be higher than a single Xeon Gold server (as well as still being cheaper).

But it is important not to get too focussed on reliability levels.
There is always a cost / reliability tradeoff. However, the whole point of decentralisation is to have a very large number of (implicitly lower reliability) nodes in the system so a few can go down without problems to the overall system.

While no individual witness wants to have an unreliable node, the system as a whole is designed so another witness steps in if one of the main witnesses servers go down. The consequence is just a decrease in the earnings of that witness, not an outage of the Steem blockchain.

It is simply not necessary to have the same levels of reliability and individual witness level redundancy in a properly decentralised system as it is in a centralised system.
These days all computers are very reliable and the difference between consumer grade and enterprise grade reliability is huge in dollar terms but very small in actual percentage terms.

Decentralised systems do not need enterprise grade reliability at the individual node level, because decentralisation provides much higher reliability at the system level.

I am pleased to announce that I am joining the @Utopian-io team as CFO where I will be applying my financial, technical legal and decentralisation expertise to take Utopian and Steem to an even higher level.

I look forward to working with all concerned parties on Steem, to resolve these and other challenges facing us and move forward to the bright future that I saw at SteemFest.

And don't forget to:

Signup for the Crypto Class Action against Facebook & Google's Crypto Ad Ban

Sort:  

Only a few witnesses (including @themarkymark & @anyx)

What are their URLs?

As I admitted in one of my previous videos, I also rely heavily on Steemit's API for my fulltimebots.

Regarding full-nodes, if ~300GB is needed to be stored in memory how bad would it be if a SSD harddrive is used as swap on a 64GB machine? Those don't cost much but would the performance hit be too great?

We need to find a clever way to prune this db asap ...

Yep we're pretty dependent on steemit.api over at @steempeak but happy to switch to paid when it comes time and I'd personally love to see the system more decentralized which would make things less prone to total system failures based on one node.

This is indeed amazing summary @apshamilton

Thank you for taking the time and your effort. I really appreciate it a lot.

Yours
Piotr

Congrats on being appointed the position! Great information that demonstrates that supporting the ecosystem as a community is realistic. These are the times I wished I knew a little bit more about the technical aspects of doing this as I would love to support the infrastructure of the ecosystem!

Posted using Partiko iOS

Im entirely new but I believe in this system and offer whatever support I can even if its just a lowly upvote. If I had the money I'd personally fund you adequate server farms for the witnesses. Here's hoping. I imagine sooner rather than later Computers are gonna be adequate enough for steemit just by the fact, all we need is to hold out until then and then steemit gets huge like facebook Ideally but then not all going to one dude who looks like a picture of inbred royalty from the past XD Thank you for your contributions, I love learning about where this is all currently at, even at a laymen's understanding.

Like all other cryptos, STEEM has issues with scalability. Like you, Roger Ver of Bitcoin Cash feels that Moore's Law will deal with this problem, however Moore's Law appears to be dropping off its exponential growth.

Here’s what we do know. The last 15 years have seen a big falloff in how much performance improves with each new generation of cutting-edge chips.

Source

If anyone develops a system to run a steem node on a GPU mining rig I can throw some hardware at it.

"It is simply not necessary to have the same levels of reliability and individual witness level redundancy in a properly decentralised system as it is in a centralised system."

i dunno anything about servers so i can't say much, but i was surprised by comments basically saying only steemit inc is capable of running it. i'm so happy you're part of this community and is actively looking for answers.

on a different note, i'd like to hear your opinions on this https://steemit.com/steemit/@steemitdev/upcoming-changes-to-api-steemit-com cuz i feel like steemit inc is about to cause even more confusion than it already has.

This change to using Hivemind for some of the non core APIs should reduce RAM requirements for full nodes and is thus a good thing.

Posted using Partiko iOS

That was very informative. Great new summary.

If you haven't seen it then check out @ura-soul's video response to the livestream. Sounds like you two are singing very much from the same song sheet on this.

As am I, but I'm a non techy!

Posted using Partiko Android

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.

Excellent. Hope @ned reads about it and realize about how much power we have at the Steem community.
Steem on

Posted using Partiko iOS

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.035
BTC 91288.71
ETH 3149.19
USDT 1.00
SBD 3.08