What is OpenSteem.org
OpenSteem is an open source steem metadata standard founded by AskSteem to encourage cross compatibility between applications built on top of the steem blockchain. Anybody can propose changes and additions to the standard on our Github page, and we encourage steem developers to join the project.
Why does Steem need this?
There is currently no documented standard for JSON metadata attached to users and posts on the blockchain. Because of this, every application that uses the blockchain to power their backend (Steemit.com, Busy.org, eSteem, Zappl, AskSteem, etc) is forced to implement their own metadata schemas which over time may create redundant data, clutter, and conflicts between clients. Each of which has the potential to cause immense complications in scaling from tens to hundreds to thousands of apps.
At AskSteem we feel it's better to create a well documented public standard to solve this problem before major issues arise, which is why OpenSteem exists.
Features
While OpenSteem.org is not yet complete and will continue to develop new functionality in perpetuity, right now there are a few nifty features.
Native Media on the Blockchain
The standard supports embedding the following types of media directly onto the steem blockchain:
- Images
- Videos
- Audio
This means that applications that are OpenSteem compliant will no longer need to use a separate HTTP hosting service for serving these types of content, although the current technology only supports small media files, and may struggle for media such as long/high-resolution video files because it uses base64 encoding.
Nested Metadata
Not necessarily a feature specific to OpenSteem.org, but I haven't seem very much metadata on the steem blockchain that takes advantages of JSONs nesting capabilities.
For example:
Current app metadata:
{
"app":"appname/1.0"
}
OpenSteem app metadata:
{
"app":{
"name":"appname",
"version":1.0
}
}
As you can see the OpenSteem version is much easier to extract specific pieces of metadata from.
AskSteem Compatability
Alongside the AskSteem search engine, we launched a set of metadata that could be used to modify the way steem posts appeared in search results, today, we're going to be discontinuing our proprietary custom metadata in favor of using the OpenSteem.org standard.
How can I help?
We all want to keep the blockchain clear of useless and redundant clutter, and OpenSteem.org is one way of doing that, here's what you can do to help.
Developers
If you develop applications on top of the steem blockchain we encourage you to take OpenSteem.org into consideration when building new functionality into your apps, and if you like the idea of a documented open metadata standard for the blockchain you may even want to retrofit your existing code to meet the OpenSteem.org specifications. If you ever need to add functionality to your app that doesn't exist in the standard you are free to submit a pull request on GitHub.
Regular Users
I know it seems like non-developers can't assist in the technical workings of the blockchain, but you can. By spreading the word about OpenSteem.org to new people interested in developing for steem, and letting the devs behind the steem apps that you already use know that this project exists you can greatly assist in spreading this open standard, and keeping the blockchain clean of clutter.
There are a few existing conventions and they are documented here: https://github.com/busyorg/steemscript
Yeah I spoke to the creator of steem script before releasing this, but that github page hasn't been updated in some time and has limited documentation so we created OpenSteem.
good job @thekyle
i suggest you contribute to the github and update it as an opensource project you're free bring your valuable contribution
cc @fabien
Thanks, it already is an open source project. I would be interested in merging steemscript into opensteem.org since there does not seem to be too much in the steemscript repo it would probably not take too long.
Developing a steem metadata standard that is shared across applications is an excellent idea. However for the time being storing images, video or audio directly on the blockchain is not possible due to block size and processing time. However in terms of communicating shared standardised metadata, I would really love to be involved. Cheers thekyle :)
Thanks, the hosting capabilities of the standard are designed for small files like low-resolution photos that are less than a few hundred kilobytes which should fall within the block size limit. Although admittedly I wasn't able to find a great deal of documentation on steem bandwidth so if that's something you have experience with I could definitely use you on the project. :)
I would be happy to help, I have forked the project into steem third party where I will be doing the work I can do with you. :)
Kewl. Now anyone can create applications on top of the steem blockchain which can disrupt existing applications and platform in the same way steemit did it.
Sorry, I do't understand this development. Can I still post the same way?
Yes, it just makes it easier for new applications. Does not really change anything from the frontend perspective.
Thank you :)
Ooh, this looks great!
One thing I've been wanting for a long time is standard for language of the post/comment. So far no UI has implemented it, but probably the first step is to define the standard to make the job easier.
Thanks, I think most steem clients support markdown which could be considered a standard language.
Hah, I guess I should have been a little bit more clear. I meant a metadata standard to express what natural language the post is, like English, Chinese or Spanish.
There is a Github issue for Steemit but so far developers haven't been very enthusiastic about this: https://github.com/steemit/condenser/issues/300
Oh haha, yes that is something that OpenSteem could do fairly easily.
This is such an educative post