SteemPeak has been releasing a lot of new features lately. It is a beautiful client side interface with the Steem blockchain and -for those of you interested- it also allows you to claim Steem-Engine tokens.
One other change they have introduced is the way they signal for the clearing of notifications. Now, every time you decide to mark as read all the shown notifications, a new transaction will be broadcasted into the Steem blockchain.
I could be writing here about the privacy problem which that change implies, but in this post I am focusing on the pure blockchain-wise point.
Steem allows to broadcast transactions. The blockchain offers some native ones. When you post -comments are just a special kind of post-, vote/unvote/downvote some content or claim some rewards, your client must broadcast a transaction which would be recorded on the blockchain. All of those native transactions are been taken into count by the blockchain in order to calculate the rewards. Some native transactions can also record additional custom data which is stored along the transaction -the meta-data-.
Steem blockchain is also offering the capability for clients to create custom transactions. If you explore your account in any Steem block explorer, you will notice lots of custom transactions. They are broadcasted by dapps like Steem Monsters -or however it is named now- or Holybread. Those transactions are needed in order to allow users to progress on the dapp. I find it a good usage of Steem blockchain resources.
However, when you ask @steempeak to clear your notifications, that will trigger a new chain transaction. That transaction is not needed in order to allow the user to progress on the dapp. No future transaction will be referencing to it, which is the way blockchains are meant to work.
Most blockchains use the UTXO model, which creates a new transaction in order to spent older ones. Others -like Ethereum Classic- use an account model, instead. But in all of them a transaction should only be considered valid if there was another one previously which justifies it.
What SteemPeak is doing here is just using Steem as a way to store data which won't be referred at a later time.
Of course, they can do whatever they wanted, but I do have an opinion on it, and I do have a place to express about it. That's to mean: this is just my own opinion. I could be wrong and I am open to learn about it.
Thank you for reading.
Steempeak has switched the notification system to one developed by @roadscape who works for Steemit INC. It does indeed require a json transaction to state when the last time you read your notifications... thus letting you in a sense clear your notifications.
This new notification system has some awesome benefits such as and most prominently missing in our previous system... MENTIONS.
Your answer is fine. It is a good explanation about the how. However, the 'why' doesn't seem to justify it, at least to me.
Agree that we should minimize as much arbitrary data as possible but, as I thought, the transaction is used to provide functionality.
Now, whether it is the most efficient method to achieve such functionality, that is another matter entirely.
It would be nice if they could add more user metadata into the operation to provide more useful information as a sort of compensation for required overhead in each block.
I mean cryptographic signing operations are relatively resource intensive so may as well try to add a bit more usefulness.
Thanks for getting my hamster wheel spinning'
This is done on blockchain because hive notifications are entirely blockchain-driven, and this allows marking as read across all services/UIs in a standard way.
Interesting. I didn't know it. Thank you for the information, @roadscape.
Then the problem is at the blockchain level, and not at the dapps level. Still it doesn't justifies using a blockchain as a data storage.
Perhaps you could tag steempeak so they get to see this and respond