RE edicted: RE Taskmaster: Using Hive's Built-in Messaging System...

in LeoFinance2 years ago (edited)

chat app

Reading @edicted 's comment about tagging in titles, surely edicted is pleased to see it continue.

In this article we are going to discus the feature of messaging on hive for communities.

It started with @taskmaster4450 who has posted:

Using Hive's Built-in Messaging System To Create An Alterlative To Discord
@taskmaster4450/using-hive-s-built-in-messaging-system-to-create-an-alterlative-to-discord

edicted has replied in

@edicted/re-taskmaster-using-hive-s-built-in-messaging-system
along with feedback written in comments by: @acesontop @alex-rourke @antisocialist @bozz @canna-curate @cmplxty.leo @cronicasdelcesar @darkflame @devpress @dudeontheweb @eatthebugs @edicted @emprendemesta @forexbrokr @gadrian @geneeverett @grider123 @jarvie @jfang003 @joetunex @josediccus @lacking @loving-kindness @magnacarta @manniman @mcsamm @metzli @mistakili @oldtimer @olympicdragon @quinnertronics @rt395 @rynow @rzc24-nftbbg @sepracore @shawnlauzon @stayoutoftherz @stdd @thaddeusprime @themarkymark @tobetada @tokenizedsociety @trostparadox @typebox @urun @wrestlingdesires @x9ed1732b @xplosive @yintercept @zestimony60 @zottone444

, who I think might be interested in this discussion.

A summary of the posts about was about creating a chatting application on Hive like Discord. It mentioned that many communities on Hive depend on it and while it is working fine, it is centralized, requires users to be on registered on another website and requires community owners to register on another website to provide chat for their community.

The posts then mentioned sending messages on Hive via transferring 0.001 HIVE or HBD, possibility of using customJSONs and finally of offloading the chat data from chain but still relying on memo key for authentication.

It mentioned that there is maybe lack of interest for programmers to create such application, but there has been attempts, such as BeeChat. While the client is open-source, the server is not.

So can we build it? Or?

Let's say we can build such an application! A chat application build by community for community. Features, ideas, feedback, testing the prototype, using it for your community, reblogging, supporting proposals, programming are all ways a comminity can contribute.

But first, let's discuss what we are going to build.

There is no need to make a copy, we can create a better version, add more features over time, but first we could start from the basics and add extras later.

The idea is to build a decentralized chat application on Hive for Hive communities. User would login with keychain, set up their community chat channels and be able to invite others by sharing a link. Naturally, all subscribers to your community would already be part of it. Ideally, even people not on Hive might be able to participate in the chat as long as the permissions of that community allow it.

I think the latter feature is required so that Hive community that is interested in onboaring users would have easy time doing it with a chat application that allows guest users.

The decentralized part would come with its API, and others would be able to create their own frontend, embed it or create chat bots, or run their nodes.

If you are you community owner, what features would you require? What features would you like to add? Let us all know, as if this application is built, it is built for you and your communities.

What does decentralized mean?

After looking how the terms "centralized" and "decentralized" are used in edicted's post, I'd like to share how I understand the term.
There are many decentralized protocols that are not blockchains, such as p2p networks, ipfs. On the other hand, ideal blockchains area decentralized and have decentralized consensus mechanism. It is not decentralization that makes it expensive, but rather the consensus mechanism. Decentralization of server nodes provides us with redundancy and reduces the ability a malicious node silently droping messages. Decentralized consensus mechanism, on the other hand, makes sure we have an decentralized agreement on the order the messages arrived in. It is this part that is expensive.
Now, let's say we drop the latter feature and stick with decentralization only. While chat messages come with their own timestamps, the decentralized nodes can check if the timestamps are within reasonable limits, in other words everything works as expected if the chat nodes and users are not malicious. What if a node is malicious or if it loses internet connection yet still has messages to broadcast? After it reconnects, and broadcasts the messages, they will come in late, and other nodes will notice it. They can add the message to the chat log either at signed client time (up to a certain limit) or at time they received it. In both cases they can mark the message as delayed so people in chat will be notified of it.

The key feature of chat application is message authentication. By using posting or memo key we can sign a message, which can then be verified by the recipient. With signing messages, anyone could impersonate any other user, and such application would be unreliable. Message authentication also ensures that even chat nodes cannot impersonate a user. Chat nodes simply pass the messages to interested parties. Decentralization ensures redundancy of storage and access.

Thank you for feedback.

The post @mirafun/decentralized-hive-communities-chat-app-with-similar-uiux-to-discord
has brief information about creating such application and have received a lot of feedback over the past days. I'd like to thank @engrave and others for asking many interesting questions and providing feedback.

To summarize, the most frequent question was wether the chat application will store the messages on chain.
The answer to that is no. There are many reasons why this is advantageos. First, it does not use Resource Credits of users. Second, it won't put pressure on chain in case the chatting application would be used frequently. Third, it is easier to add support for guest/lite accounts. Editing, deleting messages and storing them for set amount of time according to the preference of community owners and ability of nodes can be supported.

