Blockchain Update 4: Resource Credit Implementation Details

in #steem6 years ago

BCU4.jpg

As the release of Hardfork 20 draws near, the Blockchain Team would like to take this opportunity to explore some of the progress we’ve made toward implementing our new Resource Credit (RC) system.

A Freemium Blockchain

Steem is one of the few blockchains that operates under a “freemium” model, meaning that the blockchain enables its account holders to perform a certain amount of transactions “for free” as long as they have a sufficient amount of stake in the form of Steem Power. This new RC system will make Steem the most advanced freemium blockchain in the world.

As we discussed in a previous post, the purpose of the RC system is to:

… create a system that 1) more efficiently allocates blockchain resources; 2) more accurately measures the true cost of running the blockchain; and 3) enables Steem developers to create more predictable user experiences.

Three Resource Credit Types

The first step toward achieving this was to settle on a definitive list of resource types and to develop strategies for implementing them. After performing a thorough analysis of the available options, we arrived at three RC types: blockchain size, state size, and computational load.

To understand why these were chosen, we will explore how the RC system is supposed to work. Actual measurements of these properties will not be constantly computed, as this would place exceptional demands on blockchain infrastructure. It would be self-defeating to create a resource management system that itself placed an unreasonable demand on the system’s resources.

Instead, the goal is to generate stateless estimates that are proven to closely correlate to actual measurements as established by a regression analysis. Our analysis has concluded that blockchain size, state size, and computational load are the most promising types.

The Old Way

The current bandwidth algorithm essentially makes the assumption that all physical resources are correlated to one resource type: transaction size. As you can imagine, this is an incredibly inexpensive computation for the blockchain to process. However, as we explained in our previous post on Resource Credits, there are many downsides to the simplicity of this model, including the likelihood that it is not especially efficient at calculating a transaction’s “true cost.”

The New Way

The new system will make the assumption that all physical resources are correlated to the three aforementioned types (blockchain size, state size, computational load), as opposed to transaction size only. Much like the current system distributes bandwidth, the blockchain will then generate RCs based on its stateless estimates of each resource, and distribute those RCs to Steem account holders based on their stake. Then it will calculate the cost (in RCs) for each transaction based on the remaining availability of those resources.

The Goal

Our goal is to create a more efficient and accurate system that enables Steem developers to create more predictable user experiences. Our research concluded that the three resource types discussed herein meet these objectives. Therefore, their inclusion in the RC system will maximize our odds of meeting those objectives. While Steem is already the best blockchain protocol for powering real-time dapps, this new RC system based on blockchain size, state size, and computational load, will make it even better.

Flexibility for the Future

One final feature of the new RC system will be its flexibility. The system is designed to enable Steem blockchain developers to add new resource metrics to the calculation if doing so will further the objective of more efficiently allocating blockchain resources.

While Steem is arguably the fastest evolving blockchain—with 19 Hardforks successfully completed—the RC system included in Hardfork 20 will enable us to improve it even faster.

Blockchain Team


Steemit is Hiring

As many of you have already heard, Steemit is hiring. If you’re a talented software engineer who loves the challenges of building cutting-edge dapps for cryptocurrency (and especially for Steem), then we want to hire you.

More information can be found in this recent post or on our jobs site: https://jobs.lever.co/steemit.

Sort:  

I love the extra consideration that "true" transaction cost is being given. During one of our last big influxes of users, we saw the bandwidth algorithm tested pretty strongly — and it really did work, but with some pretty big issues. (Some people were 'balanced' right into the ground!) It worked exactly as it should have, but was a bit hamfisted. In response to big growth, it was a big win, but it did definitely cause some issues to newly on boarded users who were just starting to learn their way around the ecosystem.

Building off something that worked (albeit maybe almost so well that it didn't ) into something with a lot more logic and finesse is a huge move forward into getting more real new users on board in a way that better considers the impact on the chain. It's great stuff~

Well said, as usual ;)

Looking forward to the more upfront and understandable system and way to track where you actually stand.

I have seen that even something like @SteemMonsters can be a good example of programmers creating things that use the block chain. While it's still relatively still small it does do thousands of extra transactions a day which will scale as the user base scales. Pack creation, merging, trading etc

Now the introduction of Steemmonsters market adds a transaction for each LISTING and then each BUY and numbers of wallet type transactions is going way up for many users.

Now imagine lots of games, programs even similar markets doing similar things.
Glad you're looking at this issue now.

