Designing a pastebin service on the top of STEEM blockchain

in #steem6 years ago (edited)

What is a Pastebin?


A pastebin or text storage site[1][2][3] is a type of online content hosting service where users can store plain text, e.g. to source code snippets for code review via Internet Relay Chat (IRC). The first pastebin was the eponymous pastebin.com. Other sites with the same functionality have appeared, and several open-source pastebin scripts are available. Pastebins may allow commenting where readers can post feedback directly on the page. GitHub Gists are a type of pastebin with version control. - see related wikipedia page

A decentralized pastebin appliacation on STEEM



Is it possible? First thoughts:

  • Storing unrelated, out of context data as steem posts are inefficient.
  • You cannot post more than once in 5 minutes.
  • Most of the data you push to Pastebin websites are not worth rewarding.

Steemit, Busy shouldn't show that information to your followers. So, what to do?

custom_json


STEEM blockchain allows any type of JSON data into blockchain with a custom_json operation. See this post for an example.

A simple data structure with custom_json to store text data:

{
  required_auths: [],
  required_posting_auths: [<account>],
  id: "paste",
  json: [
    <add>, 
    {
        title: "title of the paste",
        body: "the text"
        tags: ["a", "b", "c"]
    }
  ]
}

This would do the job. Plus, no garbage content on interfaces like Steemit or Busy. A simple form with these inputs -on a web page- can broadcast this into blockchain.

However, how can we browse them?

indexer (backend)


Our custom operation is not a part of blockchain consensus, we need an indexer.

A background process should listen to all custom_json operations signed with the paste id and store them in a separate database. (MongoDB?)

Then we can query any item by accounts, tags, or search text with the title.

Eg: "Fetch the entries including 'python'". A simple REST HTTP API can expose MongoDB queries.

api/v1/latest

Return latest entries.

api/v1//bin

Return entries related to account.

api/v1/search/title/<text>

Search entries including <text> on title field.

api/v1/search/tag/<tag>

Search entries having <tag> on tags field.


I will probably implement a simple decentralized Pastebin app with that design, in my free time. Thoughts?

Sort:  

Excellent idea, you have my witness vote.

I would love to see this work!

Keep steeming Buddy you got my witness upvote 😇

Thank you! :)

Pastebin.steem.rocks?
That would be fun

Id:"Pastebin" would be better

Oh no...this couldn't go wrong at all... /sarcasm

what could go wrong? :)

I honestly don't know. I only have an impending sense of dread of what someone might post from a syslog or something...which will forever be on the blockchain.

haha, yeah I know what you mean. Sensitive data shouldn't be posted in a service like that :)

please, dont comment on the posts you did not understand.

Meraba. Nasilsin?
Bir ricada bulunacakdim. Destek olarak sbd gondere bilirmisin lutfen. Bu gun yarin buyuyunce sana 3 katini gonderecegine soz veriyom. 1 veya az olur. Sevinirim. Tesekkurler . Iyi gunler.

Hi, I just resteemed your post to over 33,800 followers. @a-0-0

To listen to the audio version of this article click on the play image.

Brought to you by @tts. If you find it useful please consider upvote this reply.

I really like this idea. I currently use https://hackmd.io/ sometimes. I like that files can be stored and reloaded there. I use pastebin sometimes, it's very handy for a variety of code. Although I wish I could have private links. Maybe I haven't quite figured it out yet.

Frontend: have you seen https://www.parley.io They do something to only show content from their tag I think. Doesn't go both ways though.

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 58334.82
ETH 2595.71
USDT 1.00
SBD 2.40