On Private Nodes

in #steemit6 years ago

Full Nodes

There are a growing number of witness nodes and full nodes all the time. With the release of 19.4 on its way though, it seems there may be a some changes as nodes start to taper off to 19.4.

What are Full Nodes?

Full nodes are different from other steem nodes in that they run every steemd plugin. This makes the requirements for running a full node so emmense that it is untennable. It is partially because the price of memory is so high and one of the requirements for an efficient node is high memory (entire blockchain is pretty much stored on a ramdisk)

Why a full node??

Full nodes are important because they have data available through them you can't get from most nodes. Right now, it's extremely popular to run a witness node because witness nodes produce blocks (thanks to the witness plugin). Producing blocks means making money. Why not run a node that makes money, right!?

Unfortunately, witness nodes don't run all the plugins since the witness plugin is the one that's most important. This means that some data is not available through the witness node. Let me paint a picture!

fullvwitness.png

As you can see, full nodes end up the ones taking a majority of api requests because that's where the data is. Full nodes end up being pretty important.

On the upside, there are few that actually need a full node. Not everyone is using all the plugins all the time. The largest consumers of full nodes are applications like Busy, DTube, or DLive.

Motivation

Now there are a number of nodes available for API development. There are tools and dapps for steemit popping up just about hourly. Just follow the #development tag. These applications all need access to a full node. A majority of them are from new developers that are working on api.steemit.com

torrent.png

As you can see, this puts a strain on apis. As more applications become available, they start using more full nodes. Less bandwidth is available. Imagine your application requires a tremendous amount of bandwidth and exclusive access to the steemit api, but you have to share that access with just about every other steemit application. Fighting over bandwidth is not fun.

Solution

Recently, I was contacted by @GuiltyParties who suggested that a private node would be good. That is, instead of offering access to the world, give exclusive access to the API for those that need that. This way they are not fighting for access.

How do we accomplish this

The first step is a full node, but then the next steps are:

  • Define security and access. Nodes need to be available to those given access and unavailable to everyone else.
  • Define a service level agreement (SLA)
  • Compensation and payment. Providing a full node as a service: should it be compensated?

I will continue to post more on this as I have available. Please comment and communicate with me on what your needs are and how you would like to see private nodes implemented.

Join me on Telegram

Please Vote Your Favorite Witness...Me!

Vote for r351574nc3

Sort:  

If a private node provides access to a service that receives a % beneficiary when users use the service, maybe the best thing is for the private node to receive some % of the % beneficiary for each post?

Nah, that's impossible. The node operates on the blockchain and it can't manipulate operations or transactions as they're coming in. I mean, would you use a currency that changed your transaction in route?

Coin Marketplace

STEEM 0.31
TRX 0.11
JST 0.034
BTC 64060.81
ETH 3129.62
USDT 1.00
SBD 4.17