Cada vez que abro post de #SteemitBlog lo hago sabiendo que serán buenas noticias, ya que ustedes tienen un excelente equipo humano que hace posible cada actualización.
Estoy seguro que tienen hombres y mujeres con un gran propósito dar siempre lo mejor de si, con el fin de mejorar siempre nuestra querida plataforma @steemit que mas que ser solo una blockchain para muchos (como yo) se ha convertido en su hogar.
Es excelente que nos muestren cada paso a seguir así como lo hacen, indicando cual es la vieja forma y como será en adelante con el lanzamiento de Hardfork 20 , así podemos entender un poco mas respecto al funcionamiento de Steemit.
No me queda mas que decir que nosotros los Steemians seguiremos también dando lo mejor de nosotros para llevar un contenido de calidad, que siempre esta cadena de bloques tenga el mejor contenido, ya que todo esto quedará para la generación actual y para las próximas generaciones.
Gracias a todos ustedes por hacer la vida en Steemit mas fácil y con los mejores resultados.
Felicidades amigos.
Every time I open #SteemitBlog I do it knowing that it will be good news, since you have an excellent team that makes every update possible.
I'm sure you have men and women with a great purpose to always give their best, in order to always improve our beloved @steemit platform that more than just being a blockchain for many (like me) has become their home.
It is excellent that they show us each step to follow as they do, indicating what the old way is and how it will be with the release of Hardfork 20, so we can understand a little more about the operation of Steemit.
I have nothing more to say than that we Steemians will continue to do our best to bring you quality content, that this chain of blocks will always have the best content, because all this will be for the current generation and for the next generations.
Thanks to all of you for making life in Steemit easier and with the best results.
Congratulations friends.
.
Again...
THANK YOU!

This new system of Resource Credit will make steemit better and faster for sure. Its important to make the whole system scalable because with hardfork 20 i assume there will be a lot more people joining in :)

This will basically make spam attacks really hard to pull off right? if the computational load on the chain rises, the amount of RCs required for a transaction rises limiting you from spamming even if you have a horde of small accounts right? Pretty good work here :-D I hope to see it working soon!

The transparency in Steemit is amazing. From my understanding this is a stepping stone to what's coming to steem. The SMT.

So far steemit has been and Will continue to be succesful. Why do I feel like SMT will be released at steemfest. Just thinking out loud. RC 20 let's go.

Dante is Here No fear

Cheers

Hey....I sent a very serious message to Ned about a very serious situation of a post of a user and there is paedophilia envolved......I sent an anonymous message via wallet...please...it's very very very serious to keep steem community an healthy place

I think this is a great way to go... Making steemit more scalable will definitely attract more users.

The easier to use, the better!
Want to use this medium to shout out to all the very hardworking witnesses. I love you all.

Proof-of-Stake, including delegated, has serious flaws which makes me doubt its viability, even if you guys do shoe-horn in more features.

Reference - https://medium.com/@hugonguyen/proof-of-stake-the-wrong-engineering-mindset-15e641ab65a2

One of the reasons you have to devise all these complex systems sitting on top of your original scaling assumption is because the basic premise is deeply flawed.

Hardfork away, it won't make much of a difference in the long run - especially if you get any real usage numbers. Current estimates are around 45,000 active accounts. (Hat tip to @paulag for that.)

I don't see how you're going to make it work, frankly.

Steem is not PoS, it is DPoS. There are some technical differences.

The artile is flawed, but I don't feel like opening a debate.. I guess the main thing that it doesn't take into account is that new block producers can be voted in at any time. Also, in terms of the geographic concern - when there was a recent issue with the Steem blockchain, there was no issue with a sufficient number of witnesses being pulled in to deal with it. There were lots of people woken up at 4:00am, pulled home from errands, and lots of other stuff. We still got enough people there to deal with it in a timely manner.

You didn't read it - it clearly talks about PoS AND Delegated Proof-of-(mis)Stake.

Listen, even with checkpoints you guys are playing with fire.

But you know what? Go ahead, build your sandcastles in the air, just don't complain when it gets taken down.

I tried, and if you can't see it -- then that's your problem, not mine.

I did read it. The first two concerns assume that there is no mechanism to establish the longest chain and two forks will just continue on. In DPoS, 2/3 of the block producers are needed to establish an irreversible block. If the network split there would not be concensus to continue producing blocks. The network would halt - which is still bad, but not as bad as the scenario outlined in the post. The double spending scenario also does not take into account that 2/3 are needed for an irreversible block. I’m not an expert, but afaik there is not a way to make two irreversible blocks with conflicting data when both would need 2/3 of the block producers to create a block that agrees.

Let me lay this out for you - there are two scenarios for Steemit:

  1. User retention slips or stays at a paltry 13%, and it gradually joins the long-tail of technological failures from lack of interest.

  2. By some miracle users come to the platform, where it promptly seizes up after a frenzy of activity.

Hoping, wishing, promoting or nit-picking technical details isn't going to save it.

You disagree, fine. That changes nothing.

