BBChat

A messaging node supports sending and receiving encrypted messages between BBID accounts using the BB ecosystem. The message payloads can support any type of data schema defined using the protocol.

By combining chats and social assets with wallets, we are building a universal chatting interface that breaks the boundaries across Apps and makes everyone be able to chat with each other in and across any app with their Web IDs and assets.

Entity identification

BBSoft uses Ceramic to build decentralized identity (BBID) and manage all sorts of entity related data, such as:

  • Profile, which contains basic information about the entity

  • Social Connection, maintain connections among different entities, for example, friends, followers, blockers...etc.

By joining Ceramic Network, we can leverage their lively ecosystem to make our infrastructure easy to adapt to other quick-growing projects.

Messaging

BBChat stores messages in IPFS through OrbitDB, which is the ultimate decentralized datastore for all sorts of data. But since it’s globally accessible, encryption and decryption become the most important concept to protect messages and digital assets exchanges between entities.

End-to-end Encryption (E2EE)

BBChat uses The Advanced Encryption Standard (AES) to encrypt and decrypt the chat message and file attachments for both 1-1 messages and group chats.

Event Based Management

BBChat provides event-based management for data integrity. Each entity has its own event store distributed by BBChat agent, and receiver (DApps) can choose to consume the event in their best interests.

For example, Alice would like to add Bob as a connection so they can message each other, BBChat agent will store this event (Event A) and wait for Bob to connect to any DApp uses Protico to consume the event. Once Bob connected and approved the connection, the agent will then store another event (Event B) for Alice as a confirmation for them to start chatting with each other.

Scenario: DApp A: Alice send connect request to Bob ⇒ event A created in Bob’s event store DApp B: DApp B reads event A from Bob’s event store ⇒ Bob uses DApp B to approve the connect request ⇒ event B created in Alice’s event store DApp B: DApp A reads event B from Alice’s event store ⇒ Alice gets notified that she can now start messaging Bob

The event base management has more potential than the use case above since it adds another layer to record all entity activities.

BBChat Agent

BBChat agents are machines behind an API gateway. to be able to make requests to agents to fetch events for an entity, DApps must grant certain permissions by consuming tokens.

Last updated