Implementing Following Feature on Steem

in #steem7 years ago

follow me .pngHi there I have just joined and the steemit page and it says i should follow someone here is what i found out .
So i went to find a page that explains it if anyone else has the problem to have a look at the link below

https://steemit.com/steem/@dantheman/implementing-following-feature-on-steem

One of the most frequently requested features for Steem is the ability for one account to follow another account. This post presens Standard for specifying which accounts you would like to follow on the blockchain.

Following can be divided into two parts: specifying who and what you would like to follow and taking that information to produce a feed.

Specifying who you want to Follow
Steem supports an operation known as custom_json_operation and it can be used to add arbitrary authenticated JSON data to the blockchain. This is what the transaction would look like to have the account steemit follow the account steem.

{
"ref_block_num": 55458,
"ref_block_prefix": 2523838490,
"expiration": "2016-06-03T17:58:33",
"operations": [[
"custom_json",{
"required_posting_auths": [ "steemit" ],
"id": "follow",
"json": "{"follower":"steemit","following":"steem","what":["posts"]}"
}
]
],
"signatures": [ "2015ff1ee...a4" ]
}
Examples of things you can follow include: posts, comments, votes, or ignore.

Producing a User Feed from Follow Preferences
The simple algorithm is to fetch all posts from everyone you are following and sort them by date posted. This would produce a feed similar to the current http://steemit.com/created except it would exclude posts from anyone you are not following.

The Code
The plugin that implements tracking of followers / following can be found here:
https://github.com/steemit/steem/tree/develop/libraries/plugins/follow

The next step is to update steemit.com to show you the posts of the people you are following (and/or hide the posts from people you are ignoring).

comments :
Good idea! The easiest way to do that with minimal modification is to make the "following" field of the format:

You must have been following our discussion on slack last night on "Mine old feature request that received zero payout and take credit for the idea yourself for profit!" Well done sir! =b

https://steemit.com/steemit-ideas/@tuck-fheman/watch-a-topic
I have lots of opinions but I will save most of them for my post on the "streems" standard.

My main criticism is that I don't like the idea of forcing this data to be on the blockchain. I'm okay with optionally putting account following data on the blockchain, not necessarily for generating feeds for yourself in the client, but as a signal to let other people know who are the interesting people they think are worth following. But I think the feed definitions should ultimately be private.

Well, you could still share the feed definition if you want. In fact, maybe the feed definition could even be put into a custom JSON operation to easily share it with other people with a simple link. But it shouldn't be necessary to put it on the blockchain for steemit to provide the feed of posts/comments to the end user.

Steemit already can generate a feed of posts/comments with any of the supported sort orders for any chosen tag. Steemit could easily support doing the same except for any chosen user. The client could then merge all of these feeds into one, while filtering out redundant posts/comments as well as any satisfying some predicate on the metadata of the post/comment (author, tags, net_rshares, depth, last_update). To save network bandwidth, the actual content would not be provided in all the individual feeds (just the metadata including permlink). The client could then concurrently request from steemit.com servers the content for each post/comment that makes it into the final merged/filtered feed (and perhaps even grab it from cache if available and not invalidated).
Thank you for this feature! I'm really happy to see both sides: ignore and follow. This will make for some interesting data mining. For example, maybe I could trust ignores made by another account (they might be exceptional at flagging disinformation for example).

It was a bit confusing to see the follower account twice so I looked into it. It looks like required_posting_auths is used to track the bandwidth (does this account have enough bandwidth to post this operation) and is not necessarily the follower. I see in the plugin, the follower must sign the operation, so obviously we don't want other people telling us who to follow. These will probably always be the same so one signature is required.

For the operation to be valid, it looks like we need an empty array for required_auths...I'm confused (sorry, not a techy! just a gardener!). Do I need to use a code to follow certain people or topics? In future, will there just be some user-friendly buttons to click?
That would work for me :-)Yes, you will just click a button. This post is more about the protocol (what happens when you click the button). This is what 3rd parties need to integrate with and use the information available. I mostly put this together to document the operation for other developers who are working on the button ;)

I would like see a 'like' icon do I confined podts I want to re-read without having to search for them.

I downvoted the post not because I disagree with the post or think it is a quality post but because I do not think that the interests of Steem are served by every platform or devteam update or request for community feedback pulling thousands of dollars from the reward pools that go to ordinary users. The reward consensus algorithm also disproportionately rewards these posts since they are the only thing that 100% of Steem users have in common (aside from being human, etc.).
I HOPE THIS HELPS OTHER TO :)

Sort:  

if I could follow all your details - I am not that computer/program savvy and I still am not sure how to follow another user yeah!
but it is just my first hour on this steem machine :)
and wouldn't you know, I just discovered it; now I can go to sleep... sweet dreams every one!

Congratulations @grahamabbott! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

SteemitBoard - Witness Update
SteemitBoard to support the german speaking community meetups
Vote for @Steemitboard as a witness to get one more award and increased upvotes!