Steem Script: An Open JSON Standard for Trusted Workflows [Proposal]


Introduction to Steem Script an Open JSON Standard for Trusted Workflows.

Steem is growing and will require new features soon. There are new apps and websites based upon the steem blockchain emerging everyday. The official site steemit.com is also releasing new features as well.

Idea/Conceptualization: @fabien Info Gathering/Vision/Text: @ekitcho Rewriting/Formatting: @dwinblood

Steem Script Proposal


As developers we all look to integrate new data into accounts. The Steem blockchain based account has metadata. We could use the json_metadata field for anything. We should collaborate and define what types of rules should exist for it.

This is why json_metadata is awesome and could be a huge game changer for the future. This means it is also very important to define a standard. With a standard we can all intermingle and share code with strong assurance our projects will work together. It will also make it easy for us to jump into assisting each other and quickly be able to understand a workflow without having to learn a new thought pattern.

I am glad to be able to introduce a standard right now called Steem Script.

The account_update allow you to update the json metadata and put your custom data in that location.

The first project that brought this functionality was by an initiative from @dan on the Steem DNS.
@dantheman/dns-via-steem
This is where he first mentioned we could utilize the steem account meta.

Another project was worked on by @someguy123:
@someguy123/steem-dns-your-username-dot-steem-dns-on-the-blockchain

He utilized existing dns:{records:[]} to make this idea happen.

If you visit steemd.com/@user you can check the metadata field.

You can see both of these yourself by viewing these users' steemd profiles.
https://steemd.com/@someguy123
https://steemd.com/@picokernel

This is an extremely useful feature of the steem blockchain, but as more and more people add to this on a day after day usage it will soon be a big mess. It is apparent we need some sort of standard based around unique definition to be available on the json_metadata in order for this to truly work. Without this it will quickly become a big mess if it is mal-formatted.

Group collaboration on a standard


We began working on a standard after discussing it with several key active members. Some of these members were @picokernel, @jesta, @someguy123, @ekitcho, and @fabien. We were striving to find the correct solution that can hopefully serve everyone.

This will help insure that all apps based upon the steem blockchain share the same structure, convention, and naming standard.

Open source


This is my proposition based upon the Facebook style, but anyone can contribute to this github Repo now that it is open source.
GitHub: https://github.com/adcpm/steemscript
Gist: https://gist.github.com/adcpm/021525e2304a55f31637e60db3c87532

Account json_metadata

{
    "version": "0.0.1",
    "dns": {"records":[["@","CNAME","steem.io"]]}},
    "profile": {
        "name": "Ned Scott",
        "email": "ned@steem.io",
        "birthday": "12/31/1999",
        "gender": "male",
        "about": "CEO and Co-founder at Steemit",
        "first_name": "Ned",
        "last_name": "Scott",
        "location": "New York",
        "timezone": "-5",
        "locale": "en_US",
        "languages": ["en"],
        "website": "https://steem.io/",
        "cover_image": "https://img.busy6.com/@ned/cover",
        "profile_image": "https://img.busy6.com/@ned",
        "featured_post": "the-first-phase-of-the-steem-faq-and-wikee-consolidation-of-knowledge"
    }
}

Comment json_metadata

{
    "version": "0.0.1",
    "tags": ["steemit", "steem"],
    "users": ["ned", "dan"],
    "images": ["https://img.busy6.com/@ned"],
    "videos": [

,

], "status": "archived" }

Jedi


I would like to now introduce the latest work by @picokernel that is called Jedi.

What is Jedi?

Jedi is an interface where you can play around with and modify your json metadata. It is useful for developers to check their tools. It is also useful for end users to correct their metadata. It features a lot of little do-hickeys to make your life easier. These include search, append, modify, and save. It should be capable of handling any valid json_metadata you can throw at it!

Source code can be found here: https://github.com/NateBrune/jedi

Thank you for reading, stay tuned.

H2
H3
H4
3 columns
2 columns
1 column
14 Comments