Another question received was about BeeChat, Peakd new messaging protocol plan. What would make this application different?
The main difference over BeeChat would be feature-set. BeeChat cannot yet be used to manage communities as in Discord and there is no telling when, if ever, it will get such features. Furthermore, the BeeChat server is not open source.
Peakd new proposal includes a messaging protocol idea, called "Sting". Now, my naming sense is not ideal, but I think calling it something like "Pollen" would be more appropriate. Anyways, it might be possible to collaborate with (@asgarth @peakd) if they are open about it, which i think they are.

Next question was about the project's marketing plan.
The chatting application is aimed for communities. The main users are community owners. The first requirement the app will have to meet is to provide the necessary features a community owner expects. For example such as creating channels, permissions, invite links with guest account support. It might be that this will be enough and the application will find some users if community owners pick it up. What features do you think would make a community owner think to use the app?

What's next?

To start things off, a frond-end prototype could be created. Work on interface has already been started.

settings

settings
settings interface; the setup data is stored in json object on chain

While not yet finalized, here is an example of a customJSON used to store the community chat settings:

[
  "updateProps",
  {
    "community": "hive-1111111",
    "props": {
      "settings": {
        "streams": [
          {
            "na": "About",
            "nu": "about,rules,team"
          },
          {
            "na": "Posts",
            "nu": "created"
          },
          {
            "na": "Text"
          },
          {
            "na": "General",
            "nu": 0
          }
        ]
      }
    }
  }
]

In addition to adding chat channels, the about page, rules, community posts or a post from permlink can be added.

info

info
apart from text channels, information channels can be added

The application supports community roles and titles which will be used to manage channel permissions.

roles

roles
adding a role; additional user interface to be provided when clicking on user

How can community support this project?

As part of community, you can:

  • share this post
  • share your ideas and feedback
  • request a feature
  • try prototype once its released
  • support DHF proposal

DHF proposal:
There is a proposal for programming the front-end and back-end, which you can support here:

Thank you for your time and your feedback. 🌻

Sort:  

@mirafun feel free to reach out to me in our Discord: https://discord.gg/uPxmXjX

Thank you for the invitation! I hope we will have a productive discussion!

this looks pretty interesting, have to look at it closer later!

@tipu curate

Thank you for your support! !PGM

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT tokens to @mirafun, @tobetada

remaining commands 1

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-2.5 BUDS-0.01 MOTA-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


A Chat Channel is a good feature on Hive. I seen your proposal is starting next month. I can vote for you, it is useful !

Thank you for your support! !PGM

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT tokens to @mirafun, @olympicdragon

remaining commands 4

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-2.5 BUDS-0.01 MOTA-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


You are welcome !

Thank you for the mention!

My interest in messaging was just to be able to send messages to other people in a way which can be thought of as Poor Man's E-Mail, which is why the 0.001 HP bounces from sender to sender.

Within the context of your post, the only concern I have is login or credentialing:

But first, let's discuss what we are going to build.

There is no need to make a copy, we can create a better version, add more features over time, but first we could start from the basics and add extras later.

The idea is to build a decentralized chat application on Hive for Hive communities. User would login with keychain,

Heading in original; bold emphasis added

Would Hive Keychain be the only method for providing credentials, or would additional options such as Hivesigner be allowed?

I ask because it is possible for one form of access to fail while another would be more successful. This is a situation I'm encountering with the D.Buzz microblogging platform; As a workaround I use PeakD with Hivesigner to post to D.Buzz instead of the native D.Buzz front-end.

I'm not saying this will happen here, but it is a situation to keep in mind.

Posted Using LeoFinance Beta

That's a very good point you are mentioning. Thank you for the feedback.
In addition to keychain, it is definitely possible to provide additional options such as hivesigner or directly entering posting or memo key (Although entering keys on websites from security standpoint is not a good idea).

However, one major disadvantage to hivesigner would be that for each message user would have to confirm a transaction. And this is good for security and non-frequent messaging. On the other hand for frequent messaging it would be bad user experience, but it still can be present as an option. By using keychain, the action of signing message can be remembered so that it does not popup for each message. But this also brings the problem of: what if a malicious client will pop in different message? However, this could be solved by collaborating with hive-keychain to limit remembered action to signing only messages with certain prefix.

Alternatively users could use memo key directly for messaging or support for throwaway keys could be added.

!PGM

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT tokens to @mirafun, @magnacarta

remaining commands 3

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-2.5 BUDS-0.01 MOTA-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


Hive messaging App on chain is a much needed one, there's a lot of advantages to this and I am sure Hive is capable of building one.
Creating a chatting App on a decentralized chain is going to be a big win, this over time could be developed to accommodate outside users for onboarding.

I am in support of this.

Posted Using LeoFinance Beta

Thank you for your support! !PGM

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT tokens to @mirafun, @joetunex

remaining commands 2

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-2.5 BUDS-0.01 MOTA-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


You are welcome

Posted Using LeoFinance Beta

I have supported your proposal. I

imagine your solution could be compatible with Peak Project's Sting protocol, because Sting is made to be used like that, it is supposed to be a protocol, not only one app but a set of apps.

