How Anyone can Build Custom Apps on Steem right Now!

in #steem8 years ago

What if it were possible to build custom applications on top of Steem? If you think Steem is only here to serve the niche of social media, then I consider this you wakeup call. The Steem blockchain is already capable of supporting every kind of blockchain application you can conceive. Best of all, you don’t need anyone’s permission to start building your app today!

Think of your favorite blockchain application. Is it Auger with is prediction markets? Is it The DAO? Is it general purpose smart contracts? Is it Dash with its privacy features? Is it decentralized voting or DNS? All of these things are possible on Steem today and you don’t need Steemit’s permission to do it.

Subchains not Sidechains

Sidechains have been the go-to solution for adding features to the Bitcoin protocol. The general concept is that the Bitcoin blockchain doesn’t need to know what happens on the side-chain so long as it can verify transfers into and out of the side chain.

Implementing side chains is challenging. It requires synchronizing two independent, potentially forking, eventually consistent blockchains. An issue on either chain can greatly disrupt the whole system.

A subchain is a new description for an old idea. Mastercoin and CounterParty are what I would consider subchains. All of their data is included on the Bitcoin blockchain. If Bitcoin forks, then the subchain follows.

In other words, a subchain is just a secondary interpretation of data on the main chain. Historically subchains haven’t been practical because they are necessarily slower than the chain they run on. Bitcoin makes it very expensive to include data and every subchain operation requires Bitcoin fees to be paid.

Power of Steem Subchains

On Steem everything is different. There are no transaction fees and it is trivial to include arbitrary data on the blockchain. Here are some of the key benefits to subchains on Steem.

  1. Advanced Account Structures
  2. Pre-validated Account Authorities on Custom Operations
  3. No Transaction Fees
  4. Fast Block Times
  5. TaPoS (Transactions as Proof of Stake)

What this means is that it is trivial to write custom applications as fully independent subchains. These applications don’t need to worry about the complexities of network infrastructure nor do they even require access to money.

The advanced account structures means you can have multi-sig authority involving dozens of independent agents deterministically evaluating the custom operations on the Steem blockchains. These agents can then deterministically generate and sign transactions for processing withdraws from the subchain. The fast block times means that subchains don’t have to wait long for confirmation before they can reliably create and sign transactions. The TaPoS feature ensures that transactions are only valid on a specific fork for a very short period of time.

Smart Contracts

It is fully possible to deploy an Ethereum Virtual Machine as a subchain on Steem. This Subchain could leverage the same algorithm Steem uses to ration bandwidth in order to ration computation.

Perhaps more interesting is the fact that multiple types and instances of virtual machines can be run on the Steem network at the same time.

Conclusion

Everything you think you like about other blockchain platforms can be implemented as a Steem Subchain. These subchains would almost certainly be faster, easier to use, and cheaper than anything else out there. Critically, these subchains would have easy access to the vast and growing user base of Steem.

What could be better?

Sort:  

Is there an example or link on how to get started on developing a Steem sub-chain based application?

Historically subchains haven’t been practical because they are necessarily slower

How does steem solve this?

3 second blocktimes and irreversible blocks after 30 seconds. This is compared to 15 second+ block times and irreversibility requiring orders of magnitude longer on other chains.

A subchain cannot "act" until its inputs from the "main chain" are irreversible. Thus time-until-irreversible is what matters most. In Bitcoin this is considered 6 blocks and can take hours.

Thanks. Was using the Bitcoin yardstick where time required is unacceptable.

Not sure if this is what he means, but don't some subchains work by storing reference pointers to off-chain data? Maybe he means that here all the data is readily available on chain, and so faster.

Yes but off chain reference depends on ratification by a irreversible block.

You must be referring to Counterparty in particular here? A subchain is only as fast as tge parent chain; hence, Counterparty could only use BTC's 10-minute block time. Here, I assume a subchain could go as fast as 3 second block times because Steem is so fast.

This is very exciting!

I have a few STEEM related URLs and some ideas of what I want to do with them. Maybe some of us can work together to create some cool Custom Apps!

Everything you think you like about other blockchain platforms can be implemented as a Steem Subchain. What could be better?

So much potential! Let's make things happen!

are you a developer already ?

I am, but not really up to speed with what I think I'll need for steem blockchain apps. My knowledge is mainly jQuery, VB.net, MS SQL Server

Dan, great post, btw I just did some of the market research you requested: https://steemit.com/steem/@trogdor/steem-vs-everything-a-response-to-dan-s-request-for-market-data

Hopefully that is what you were looking for. If there was something else, let me know.

cool

Exciting stuff :D
I'm ready to see stuff like slock.it come to Steem!

For anybody who finds this and sifts through the comments for fun: I wrote an article about this concept. https://steemit.com/steem/@biophil/mist-a-meta-model-for-steem-subchains

ok why dan left for eos exactly i'm confused

Well, he obviously wanted to make EOS, so there's that.

Also, there was internecine conflict.

