You are viewing a single comment's thread from:

RE: DO ANY OF THESE WITNESSES DO ANYTHING?

in #steem6 years ago

@crimsonclad, from what I understand, a "full-node" within the context of a blockchain mining operation, is a participant who, unlike the miners who are merely, blindly chugging along, figuring out the best "hashes" with which to "decode" the messages (i.e., cryptocurrency tokens/ coins), the full-nodes are given the responsibility of actually adding said blocks--after being deciphered by the miners--into the actual, formal blockchain ledger. They are kind of the "gatekeepers," so to speak: deciding here and there, which blocks mined by the miners will become "set-in-stone" and a part of the blockchain forever-more. So they are the real "head honcho," whereas the miners are just blindly working (or, rather, their CPUs are ;)) . The "full-nodes" are there to solve any discrepancies, etc.

That being said, it would seem to me that having only three "people" in this position of full-node--out of how many total users?!?--seems precarious, at best...

I say all of this with the caveat that I am not a "pro" at this stuff-merely learning "along the way" as many others. I am happy to receive any correction or criticism--in fact, I welcome it!! Let us learn this thing together, and grow!!

Sort:  

I understand what the types of seed/witness/rpc node functions are~ the reason I ask is because we do not have enough full RPC nodes (with all plugins enabled) being made available to the public, and if another was to come on the scene I was surprised that many of us missed it, so I was clarifying. The RPC debate is one that has been going on for some time now, as obviously more are better both for decentralization and for stability, but currently, it is more costly than people would like to run something for the benefit of all, versus running a private node to be used only by a single project. This means fewer people take them on and set them up. There are other, private nodes being spun up to back individual projects, certainly, but for devs wanting to work with this chain who can't afford to do that, public resources are important.

So in this case, the 'miners' you are talking about are the witness servers, versus the seed node support, however, I'm talking about RPC nodes. The servers that are witnessing (verifying/generating) blocks are the witnesses, and there are many more than three of those. Rewards are allotted for these witnesses based on each block produced, and ranking is based on stake weighted voting in an election type consensus mechanism, so the term mining isn't really applicable in this case. You have 20 top scheduled producers, and a 21st rotating spot which is taken from all other enabled witnesses based on a schedule that is proportional to DPoS ranking.

Thank you. Okay... so I think I'm starting to (maybe) understand--there are 200+ "Witnesses," though, only 21 of those are, at any given time, "on the clock," so to speak (i.e., "witnessing")..?

And, amongst all these various witnesses (which are also "nodes," if I'm not mistaken?) there are also various types of nodes; namely, "seed nodes," and "RPC nodes," the latter being a particular type of node which is designed to support public functions and operations--as opposed to different "private nodes," which are not designed to interact with the "general" steem chain...?

Is that kinda on the right track??

there are 200+ enabled, active witness servers (thousands and thousands that are disabled and not active.) The block schedule is such that each of the top 20 ranked witnesses produces a block each cycle (which is 63 seconds... a block each 3 seconds,) followed by the 21st. The 21st rotates through all active witnesses outside the top 20, proportional to their ranking. If a witness is disabled, then it doesn't go into the schedule, produce any blocks, or receive rewards for doing so.

Seed nodes don't produce blocks but do store data to support the chain, but the very quick and dirty explanation for the difference between a seed and an RPC node is that not all seeds expose the RPC port for API calls over WebSockets, which is what frontends like Steemit, Busy, and condenser based interfaces use... if you want applications built on the blockchain to be able to take advantage of all technical possibilities, all plug-ins need to be enabled. This is what requires such a skookum server, and what makes them generally quite expensive to run. The more load put on the fewer servers is bad for latency and stability of course, which is why it's important to have more of them. The cost being prohibitive and the fact that they do not generate rewards makes this harder to do for many developers, who then need to rely on public nodes provided by others.

So, as to your last question, the public bit refers to the RPC being available to anyone who would like to use it, whereas a project which is resource intensive or depends on low latency or whatever the case may be may choose to run a private RPC. This simply means it is only used by the developer for the projects they choose, and the connection is not made available to everyone on the chain so the resources are dedicated to particular performance. (For example, Steemd uses a private RPC as it gets MILLIONS of requests daily)

This is awesome. Thank you for taking the time to explain something which I'm sure is probably pretty tedious lol. I appreciate it.

It's not a problem at all; the more people who understand these basics, the stronger the understanding is of our chain in general. It's basically what I'm here for :) I enjoy talking to people who are interested in the inner workings of the systems they use.

Well... Yes, I am that--interested in the "systems I use". Although it is quite intimidating because there is sooo much to take in; it's a continual process. Though, of course I'm only stating the obvious. It is a lot, though lol. But yeah. I have a "vested" interest in this platform--"skin in the game," as they say--and I firmly believe that knowledge is power.. I'm like a sponge, absorbing as much as I can until I have to be wrung out and hung (hanged?) out to dry lol

Hello again, @crimsonclad. I have been thinking about this conversation, and, am curious: is there a "place," a forum, something that newer people can go, with the express intention of learning more about steemit and its operations, and its place within the broader scope of crypto and blockchain technology? As would of course be apropos to something (ostensibly) so "decentralized," there isn't some kind of "welcoming committee" (I know are doing things similar) but, they seem more geared toward just gaining followers and "customer retention" if you will. Which is important, but, I'm not just your average sheep ;) I wanna know how this thing works so I can do it well, and perhaps even make improvements. How did you learn what you have, crimsonclad, if I may ask?

well, I read (whitepaper,) and read (bluepaper,) and read (PRs and branches on the GIT,) and read (the developer's portal,) and when I began to worry that I'd run out of material, I started reading (posts by the server minded like GTG and Someguy123,) and then also read (started lurking anywhere established devs were talking about witnessing and infrastructure.) And then I went out and started asking questions as I worked through it myself. So, realistically, it seems our approaches are much the same.

The big thing to remember is that despite the hardforks often being heavily coded by the Steemit team (given their proximity and experience with the chain, they drive a lot of the development,) Steemit!= STEEM. As much as they want the chain to be better and better, they also do indeed want customer retention and as a company that is building a social media interface, it's more important that people use and understand that than taking the time to educate every person on the inner chain workings. (Most really don't give much more than a cursory shit anyways.) This means past the FAQ and documentation above, they don't always spend too much time handholding through this technical stuff.

The forks are voted on by elected witnesses chosen via the consensus mechanism inherent to our DPoS system. Even though this may not be a truly community provided hardfork when measured on a contribution basis, we're getting closer to that every day as more interested devs have begun experimenting. Your best bet is to begin by heading over to STEEM.chat and making some forays into discord communities; these are forums that touch on pretty much everything and anything related to STEEM and Steemit.