Skip to content

Commit

Permalink
Merge branch 'main' into add-location-to-f2f
Browse files Browse the repository at this point in the history
  • Loading branch information
KoalaSat authored Oct 5, 2023
2 parents f5cb0f7 + bed01c6 commit 9a1266e
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/client-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ jobs:
uses: docker/setup-qemu-action@v3

- name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3

- name: 'Build and push Docker image'
uses: docker/build-push-action@v5
Expand Down
16 changes: 8 additions & 8 deletions federation.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
_RoboSats Federation Basis v0.6.0~1_
_RoboSats Federation Basis v0.6.0~2_

## Introduction
RoboSats is a Free and Open Source project, anyone can spin up a new RoboSats backend instance. This is in fact ideal, given that the more backend instances there are, the more decentralized RoboSats becomes and the harder it is to stop. However, this decentralization creates some challenges:
Expand All @@ -8,7 +8,7 @@ RoboSats is a Free and Open Source project, anyone can spin up a new RoboSats ba
3. **Trust issues** - Users may not know whether a coordinator can be trusted. Shady coordinators could potentially scam users.
4. **Lost DevFund revenue** - With decentralized instances, revenue is detached from code development. This results in lost capacity to improve the platform and maintain the codebase.

The **RoboSats Federation aims to solve these 4 key issues!** The Federation is a set of rules that allow multiple RoboSats instances to work together under a unified client app. The federated client app joins the order book of every coordinator, users can seamlessly interact with any coordinator, track the coordinator reputation, verify transparently devFund donations, and more.
The **RoboSats Federation aims to solve these 4 key issues!** The Federation is a set of rules that allow multiple RoboSats instances to work together under a unified client app. The federated client app joins the order book of every coordinator, users can seamlessly interact with any coordinator, track the coordinator reputation, verify transparently devFund donations, and more.

The goal is to release the federated app in version **v0.6.0** as the new standard RoboSats client.

Expand Down Expand Up @@ -37,10 +37,10 @@ Becoming a RoboSats coordinator is not just "easy passive income" and does requi
A RoboSats coordinator is not too capital intensive. In fact, incoming payments are matched with outgoing payments, so only a small balance is needed to cover channel reserves and some extra. However, if you plan to enable "onchain payouts," more liquidity will be required, and you'll need to become familiar with balancing lightning/onchain.

### What is a coordinator expected to do?
Short list of what a coordinator is expected to do:
Short list of what a coordinator is expected to do:

- Run RoboSats Coordinator in a production environment.
- Build reputation and gain users trust.
- Run RoboSats Coordinator in a production environment.
- Build reputation and gain users trust.
- Keep a well maintained LN node (Note: Sats at risk, Lightning and the RoboSats backend are not hack proof).
- Provide user support for any order hosted by the coordinator backend.
- Solve user disputes fairly and timely.
Expand All @@ -58,10 +58,10 @@ Coordinator registrations are **always OPEN** . All fields can be updated or com
### How to run a RoboSats Coordinator?
The easiest way to run a RoboSats coordinator is by using our Docker image releases (see Github Release). That's it, there are no more guides at the moment so it requires a fair bit of technical knowledge as of now. The details of how to wire everything will vary depending on your existing infrastructure. You will find help on our [Matrix Development group](https://matrix.to/#/#robosats:matrix.org).