There is also the dismal reality of oligarchical concentration of Steem into the wallets of the accounts with the most stake. Steemit has the worst GINI of any nation on Earth, and the distribution is more skewed by the day.

While the white paper envisioned ~30% of rewards being distributed to the 'masses', less than 1% of stake is held by 99% of accounts, and, as I said, it's getting worse by the day.

@dan stated that it was broken, but lotsa folks profiting from the present arrangement don't want it fixed.

I guess these are good reasons. He didn't tell me though. I'm guessing.

Would it be possible to create games within Steem, hopefully games that can't be botted, and for your score and time you put into them, you would get another token as reward which within steem market would be tradable and users could buy it for special powers or other stuff that has with the game to do?

I'm just thinking sort of like candy crush, slither, etc. Except that it would reward you this new currency which can be traded for steem and other currencies. Would you need another blockchain for it or would it work within the existing one without disrupting it?

Yes. But the challenges of anti-bit and Sybil remain.

Yes, I understood some of those words. :P

not even google could help me out with what anti-bit and sybil do.

For Sybil, I think @dantheman is referring to a Sybil attack, which is an attack wherein a reputation system is subverted by forging identities in peer-to-peer networks. Sybil is the name of a book where the woman had multiple personalities.
Can't help you out on anti-bit. That's a new one for me.

Sybil can easily be maintained by giving accounts that verify themselves more rewards. Like they are doing now, sort of. The unverified accounts will automarically have less reputation power since they won't be verified and others will see this.

Another informative article. Could Steem be used as in game currency like Hyper by implementing a Steem subchain? Or a fantasy sports league? I have been kicking around a few ideas, but most of the other platforms fall short and I really am trying to avoid creating a new cryptocurrency just for these projects. Thanks again for all you have done.

A stable currency like steem dollar is much better for this stuff imk

I agree. It's one of the reasons that I haven't committed to just creating a new currency. I would rather use a platform that already has built in stability. A great game or fantasy sport league would help the platform while helping the app. It's a win-win and I am all for win-wins.

I know you posted a long time ago, but did you ever find a solution for this that you could explain? I'm interested in creating my own unique platform with cryptocurrency payments incorporated. Thanks!

Wow, it sounds incredibly, I am sure that with the whole talent that exists in steemit will do big things to themselves, encourage all the persons to have knowledge to do these applications to collaborating and doing steem bigger!

Regards!

Hey Dan! I've built a sort of an app.. But it is just about viewing the Steemit-Blockchain:

Explained here: https://steemit.com/steem/@roelandp/steemstream-com-a-realtime-visualisation-of-all-activity-on-steemit

I would like to know if a Twitter replica site on Steem could be built by third party developers and if yes, how would it make money itself? Do you think it would charge revenue creators a subscription fee? Or will content rewards get siphoned of by the platform itself to fund development?

I would like to know if developers can build apps on Steem for content creators and curators and be paid a part of the steem rewards for the content. This would make building social networks profitable without the need for advertising.

I can't find answers anywhere!

Also, an upvote on a Twitter replica site can mean much less than an upvote on a Yelp or Couchsurfing replica site... Can app builders manage the distribution of Steem rewards differently on their platforms?

In Steem, is an upvote is an upvote is an upvote? Are all upvotes equal no matter what the context? I mean sometimes a small number of upvotes can be of much higher value. Can the upvote system be more sophisticated without creating more cognitive overhead?

Is this type of app a side chain? Or a more straight forward integration with Steem?

@dantheman I'm a developer and I'm looking into building Steem apps. Can you share some pointers/resources on getting started? Also, how do developers get rewarded for their apps? Do they also receive Steem?

I believe the rewards are split between the Author/Curators and Platform in varying percentages.

So by Platform, you mean the developers of apps? How would their apps know their keys? Do they somehow embed it in the code?

Yes, yes and correct.

I see. @hatchi can you share some technical resources on how this is implemented? I am really interested in developing Steem apps, and I do not want to sound greedy, but it would be nice to get some rewards for my effort.

Thanks.

Hi @valencra I'm in the same boat, and here are the resources recommended to me by the steem team;
Condenser
SBDS
Steem
The code is all open source and free to use, and it was recommended to begin by checking out the condenser first.
Good luck!

And no I don't think you are greedy we all need to start valuing ourselves and our time appropriately.
Peace

Steemit has so much power that power itself is powerless.

Steem-Powered DAOs? Now I'm positive....I'm living in a Neal Stephenson storyline. Awesome!

This is just what I was looking (and hoping) for. Thanks Dan.

Could someone post some links/resources for developers who would want to look further into this? Seems missing from the post and I am sure anyone technically savvy would want to dig into the code and ask clarifying questions. I am particularly interested on understanding more the technical capabilities and any limitations of steem.

I second this! I know I'm like two months late but oh well

I have translated this post into Chinese.
本帖中文翻译:https://steemit.com/steem/@imyao/subchains-steem

Loading...

Great content thank you

Could STEEMIT implement LBRY vs IPFS?

It is Augur, not Auger.