Skip to content

Releases: RoboSats/robosats

v0.2.1-alpha

29 Sep 16:53
a6cbff8
Compare
Choose a tag to compare

This patch includes the new BookTable component. This is the first alpha release with an Android APK for testing.

Features of the new book table component:

  • Responsive to any screen size.
  • Displays columns according to importance (only shows most important columns that fit in the screen)
  • Has 3 new columns: time to public expiration, escrow/invoice submission timer, order ID.
  • Colors the premium according to attractiveness (small color and thickness effect).
  • Has a new fullscreen mode.
  • In large displays, the book page will render the depth chart side-by-side.

A RoboSats release simply marks a milestone in development. The release is relevant for RoboSats developers and market coordinators. In addition, it gives us an opportunity to release a note summarizing all of the new cool features and credit all contributors.

Docker Images

Coordinator Backend Image v0.2.1-alpha (Docker Hub)

docker pull recksato/robosats:v0.2.1-alpha

Client App Image v0.2.1-alpha (Docker Hub)

docker pull recksato/robosats-client:v0.2.1-alpha

See nodeapp/docker-compose.yml for an example docker-compose usage of the robosats-client image.

Android

Find below the Android APK assets for testing (Android app still under development, look at pre-releases for more information).

Changelog

v0.2.1-alpha (2022-09-29)

Full Changelog

android-ab4d83b (2022-09-28)

Full Changelog

Closed issues:

  • Android/iOS app. Torified webview in react-native. #42

* This Changelog was automatically generated by github_changelog_generator

Full Changelog: android-ab4d83b...v0.2.1-alpha

Contributors since v0.2.0-alpha

@KoalaSat
@okada-blue
@Reckless-Satoshi

robosats-android-ab4d83b

28 Sep 20:38
ab4d83b
Compare
Choose a tag to compare
Pre-release

Android Pre-release

Android pre-release for testing. This pre-release has @KoalaSat #247 webview with torified requests. While the app is not fully functional (no cookies and therefore no permanent robot and no authenticated requests are possible), it would be great to start testing Tor requests in different systems.

This releases has two assets that you can download below: release-like .apk (159 Mb) and a debug .APK (233 MB). The debug APK is specially useful at this stage as it will show logs for errors that are key to fix the issues.

Contributors

@KoalaSat
@Reckless-Satoshi

v0.2.0-alpha

22 Sep 22:44
538f3cb
Compare
Choose a tag to compare

This is the first RoboSats alpha release! 🎉
Our previous release was nicknamed "Minimum Viable Project". With the first alpha release we intend to have a higher cadence of releases, sticking to semantic versioning. This is needed in order to ensure compatibility with the distributed clients (e.g. sovereign node apps or Android app)

Given that the API is still fluid, the major version will be 0 for the next few iterations. RoboSats web client, node client, and Android client, now check with the coordinator whether the major and minor versions match. In case of mismatch, the user will be instructed to update the client.

Every RoboSats component (i.e., the coordinator backend, web client, node client and Android client) will be versioned in lockstep,(matching versions) so there is no need for lookup compatibility tables. If the major and minor versions match, it's perfectly compatible.

A RoboSats release simply marks a milestone in development. The release is relevant for RoboSats developers and market coordinators. In addition, it gives us an opportunity to release a note summarizing all of the new cool features and credit all contributors.

Docker Images

Coordinator Backend Image v0.2.0-alpha (Docker Hub)

docker pull recksato/robosats:v0.2.0-alpha

Client App Image v0.2.0-alpha (Docker Hub)

docker pull recksato/robosats-client:v0.2.0-alpha

See nodeapp/docker-compose.yml for an example docker-compose usage of the robosats-client image.

Android

This release has no APK assets available (Android app still under development, look at pre-releases).

Changelog

v0.2.0-alpha (2022-09-22)

Closed issues:

  • Implement automated versioning, releases and version mismatch checks. #241
  • Move the most recent value in sats of an order calculation to the backend #224
  • [solved] QtQr adds invisible characters front of the string in the QRcode #214
  • Improve docker-compose.yml / setup.md #208
  • Order expired, LN still confirming #207
  • Add onchain address validation compatible with Taproot adresses #194
  • Add the fiat amount to the chat component #192
  • Identify the taken amount as a maker of an order with an amount range on small screens is clumsy #181
  • “Extra” features to increase the popularity of RoboSats #179
  • Add WebLN support #176
  • Add 'stealth invoices': an On/Off toggle for lightning invoice description #168
  • Detailed amounts of sats involved after a trade #150
  • Add book depth chart #134

Merged pull requests:

Read more

robosats-alpha-b4fac4c

14 Jul 19:52
b4fac4c
Compare
Choose a tag to compare
Pre-release

Android Pre-release

To be prepared for Android releases.

App should not be used as of now. It uses the clearnet unsafe tor2web bridge.

robosats v0.1.0-mvp

31 Jan 17:38
ab18dcb
Compare
Choose a tag to compare

This is the first RoboSats release!🎉 This release contains the full stack of the RoboSats peer-to-peer exchange at the stage of minimum viable product (MVP). The platform has been built using a python-django backend and a user friendly react-mui frontend.