We are working to release three flavors of pre-configured orchestrations with decent defaults: 1) a well-tested docker-compose orchestration and 2) a [StartOS](https://github.com/Start9Labs/start-os) RoboSats Coordinator App, and lastly 3) an elegant, but little tested, Kubernetes orchestration. The infrastructure-as-code will be open source as well.
We are working to release three flavors of pre-configured orchestrations with decent defaults: 1) a well-tested docker-compose orchestration and 2) a [StartOS](https://github.com/Start9Labs/start-os) RoboSats Coordinator App, and lastly 3) an elegant, but little tested, Kubernetes orchestration. The infrastructure-as-code will be open source as well. You can find the repository holding the docker-compose and kubernetes orchestrations here [RoboSats-Deploy](https://github.com/RoboSats/robosats-deploy). The Kubernetes orchestration as wel as the StartOS app are still work in progress.

### Can a RoboSats coordinator be profitable?
There are many nuances, but the short answer is: Yes.
There are many nuances, but the short answer is: Yes.

Bitcoin exchanges are the single biggest revenue makers in the space. In addition, coordinating robosats has low running cost (hardware / energy) and development cost (open source, donation based). There is no reason why coordinating RoboSats would not be profitable even if at a very small scale. A RoboSats coordinator should be able to outcompete in fees any other P2P or centralized exchange and still be profitable.

Expand All @@ -74,7 +74,7 @@ As discussed above, a lightning node capable of coordinating hundreds of RoboSat

Donations to the Development Fund (DevFund) are voluntary with no minimum amount. The default donation rate in the Coordinator backend is 20%, however, you can freely set this value to 0%. Regardless of the amount a coordinator donates for development, all coordinators will be included in the client app.

The coordinators that chose to stick with the default donation rate or higher will get to display a cool badge on their profiles. The RoboSats client app randomly sorts coordinators weighted by their DevFund donation value ([implementation here](https://github.com/RoboSats/robosats/blob/2262dc2af7110e86bb529f5075a19a50e16ade45/frontend/src/utils/federationLottery.ts#L27-L30)). Thus, the orders of the coordinators that contribute to the development have a higher chance to appear first in the Order book. Coordinators who contribute to the DevFund are also more likely to receive support if needed (note that unless the devs are under time constraints support is unlikely to be denied). These patron perks are the way developers say "thank you for your contribution!".
The coordinators that chose to stick with the default donation rate or higher will get to display a cool badge on their profiles. The RoboSats client app randomly sorts coordinators weighted by their DevFund donation value ([implementation here](https://github.com/RoboSats/robosats/blob/2262dc2af7110e86bb529f5075a19a50e16ade45/frontend/src/utils/federationLottery.ts#L27-L30)). Thus, the orders of the coordinators that contribute to the development have a higher chance to appear first in the Order book. Coordinators who contribute to the DevFund are also more likely to receive support if needed (note that unless the devs are under time constraints support is unlikely to be denied). These patron perks are the way developers say "thank you for your contribution!".

The RoboSats development team has an exciting roadmap ahead. However, once RoboSats is fully decentralized, the only source of funding for further development and maintaining the codebase will be donations (we do not accept venture-capital investments). Some of the exciting roadmap ahead:
- [RoboSats PRO app](https://github.com/RoboSats/robosats/issues/177) (Intended for professional market makers. This client can manage many orders/robots in many coordinators at once.)
Expand Down
8 changes: 4 additions & 4 deletions frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
"react": "^18.2.0",
"react-countdown": "^2.3.5",
"react-dom": "^18.2.0",
"react-grid-layout": "^1.4.1",
"react-grid-layout": "^1.4.2",
"react-i18next": "^13.2.2",
"react-image": "^4.1.0",
"react-qr-code": "^2.0.11",
Expand Down
7 changes: 4 additions & 3 deletions mobile/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"format": "prettier --write '**/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
},
"dependencies": {
"@react-native-clipboard/clipboard": "^1.11.2",
"@react-native-clipboard/clipboard": "^1.12.1",
"@react-native-community/netinfo": "^9.3.10",
"react": "18.2.0",
"react-native": "^0.71.8",
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ requests==2.31.0
ring==0.10.1
git+https://github.com/RoboSats/Robohash.git
gunicorn==21.2.0
psycopg2==2.9.7
psycopg2==2.9.8
SQLAlchemy==2.0.16
django-import-export==3.3.1
requests[socks]
Expand Down

0 comments on commit 9a1266e

Please sign in to comment.