I just had an idea for steemit. A simple feature that would allow nearly limitless functionality.
All I would need is the ability to make posts that are hidden from appearing as blog posts on steemit / busy. That's it! A simple "system" or "hidden" tag that makes it so the blog post does not appear. With this one bit of functionality I could easily build dapps that utilize the steemit blockchain in different ways than before.
If I am able to make posts on steemit that are meant to save access and store user data for third party client applications I create I would be able to do an amazing amount of stuff almost too easily. It would basically be like storing a text file online. And if I want those things to be private all it would take is a key and cipher and I would now have the ability to make my dapp data private.
So that would be all I think I would need from the steemit dev side of things. Lets take my game for example. Lets say I had a plugin to make it so the Unreal 4 engine can read and write steemit posts messages with specific tags on them. Right away this would give me a huge boost in functionality. Almost instantly I am now able to read the steemit blockchain to find a Mygame Purchased (Correct amount of SBD for Date). after that I can search all posts with the following tags.
mygameclientthecastle savegame hiddentag
Once the dapp sees the most recent post savegame data we can parse that post so the client knows my current progress into the game. This would be really annoying for hackers who want to pirate the game as it would make it so the game is always having to search steemit for proper data.
And this comes down to why a hidden tag would be useful. These posts would be really weird and fairly spammy. They would probably just be a giant list of variables and strange things. The dapp would be effective for parsing this info but any human looking at these posts would not easily know what the hell is going on. furthermore it might even just be a bunch of data hidden behind encryption anyway so expect to see giant walls of random text.
There could be other things as well, like making sure that any post created with the hiddentag cannot be edited after its been written. The ability to upvote /downvote these posts would probably not be necessary. Maybe force posts with this tag into the decline posting mode?
When you begin the game you would be expected to input your steemit account name and posting key. The game would then be able to check your account, see proof that you actually bought the game and allow you into the game. None of this seems like it would not be doable. This kind of seems like it would work really well overall. In fact this would easily allow for paid dlc, micro transactions you name it. This could be used for players to trade items on an ingame auction house. If you can verify the blockchain for all of those variables you can cross reference other players save data I imagine. This would mean those boots of jumping can be traded and accounted for. Players could also potentially audit other players accounts to see if they have been cheating. This could even be worked into the upvote and down vote system to reward players for playing the game. Its almost too easy to get such robust functionality without having to pay for servers. Please tell me I am crazy because I feel like this is a little too good. It seems like the sky is the limit. it doesn't have to be perfect, it just needs to work, but I imagine its pretty damn possible to make this work nearly flawlessly.
The unreal 4 plugin would just need to hijack the save game system already in the engine. Instead of writing a local file on the hard drive it reads and writes posts with specific tags on the steemit blockchain.
Seriously, can this be a thing? Because it has a ton of potential and I don't see it as being super insane to implement. I can easily see this working even in the case where I have the game on both steam and Steemit. Enable or disable a plugin for functionality.
Can anyone here make sure that the correct people see this? I know its a bit of a rambling post but the idea just seems like it would be fairly easy compared to the effort it would take to make it functional.
You can make custom JSON posts that are not posts. But they can't be retrieved as easily as posts, you will have to store the block id it is in. It is also possible to store custom JSON in the account/profile, so you could store block id I suppose and then find custom JSON or transactions using that. At least this is how it seemed to work 2hen I did some tests. Happy to be corrected if wrong!
Is this something you can test?
There is a test net at https://testnet.steem.vc/ you create a new account for it and then are good to go. Instructions are on the site.
The downside with storing something in the account would be that you need to get the user to give you the permission for account editing. Feels riskier than only asking for the post key. But, with steemconnect it should feel safe enough (you trust d.tube, busy.org etc that use steemconnect).
So thinking that a system would probably be something like:
User logins in in you game. You start making a custom JSON. Fill it with stuff you want to track and save. This JSON can at any time be saved to the blockchain. If something new has to be saved you fetch the last saved JSON from the blockchain, update/add and save a new back to blockchain. This way you only have one JSON that you need to keep track of. This JSON can also contain purchase info, you keep track of the block id and transaction id of purchases (game bought, in game transactions).
In the user profile you only store the block id and the json id. This should be equivalent to how busy.org saves social networks info in your profile and therefor an acceptable usage I think.
Every time a user logs in you fetch the minimal profile info and using it you can fetch the complete info for the game.
Think this should work and be without breaking any intention of how to use the steem blockchain. Think it should work to make a client only or close to client only solution to save game/transaction info or even run a Steam like service without having to worry about your own server park!
With https://spelmakare.se/steem/rps I did a minimal test doing something like this. I store the needed game info in the custom_json for the post/comments. I did have to make a server side to "encrypt" the player choices. Maybe this can be done on the client somehow to make it 100% server free. The "server" is only a lambda function on aws, making it close to 0 maintenance. In comparison operating your own server for a game, or relying on a third party like facebook, it does appear to be a promising open approach!
Dude.
DUDE!!!
This is brilliant! It'd be a great way to bring gaming into the blockchain, while also helping clamp down on piracy.
Come to think of it, it'd be a good starting point for implementing private messaging, too...
I immediately thought that as well, private messaging, or at least closed groups or the ability to message all your followers with some information about your channel without necessarily making it public to everyone.
Let's be honest, Steemit sorely needs a private messaging system...
People moved to Discord.
The functionality I just outlined could be used for all kinds of dapps. You can have private messaging, video games, groups. The sky is the limit. It can even allow us to have another layer of tech to do privacy coin type functionality where its impossible to see what we are doing from the outside.
It would be awesome for me, I do a lot of financial type stuff and it'd be great to share charts and signals and so forth, without 100,000 scrubs copying them and making a fortune lol.
I can definitely say that having alternative posting options would be a general plus, but I can't tell you that I understood most of this essay :P :P