Thank you for elaborating on your ideas, by the way.

Thank you for support! @asgarth was kind enough to invite for discussion about Peak Project's protocol. !PGM

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT tokens to @mirafun, @igormuba

remaining commands 1

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-2.5 BUDS-0.01 MOTA-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


I'd think a fork of the element.io code could be adapted for use with frontends, it would just be a matter of how that would come together.

https://app.element.io/#/room/#hivediscord:matrix.org

The nice thing about this is that private messages come encrypted.
I didn't like having my private chats stored on beechat servers unencrypted.

Thank you for feedback. !PGM It would have to be investigated how much time would integrating these technologies take compared to creating the front-end. Even if element/matrix are not integrated now, the option to do so would still be there in future.
In this app private messages would be encrypted as well. For channels this would be optional.

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT tokens to @mirafun, @antisocialist

remaining commands 0

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-2.5 BUDS-0.01 MOTA-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


Sorry I don’t have anything techy to say. But in app messaging is still cool on Web 2. So I say why not. I’ll. Be voting the proposal

Posted Using LeoFinance Beta

Thank you for your support! !PIZZA

PIZZA! PIZZA! PIZZA! PIZZA!

PIZZA Holders sent $PIZZA tips in this post's comments:
thaddeusprime tipped mirafun (x1)
@wrestlingdesires(7/15) tipped @mirafun (x2)
mirafun tipped mistakili (x1)

Learn more at https://hive.pizza.

Congratulations @mirafun! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):

You received more than 400 upvotes.
Your next target is to reach 500 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

Hive Power Month - New Tracking Calendar
Our Hive Power Delegations to the May Power Up Month Winners
Feedback from the June 1st Hive Power Up Day
Support the HiveBuzz project. Vote for our proposal!

Yay! 🤗
Your content has been boosted with Ecency Points, by @mirafun.
Use Ecency daily to boost your growth on platform!

Support Ecency
Vote for new Proposal
Delegate HP and earn more

This looks like it is getting some attention as people are seeing the need for something like this on Hive!
!PIZZA

This is exciting! About how far along are you in making it happen?

!PIZZA !ALIVE !LOL

This post has been upvoted by the VYB Curation Project

Where did the ice cream man get his driver's licence?
Sundae school.

Credit: reddit
@mirafun, I sent you an $LOLZ on behalf of @wrestlingdesires
Use the !LOL or !LOLZ command to share a joke and an $LOLZ
(2/4)

@mirafun! You Are Alive so I just staked 0.1 $ALIVE to your account on behalf of @wrestlingdesires. (2/10)

The tip has been paid for by the We Are Alive Tribe through the earnings on @alive.chat, feel free to swing by our daily chat any time you want.

The front end supports login with keychain, loads user's communities, shows post, community info section, and owners can setup their community. Things to be added: discovery page for communities, right click menu to add friends, pm others and plenty other small things. Lastly the interface should be tested and polished a bit to leave a good first impression. And finally the project still has no name! I wonder what would be a good name for it! Other than this the back end has to be written and integrated. !PGM

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT tokens to @mirafun, @wrestlingdesires

remaining commands 3

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-2.5 BUDS-0.01 MOTA-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


How about these names?
BeeHive
BusyBee
Colony
Buzzed
Buzzer
Honeycomb
Bees-Knees
HoneyChat
FlowerPower 🤣
SweetTalk 🤣

!PIZZA !ALIVE !LOL

@mirafun! You Are Alive so I just staked 0.1 $ALIVE to your account on behalf of @wrestlingdesires. (7/10)

The tip has been paid for by the We Are Alive Tribe through the earnings on @alive.chat, feel free to swing by our daily chat any time you want.

Will it be a separate program? Isn't it easier to use the web version like Ecency

Congratulations @mirafun! You received a personal badge!

Happy Hive Birthday! You are on the Hive blockchain for 1 year!

You can view your badges on your board and compare yourself to others in the Ranking

Support the HiveBuzz project. Vote for our proposal!

Dear @mirafun, we need your help!

The Hivebuzz proposal already got important support from the community. However, it lost its funding a few days ago when the HBD stabilizer proposal rose above it.

May we ask you to support it so our team can continue its work?
You can do it on Peakd, Ecency,

Hive.blog / https://wallet.hive.blog/proposals
or using HiveSigner.
https://peakd.com/me/proposals/199

All votes are helpful and yours will be much appreciated.
Thank you!

This is a neat idea, we'll keep this close to see how it develops! Thanks for your contributions and for sharing it on Leo Finance, we hope to see more from you in the future mate!

By the way @mirafun, we noticed that you powered up some LEO tokens in June 15, thanks for joining LPUD and helping the LeoFinance community grow stronger!

Just dropping by to let you know that the second edition is just around the corner, hopefully you'll join once again!

image.png

This Leo Power Up Day is special because it's part of the LeoFinance & Blocktrades HiveFest contest and if you join this LPUD, you'll be one step closer to winning one ticket with accommodation included to attend HiveFest!

Hopefully you'll join us!

image.png

Posted Using LeoFinance Beta

Posted Using LeoFinance Beta