A framework for creating arbitrary soft-consensus-based DApps on Steem! Build any DApp, from tokens to games.
Repository: https://github.com/nicholas-2/steem-state
steem-state is an npm package that allows developers to build DApps using the Steem blockchain.
The Steem blockchain is one of the fastest and most performant blockchains in existence and also has over 60,000 active users each day, with free and fast transactions. steem-state makes it incredibly easy to create decentralized apps on the Steem blockchain using soft consensus.
What is soft consensus?
Most, if not all, blockchains focused on the creation of DApps today such as Ethereum are based around the idea of smart contracts. DApps running using smart contracts have their transactions verified by each node in the network. But this method is not the only way; not every node in the network has to verify every transaction for each DApp even if it doesn’t apply to them. When a transaction is not verified by every node in the network, but only the ones who use the DApp that the transaction applies to verify that transaction, soft-consensus occurs.
To use an analogy, the most adopted internet data transfer protocols (such as UDP) don’t try to do anything special with the data that is being sent. These protocols let the two users who are communicating verify, authenticate, etc their own data. Not everyone on the internet authenticates and verifies every data packet; it’s just not feasible.Similarly, not everyone on a blockchain has to verify and authenticate every data packet. Ethereum is trying to introduce unneeded complexity to the problem of creating DApps by requiring that every user has to verify every transaction in every DApp, and it’s already hitting a scalabililty barrier partly because of it.
Anything that a smart contract can do can be done with soft-consensus, and soft-consensus can actually do much more. A soft consensus DApp is easy to hard fork without forking the main chain it runs on, and it has easy support for virtual operations (when a DApp creates a transaction that will execute after a certain amount of time), which Ethereum and most smart contract blockchains do not have, and will be implemented into the steem-state package in v2.0.0.
steem-state uses the custom_json operation type to create soft-consensus transactions. You can read more at the dev portal by searching up custom_json.
steem-state
steem-state is a framework that allows developers to define events that occur on a certain transaction type, e.g. displaying data to the user or updating the internal state (such as the balance of the user). Using steem-state, one can create any possible DApp on the Steem blockchain, from tokens to games!
It can be installed by using npm install steem-state in any existing npm project.
Roadmap
In the future, version 2.0.0 will be released (currently in v1.0.7), which will include support for virtual transactions in DApps.
Tutorial
The best way to understand this is by trying out a tutorial, which can be found in the README on github. It will walk you through creating a fully decentralized messaging app on the Steem blockchain in 28 lines of code.
Contributing
If you have an interest in helping develop virtual transactions for v2.0.0, simply email me at nicholas2591@gmail.com or contact me in the steem-devs discord at @Shredz7. But the best way to contribute right now is to create tutorials for the project! Email me at nicholas2591@gmail.com if you create a tutorial, because I will be glad to resteem it and post it on the repository wiki. This doesn’t really fit into Utopian.io’s actual contributing section, but a great way to contribute is to spread the word and build DApps using this package!
If you have any questions, feel free to comment on this post or email me at nicholas2591@gmail.com