I've been planning to write this post for weeks now, but it was only until just now when I searched Google images that I felt like I new exactly what Graphene and Condenser are. Unsurprisingly, because developers are notoriously unimaginative in a lot of ways, Condenser and Graphene are largely self-explanatory.
Very meta.
To get an idea of what I'm talking about just look at the sad names of so many of the dapps that have been built on top of Graphene and elsewhere. Steem-this and D-that. EOS-this Thereum-that. Crypto-this and Blockchain-that.
So disruptive, bro!
- EOS Knights
- CryptoKitties
- Lothereum
- EOS Dynasty
- Decentraland
- EOS Racing
- dPoll
- Crypto Sword & Magic
- Dlease
- Dlive
- Blockchain Cuties
- Steempeak (Peakd much better)
- SteemMonsters (Splinterlands obviously better)
Seriously, it's embarrassing!
Yet we continue to shamefully use these ridiculous self-explanatory naming conventions for branding and marketing like they are pieces of code. If anything this gives me a new idea: create a dapp that pays people to think of names, icons, slogans, and other marketing strategies that aren't absolute garbage...
And I will call this dapp...
"DAPPNAMER"
Fuck I'm a genius!
Just kidding.
How meta would it be to name the dapp using the dapp itself?
Wow, now I'm getting somewhere.
So off topic right now!
Okay!
So like I said, I actually feel like I learned more about what Graphene and Condenser are just by looking at actual pictures of physical graphene and condensers. Isn't that crazy? I thought it was pretty neat actually, in a super nerdy kinda way.
Graphene is an allotrope of carbon in the form of a single layer of atoms in a two-dimensional hexagonal lattice in which one atom forms each vertex. It is the basic structural element of other allotropes, including graphite, charcoal, carbon nanotubes and fullerenes.
Well shit!
Are you tellin' me that the physical product of Graphene actually ties into what the digital technology actually does as well? Interesting.
In addition, I always kinda wondered why we picked the name Hive without any kind of discussion. Now that I see these carbon hexagon sheets that mimic the hexagons of beehive honeycomb, it all really starts coming together. The name Hive actually connects logistically to the name Graphene, while the name Steem was a hunk of shit that everyone confused with Steam Gaming and Steemit was a pathetic ripoff of Reddit.
STINC indeed!
Honestly when I first got here I was wondering why all these names were floating around. Why did they make it so complicated? Steem, Steemit, Graphene, AND Condenser?
Why?!!?
Why didn't they just call it Steem and leave it at that?
Clearly, there are many many reasons why it wasn't just called Steem. First, and most importantly, Steem is essentially a fork/clone of Bitshares. The technology that powered Bitshares (Graphene) was used to also power Steem. Because Bitshares and Steem are obviously completely separate blockchains, communities, and distributions, of course they can not be called the same thing.
Graphene
We can think of Graphene as the absolute core of the blockchain. It is a sprawling set of chaotic information (blocks) all connected together just like the carbon bonds of actual graphene (perhaps a bit more linear rather than a 2-dimensional sheet). Essentially, Graphene is simply a big clump of extremely unorganized information.
This would include all the blocks and raw data, our encryption/security, and perhaps some of the consensus layer.
However, no one can come to consensus without Consenser.
Condenser
As the name implies, condenser condenses the information into a database that turns all that otherwise useless random block information into something with a lot more utility. I couldn't search for "condenser" in Google images (because of water condensation) so I used the synonym "consolidate" instead.
Condenser consolidates all the blocks into the information used to come to consensus. How would we know how much money was in an account unless we had the entire history of the blockchain logged in a database? Simple answer: we wouldn't. Condenser is that database.
At first I thought Condenser was just the Steemit.com frontend but it is clearly much more than that. Without it nodes would not even be able to talk to each other and nothing would work. Not only is the default frontend called Condenser, but also our entire database and even our node API is also Condenser.
These are important distinctions for what comes next.
Because unfortunately Condenser is an overbloated hunk of shit. I really wish I could find the few times that I was talking shit about Condenser (back then I thought the API was separate from Condenser) and I had Ned on my blog trying to defend that it wasn't garbage. For god sake, we don't even overtly tell devs the block number of a block (it is hidden in the first 8 digits of the hexadecimal block_id
)
So many parts of Condenser are embarrassingly pathetic!
Why is this?
Well, for starters...
Like I said earlier, Graphene is a badass technology that powers Bitshares, Steem, Hive, and EOS. Because of this, all the mistakes that were made during the birth of Bitshares were corrected long before Steem even existed. Modular code is the best code, and Graphene's code has been battle tested across four different networks and counting.
Also, when an improvement to Graphene is made by any one of these four communities, all of the communities would benefit and could basically upgrade their foundation for free using the open-source work that was published.
Condenser is not so lucky
Condenser was designed specifically in mind for Steem/Hive. It is not compatible with anything else. A lot less time was spent on its rushed development to get Steem up and running ASAP. Once Steem was up and running, no one decided to go back and fix the hunk of shit that is Condenser, everyone moved on to the 24 other hardforks that came next and promised technologies that still haven't been released like SMT. It's probably a good time to note that our documentation is hammered dog shit and it can be very difficult to get things working or to debug code because everyone rushed forward and left behind a jumbled mess.
Where are you going with this?
Condenser is so bad and bloated with terrible documentation that it might be smart to completely gut the project and streamline it or start over altogether with a new database that parses the information from Graphene. I'm seriously considering building something of my own just to practice my database skills without having to navigate that clusterfuck.
The foundation of every dapp I want to build here essentially is going to require a database that parses block information. I either have to start from scratch or work with what I have. Let me tell you, what we have to work with is not great. Blockchains are always in constant need of more devs during these early stages.
This ties all the way back to Part 1: Distributed Proxy Nodes. I think the smartest thing to do going forward is to create a non-consensus database that parses block information for specific dapplications native to the Hive/Steem blockchain. What this means is that anyone could download this database and start pumping raw block information into it, and it would use the information available to give the user any relevant information.
In the context of custom trending tabs and personalized feeds, only the most recent 7 days worth of blocks would be needed to fully populate these web pages locally without access to any node because all the work is being done right on your own device. You are your own node (proxy).
When combined with a reputation system, this database could get very interesting, as your browsing experience of the blockchain would be completely unique due to the unique seed of the custom reputations that have been assigned to individual users.
In my next post I'll be talking about strategies for gathering these raw blocks from the Internet in a secure fashion to populate the custom local database as well as why this process may be quite critical to scale Hive into the future.
Lot of good stuff in here. I hadn't realized how big of an issue this could become for HIVE... how do we fix it?
Honestly I don't think the problem is going to get fixed preemptively, I think it's going to get fixed reactively. Essentially somewhere along the line Hive scaling is going to fail spectacularly. It will be at this point that all the devs will wonder what went wrong and try to fix it, and Condenser combined with our extremely inefficient API will be pointed out to the entire network as the root cause.
I like databases, but most people find database work boring, so they want to work on more exciting projects. Combine that with the fact that no one wants to work without getting paid, and Condenser development will remain stagnant until it is deemed to be a high priority issue due to systemic failure.
Hopefully it doesn't come to that and we get some more devs who enjoy database work, but I'm not going to hold my breath on that front. In the words of Andreas Antonopoulos, our success will be measured in our ability to fail to scale gracefully over time, just like the Internet itself.
Interesting thoughts. Perhaps you can help get this noticed before it becomes our achilles heel...
On another and mostly unrelated note...
I know how you like controversial topics :) How do you feel about the present DAO payouts at the current time in our project life cycle?
The proposal payouts? They are fine for now. Personally I was against the SPS but I'm glad we have it now that Steemit Inc is gone. @justineh triggered a lot of people asking for $500 a day for 2 months. I think if she had asked for $100 a day for 10 months no one would have questioned it.
People just kinda assume we got a bunch of exchange listings for free without anyone putting in the legwork, and then they just want to run around judging the ones who did all the work because they asked for compensation? I call bullshit. The network has spoken; she gets the money (as predicted). End of story.
I'm still against curation and the convergent linear curve, but I think the Decentralized Hive Fund is going to end up paying for itself many time over. I think the value and incentive generated there will increase the market cap of Hive, and that same increased market cap will generate even more HBD for the dev fund, creating a snowball effect that could launch us to the moon and beyond.
Bitching about $100-$500 a day here or there is incredibly small-minded. How many HBD would we be creating a day if we had a trillion dollar market cap? That's where my head is at.
Also, many fail to realize that devs are EXPENSIVE. Bottom-of-the-barrel entry-level untrained devs can get a base salary of $80k a year. Blockchain devs are even more coveted at like $140k a year. A blockchain dev with extensive experience in the tech you're using is easily worth $500k a year. That's $1900 a DAY. If I could get Dan to work for me I'd pay him $1M a year. Something to think about.
Wow....just wow. Extreme nooby question, i want to be relevant in blockchain programming, please where can i start from.
Posted Using LeoFinance
Well if you wanna do web pages, ya probably gotta know some JavaScript.
If you want to learn the Condenser API I did a few tutorials on dsteem back in the day.
https://peakd.com/utopian-io/@edicted/dsteem-tutorial-lesson-6-the-power-of-blockstream
That's the last one I did but it has links to all the others.
There's also another API called SteemJS that used to be the default.
If you want to run a server Node.JS is pretty useful.
A good chunk of people use Python here as well.
@holger80 writes a wrapper called Beam that allows Python to interact with the blockchain.
I get that, however, this isn't Microsoft or even Blockone paying these salaries. This is essentially a start up with no revenue. These developers may be "worth" that in some places, but to a start up company (which is essentially what HIVE is at this point) paying people top salaries like that will ultimately kill the project before it can fully stand on its own two legs. And, we aren't paying people a couple hundred HBD per day btw, if you go look at the current proposals we are paying out north of $2,500 per day already and that number keeps climbing. What happened to people building on the chain because they have a stake and they want to see that stake increase in value?
You may be right that some projects could ultimately pay for themselves many times over but the majority will not and with that amount of HBD being doled out currently that gets sold on the market eventually, keeping HBD below a dollar and forcing conversions of HIVE to bring it back up, which ultimately drags the price of HIVE down. In fact I would venture to guess that is part of the reason HIVE is having such a difficult time going up right now. Yes the proposals are paid in HBD, but that ultimately comes out of the market cap of HIVE.
I am not against the SPS/DAO per say, but I am seeing projects that aren't going to pay for themselves being funded and I have a feeling it is going to get worse from here... Though I do admit there is the possibility of something being built out of there that pays for itself many many times over, as I alluded to before. And btw this wasn't targeted at any one project or person but more some general overall thoughts on things.
This is why I was against the SPS in the first place. I told everyone it was painfully obvious it was simply a way to siphon 10% more of our inflation into the hands of the witnesses. It was supposed to be the witnesses salary itself that funded development in combination with the ninjamine.
If you are outraged now, just wait until they start siphoning the ninjamine into their own pockets when it should of been destroyed:
Fuck: Never Send Humans To Do A Hobbit's Job.
That is the real threat at the moment. Instead of destroying attacking stake the elite siphons it into their own pocket claiming it was "meant for development"? bullshit.
Exactly my thoughts as well. The witnesses are already collecting many times more per month than it costs to run a witness node, even at the current HIVE price. And now they are the majority of the ones applying for (and getting) proposal funding... some of which is likely to eventually come from the STEEM ninja mine as you alluded to.
It's great and all if someone builds something that adds tremendous value, but those are few and far between thus far and many of the top witnesses are the ones receiving all the funding. The rich are certainly getting richer.
I don't have a problem with the SPS and DAO, but the amounts people are applying for and getting right now are pretty ludicrous considering that HIVE has zero revenue and the project is only a few months old... my opinion is we need to pump the breaks a little here until we have something more sustainable...
Also, anyone with enough stake in Hive should be willing to work for free. That's the beauty of crypto, you can profit on products without capturing any value. This is the entire point of the open-source economy. It's something the legacy-economy will never be able to do.
Yep exactly. That was the whole point of this and same with bitcoin. There is no SPS/DAO for bitcoin. If you believe in it you acquire stake and then build to increase that value over time. I see a worrying trend with HIVE already and if it continues it has me seriously considering selling my position here as we can't keep pulling the amount of money we are out of HIVE at the current life cycle of the project and expect it to last very long...
Nice post with a funny approach on things. I have missed programming concepts with "black" humor. :)