We are both entitled to our opinions, which is really all these latest comments are. Maybe you are right. Maybe not.. It is really speculation either way, so I don’t have anything else to say. I guess we will just have to wait and see.

Neither of them have anything to do with the security of DPOS though, which is what our original conversation was about.

And where are those scenarios mentioned in the article?
What have those two scenarios to do with DPoS?

DPoS is a flawed engineering solution. Just because we're shambling along with 45k users doesn't mean it will handle order-of-magnitude more.

Look at my prior posts, there is a comprehensive technical series about why.

Maybe or maybe not... but if DPoS is flawed and is way ahead of the number of users that any other blockchain out there can handle... Are you saying the BC technology is fundamentally flawed??

POS may have a lot of flaws but it does make it up with the fast it can process more tps.
POW is still the best Blockchain algorithm I seen. POC not bad but could be put into better use.
I wish we could have useful POW, primecoin was an excellent example of this.

"Useful" PoW.

A secured global network isn't "useful" enough for you?

I'm tired of people railing that Proof-of-Work as "useless". It secures a staggering amount of wealth, much more than this shambling Steemit wreck of Delegated-Proof-of-(mis)Stake.

You didn't read the article, so fine -- go down with the ship.

When did i say POW was useless? Look at all my posts, I defend POW to my dear life. Hell I got a comment from Dan about my view and wrote a post countering his point. I'll give you 1 sbd if you can find where i did not say it. And for a record I read that post in June lol

Of course a secure global network is useful but useful POW would also be cool too.
If you have 1 pant that gives your protection from alot of things..
Wouldn't a 2nd pant also help just incase?
I love POW but primecoin did show that POW could be used more efficiently.
Hell POW is still more efficient that banks:
https://steemit.com/bitcoin/@cicbar/bitcoin-energy-consumption
I want more research into useful POW when a scaling solution has matured aka the LN and sidechains. A blockchain need to scale for it to support the world.

I wish we could have useful POW

Right there, buddy.

If you missed one word, such as "more useful" then that changes things slightly.

You don't have to convince me about PoW, its the only thing that has worked consistently at a global scale without centralized "witnesses" or other garbage.

And? I still want useful POW. The POW we have now is amazing and better than POS shitcoins.
But I did not say POW was useless. I want scaling of the blockchain before looking for useful POW first though.

Actually the overwhelming reason why we have to keep improving our protocol is because so many people use it. The rate at which Steem dapps are coming online continues to increase. The rate of user growth continues to increase. Our "real usage" is still orders of magnitude beyond any other blockchain. Look at how many transactions are being performed by the top Ethereum dapp. If Ethereum has so many real users, why are none of them using their dapps? Even you are using our blockchain to claim it doesn't work. And that's totally fine. Criticism and negative feedback are vital components of any healthy ecosystem and DPoS does count on people constantly "kicking the tires." Personally, I welcome everyone who believes DPoS doesn't work to keep using Steem to complain about how DPoS can't work, thereby proving that it does in fact work. So thanks!

So when the Steem blockchain seized up - that was just an "oopsie"?

You've got to be kidding me that you think ETH is a good example, in fact, they're about to head for their own version of PoS hell with sharding -- https://hackernoon.com/the-ethereum-blockchain-size-has-exceeded-1tb-and-yes-its-an-issue-2b650b5f4f62

And you prove my point by saying "why we have to keep improving our protocol is because so many people use it.".

It doesn't scale at the outset, so you have to bolt more things on to keep up, except those "exceptions" aren't going to help in the long term.

Every PoS coin thinks they have it together, but then when there's actual usage -- the flaws become realized and they are systemic.

But you know what? Go ahead, keep shoveling people on here and see just how badly it won't scale.

The problem with this platform is the slightest suggestion that it isn't manna from heaven is shot down and dismissed.

Enjoy your future implosion.

And then... What is your suggestion??
Halt everything until we have a guarantied way to scale up to 1000000 TPS?
If you are at the top of the wave and you are able to keep improving regularly...
Doesn't it paint a bright future to you??

If you were paying attention, you'd know that what I'm saying is Steemit is fundamentally flawed.

No amount of hard-forking, glossy features or rampant promotion is going to fix it. Unless perhaps they gut the central premise and rearchitect the centralized system they have.

I doubt they'd do that, so it seems failure is assured.

I welcome everyone who believes DPoS doesn't work to keep using Steem to complain about how DPoS can't work , thereby proving that it does in fact work

Infinite loop commence
3
2
1

The way the market is setting up, I am happy to see this:

While Steem is already the best blockchain protocol for powering real-time dapps, this new RC system based on blockchain size, state size, and computational load, will make it even better.

Coin Marketplace

STEEM 0.20
TRX 0.25
JST 0.038
BTC 96907.08
ETH 3380.66
USDT 1.00
SBD 3.23