IMPORTANT: A RoboSats release simply marks a milestone in development. The release is relevant for RoboSats developers and platform operator. In addition, it gives us an opportunity to release a note summarizing all of the new cool features and credit all contributors. You do not need to download / install / run any software to use RoboSats, simply visit the website to use it!

Motivation

  1. One of the main attack vectors for the Bitcoin network and its users is the ability of some entities to control the fiat on/off-ramps. It allows for censorship and surveillance by linking funds with identities.
  2. While there exists several peer-to-peer alternatives to centralized exchanges, these are rather technical, slow and costly.
  3. Most users still prefer the convenience of a centralized exchange at the cost of their privacy and a difficult initial setup (submit passport, selfie-video, etc).

RoboSats Vision

  • Using the Lightning Network it is possible to create a very user friendly, safe, fast and cheap peer-to-peer market. Using hold invoices as fidelity bonds and trade escrows, one can dream of an open platform that rivals the ease of use of centralized alternatives keeping similarly low fees, yet with minimal privacy invasion and a close to custody-less trade pipeline.

How to use RoboSats

Simply visit RoboSats website using Tor Browser

  • Bitcoin mainnet: RoboSats6tkf3eva7x2voqso3a5wcorsnw34jveyxfqi2fu7oyheasid.onion

  • Bitcoin testnet: RoboTestagw3dcxmd66r4rgksb4nmmr43fh77bzn2ia2eucduyeafnyd.onion

In-depth tutorial with 2 full walk-troughs: How to use RoboSats v0.1.0

Features

Privacy Focus

  • The fidelity bond trust model, instead of a reputation model, enables users to never reuse identities (see #39)
  • Easy generation of robohash avatars and nicks from any user created high entropy token.
  • Pipeline encourages multiple avatars generation: one identity -> one trade.
  • Avatar reuse is possible by recovering a backed up token, yet it requires extra effort.
  • Minimal logging, just enough so the platform works. Chat is memory-less (details in #33).
  • All platform features are designed and tested for use in TOR network only (tested in Tor Browser & Brave).

Trust and Custody Model

  • Extensive use of lightning hold invoices as trade escrow and as means to minimize funds custody.
  • The seller locks the satoshis in a hold invoice. The satoshis are released to the buyer once both confirm the fiat has been received.
  • RoboSats does not custody funds; yet, linking the seller invoice and the buyer payout is not atomic. Trust in RoboSats operators is needed. Trade with caution and only small amounts.
  • In case of dispute, the staff helps resolving the case.

Fidelity Bonds

RoboSats make extensive use of lightning hold invoices for fidelity bonds.

  • Users lock a small hold invoice using lightning in order to participate in a contract. Prevents book spamming, ddos attacks and disincentivizes cheating.
  • Makers lock the invoice just when publishing the offer, hardening the order book from spamming. For every public order in the book, there is fidelity bond committed on the other side.
  • The contract is final when the taker locks its fidelity bond (i.e., when maker and taker are committed).
  • If a user cancels unilaterally a contract, he risks losing his bond; improves diligence of peers and overall user experience.
  • In an ongoing contract, a user that does not fulfill its task (e.g. submit the payout invoice or lock the trade escrow...), risks losing the bond at expiry time.
  • In case of dispute, the dispute loser will lose his bond.
  • Bonds are returned when the trade is completed or the order expires (only if the user is not the cause of the expiration due to inactivity).
  • The maker bond is returned if a public order is cancelled before a contract is created (i.e., before another user takes it).
  • Collaborative cancellation: users can agree to stop a trade before the confirmation of 'fiat sent'. Both fidelity bonds are returned.

Most wallets do not deal very well with hold invoices. Some wallets show that the invoice has been charged even after it has been returned. Try restarting the service.

Order Options

  • Up to 31 currencies to choose from.
  • Free input for payment method(s).
  • Order pricing mechanisms:
    1. Explicit: the maker explicitly sets the amount of fiat and the amount of satoshis.
    2. Relative to market: the maker sets a premium/discount over external market prices. RoboSats currently uses median Yadio.io and Blockchain.info for market prices.

Dispute Resolution System

  • Users must submit a complete case within one statement where they build the case.
  • Users MUST provide a burner contact method that might be useful for the staff further inquires and resolution communication.
  • Staff, decides for a winner and a loser. Winner will be asked for a new payout invoice. Loser forfeits the fidelity bond.

Others

  • Fully featured order book page. Easy navigation and sorting of currencies, positions, amounts, premiums, exchange rates, and more.
  • Responsive on mobile and desktop devices. Mobile experience is prioritized after v0.1.0 release.
  • Full trade pipeline accessible trough REST API (documentation to come).
  • Chat connects taker and maker to communicate payment details (WebSocket based).
  • Sound notifications when a the lightning hold invoice is locked and when a taker is found. (See #41)
  • Bottom toolbar with information about the exchange (number of public orders, average non-kyc premium, number of active robots, fees, and more), about the platform (running commit hash, lifetime settled volume, link telegram communities and more) and about the user current robot avatar and active order.
  • Information dialog with short and concise explanations about what the RoboSats is, how it works and what are the risks.
  • Order page shows order details and current contract actions. Order page shows active status of the counterpart.

Contributors (Alphabetical Order)

@LowEntropyFace
@Reckless-Satoshi

Special thanks to

Five anonymous robots that have been running Testnet trades, reporting bugs on the telegram group and cheering! :)