The CyberConnect Protocol allows users to establish bidirectional connections that are recorded and verified on blockchain networks. This bidirectional connection can be used to express “friends” relationship in some social contexts, but we are not limiting the use cases for it.
There are four states for a bidirectional connection between two addresses:
- EMPTY: Initial state between two wallet addresses.
- PENDING: Includes sent and received bidirectional connection requests.
- CONNECTED: Two wallet addresses have established a bidirectional connection after the request has been accepted.
- BLACKLIST: Either of two wallet addresses blocks another or two wallet addresses block each other.
The protocol defines different types of bidirectional connections for different situations:
- Init: Sends request to another wallet address.
- Accept: Accepts the request from another wallet address and establishes a bidirectional connection with it.
- Reject: Rejects the request from another wallet address.
- Terminate: Terminates the established bidirectional connection with another wallet address。
- Block: Blocks the request from another wallet address, also will terminate the bidirectional connection if there is already one between you and the address.
- Unblock: Remove the wallet address from the blacklist, and is able to receive the request from it.
Our protocol defines a state machine to demonstrate relationships between those states and a variety of bidirectional connections:
The bidirectional connection model has nothing to do with the “friends” in the current CyberConnect product. The CyberConnect product currently defines “friends” using mutual “follow” between two individuals, which are two unilateral connections under the hook.
How does it work?