Bisq 2 Roles

From Bisq Wiki
Revision as of 21:18, 11 November 2023 by Darawhelan (talk | contribs) (→‎Mediator)
Jump to navigation Jump to search

Bisq 2 has contributors that take responsibility for specific bonded roles for the network resources and processes.

There are 2 types of bonded roles.

  • System roles
  • Delegable roles

System roles

System roles cannot be delegated to users due security reasons or requirement for system wide (weak) consensus.

Mediator

Similar as in Bisq 1, mediators are used for Bisq Easy traded in case of problems, but they have no enforcement power. They can provide information to moderators for banning a user who severely violated trade rules.

Moderator

Users can report other users to moderators for violations of chat or trade rules. The moderator investigates the case and if they consider the violation severe they can ban that users profile ID.

Moderators can delete chat messages as well (technically its not deleting but adding a ban flag associated to the message, as only the message author can delete it).

In future we might consider to make some channels "invite-only" to protect against spam or other abuse. The 'events' section might be a candidate for that. Once that is in place the moderator might be the role to grant write access to a channel.

As Bisq 2 provides support for multiple identities that banning might not have a big effect as a spamming user could easily create a new profile and continue.

If spam becomes a problem we might add protection with proof of work and/or reputation features.

Security manager

Similar to Filter operator in Bisq 1. Can publish data to block other roles/nodes and other security related things (block trading). User can deactivate per program argument security manager, so the security manager has reduced power.

The security manager can broadcast a alert message to the network or to specific users. Alerts can be ignored by the users should they wish.

The types of alters include:

  • INFO (info popup with a text message)
  • WARN (warn popup with a text message)
  • HALT_TRADE (custom emergency popup with a text message and disable all trade operations for the defined trade protocol)
  • BAN (no text message, data of the banned role)

Update manager

The release manager can broadcast a update notification to the network.

The types of notification types include:

  • PRE_RELEASE: Send update notification for new pre-release (user can enable to get notified about pre-releases in settings, default is off)
  • RELEASE: Send update notification about a new release
  • FORCED_UPDATE: Warn popup with a text message about the need for update to the required min version. All trade operations will be halted until updated

Delegable roles

Delegable roles can be operated by any users themself and assigned via JVM arguments. They are based on publicly available data and do not require to be in consensus with other Bisq 2 users.

Seed node

Similar as in Bisq 1 but seed nodes have less importance for initial data requests. There must be at least one hard coded seed node.

Oracle node

Serves a bridge and "notary" for Bisq 1 DAO data and P2P network data (account age, account age witness data) and for timestamping Bisq2 profile creation (Bisq2 account age). There must be at least one hard coded seed node.

Explorer nodes

Lookup for trade transactions for informational purpose. Pose little but non-zero risk.

Market price node

Same as Bisq 1 price nodes.

How does someone get to perform a bonded role in Bisq 2

Contributors for the roles are usually have established Bisq contributors that have been approved by a DAO vote to perform a certain role.

For increased security a contributor must make a proposal to become a contributor for a specific role that is voted on by the Bisq DAO. If the vote is successful that a BSQ bond will be locked up automatically for that contributors specific role.

The process for performing a role in Bisq 2 is usually as follows:

  1. A potential contributor posts a proposal to Bisq GitHub Proposals Repository putting their case forward for performing a certain role for Bisq.
  2. The proposal is discussed on the GitHub issue.
  3. Once there is rough consensus for the proposal to be accepted the potential contributor then makes a proposal for a bonded roles from the Bisq application. They would need to ensure that they have enough BSQ available for the BSQ bond.
  4. The proposal is put to the Bisq DAO for voting. If the proposal is accepted the BSQ bond is locked and the user can then work in their new role. If the proposal is rejected the BSQ is returned to the user that made the proposal.

For more information on becoming a contributor for Bisq see the Contributor Checklist.

Not all roles require bonding so it is often easier to get started on a non-bonded role and develop your reputation prior to contributing for a role that requires bonding.

BSQ bonding for roles/nodes

All roles/nodes require a BSQ bond and DAO voting.

The oracle node verifies that all Bisq 2 bonded roles/nodes have a BSQ bond setup.

Their are 2 nodes that cannot be verified by the oracle node. These are the root seed node and the root oracle node (as this would present a chicken and egg problem).

Both these root nodes however are required to have also their own BSQ bond set up.

The bonding process is transparent all users are able to manually verify that all bonded roles / nodes have valid BSQ bonds. This is can be done though the DAO section of the Bisq 1 application.