bisq-network / projects

@bisq-network project management
https://bisq.wiki/Project_management
9 stars 2 forks source link

Define architecture and interfaces for the protocol layer #54

Open chimp1984 opened 3 years ago

chimp1984 commented 3 years ago

_This is a Bisq Network project. Please familiarize yourself with the project management process._

Description

Define architecture and interfaces for the protocol layer with the requirement to support multiple protocols and potentially external protocols (e.g. farcaster).

Rationale

To support multiple contract execution protocols (asset trades, loans,...) we need an architecture which allows different protocol implementations to be used. Asset transfer and security are considered as separate aspects. They can be combined like in the current Bisq protocol or atomic swaps or be decoupled like in an off-chain protocol using BSQ bonds or reputation for security.

Criteria for delivery

Measures of success

The provided results are considered sufficient to be used for futher refinements .

Risks

Tasks

Estimates

This investigation should be scoped from effort and time. It will likely require further interations before we get ready for implementing it. So this should be seen as a first shot to get a better understanding of the challenges and fail fast if it turns out the challenges cannot be solved within our resource constraints. I think 4 weeks for 1 contributor should not be exceeded. According to that the contributor should post their expected compensation.

Notes

A main challenge will be how we support external protocol implementations (e.g. farcaster project in Rust). To be able to hook into those instead of re-implementing those protocols and infrastructures in Java would be good.

There should be a close feeback loop with the contributor working on: https://github.com/bisq-network/projects/issues/52

The protocol can be modeled as a finite state machine (likely it will require a hierarchy of FSMs). Farcasters seem to use a Petri net. I am not familiar with that but might be worth to look into.

The question how trade fees are part of the protocol can be ignored at that stage.

Formulating current Bisq protocol as RFC as an example protocol might be useful. But not sure if required/helpful at that moment. But if anyone wants to work on that would be a good to have. Can be done by another contributor and be seen outside of the scope of that project.

Examples of protocol we should be able to support:

chimp1984 commented 3 years ago

@stejbac Would you be interested/available for that project?

stejbac commented 3 years ago

I would be interested in this project and should be available full time over the next month to work on it.