Releases: RoboSats/robosats
v0.2.2-alpha
This release introduces
- The new Maker Form
- New match making system on order maker
- RoboSats PRO concep demo (Interactive fully customizable layout with widgets, drag and drop, then freeze the UI) . Check it out at unsafe.robosats.com/pro
- New Web websocket System
- API v0 documentation
- Loading avatar placeholder animation
- A large refactor of the frontend (many new functional components)
- Persist data on Android
- New currencies
- New language : Chinese (simplified and traditional)
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.2-alpha (Docker Hub)
docker pull recksato/robosats:v0.2.2-alpha
Client App Image v0.2.2-alpha (Docker Hub)
docker pull recksato/robosats-client:v0.2.2-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).
Many bug fixes (possibly many new bugs too!)
Known bugs:
- Tooltips on the DepthChart are now deactivated. The center line does not render.
- Chat still does not work in the Android APK.
v0.2.2-alpha (2022-10-22)
Closed issues:
- Add REST API endpoint for the trade chat (Turtle mode chat) #175
Merged pull requests:
- Add react layout grid playground #299 (Reckless-Satoshi)
- Conform to pep8 rules #295 (redphix)
- Annoy black #293 (redphix)
- Update Chinese language #292 (ra5pvt1n)
- Fixes to python auto-formatting #291 (Reckless-Satoshi)
- Bump django from 3.2.15 to 3.2.16 #290 (dependabot[bot])
- Add functional homepage #289 (Reckless-Satoshi)
- Add Chat endpoint to API v0 #288 (Reckless-Satoshi)
- Python files style cleanup #281 (redphix)
android-f3d36fb (2022-10-16)
Closed issues:
- Add matchmaking system #237
Merged pull requests:
- Revert catch on Tor Android connection #287 ([@KoalaSat )
- Android style fixes #286 (Reckless-Satoshi)
- Android minor fixes #285 (KoalaSat)
- Fix docs - add missing field in /api/book #279 (redphix)
- Create WebsocketWebClient #277 (KoalaSat)
- Update docs - add on-chain payouts page #272 (redphix)
- Add Traditional Chinese language locale #271 (ra5pvt1n)
- Add MakerForm functional component #265 (Reckless-Satoshi)
android-27154d5 (2022-10-10)
Closed issues:
Merged pull requests:
- Add currencies ETB, GEL, and UGX which Yadio now supports #275 ([@sgornick )
- Persist Data on Android #274 (@KoalaSat)
- Update Basque language #273 (@OSFr0g)
- Update docs - 05-trade-escrow.md #264 (@okada-blue))
android-9bda934 (2022-10-07)
Merged pull requests:
- Android Tor icon and copy to clipboard #269 (KoalaSat)
- Fix broken url in translations docs #268 (@bitcoin-solo)
android-36cf156 (2022-10-04)
Closed issues:
- API Documentation #75
Merged pull requests:
- Android app config and fixes #267 (KoalaSat)
- Update docs - 09-swaps.md #263 (redphix)
- Update docs - add matrix room link in development #262 (redphix)
- Add OpenAPI v3.0 Docs for API #243 (redphix)
Latest
- Add Chat endpoint to API v0 by @Reckless-Satoshi in #288
- Bump django from 3.2.15 to 3.2.16 by @dependabot in #290
- Python files style cleanup by @redphix in #281
- Fixes to python auto-formatting by @Reckless-Satoshi in #291
- Update Chinese language by @ra5pvt1n in #292
- Add functional homepage by @Reckless-Satoshi in #289
- Conform to pep8 rules by @redphix in #295
- Annoy black by @redphix in #293
- Add react layout grid playground by @Reckless-Satoshi in #299
robosats-android-f3d36fb
Revert lint fix
robosats-android-27154d5
Persist Data on Android #274
-
Android Cookies
-
Android Fix POST headers
-
Format
-
App & Cookies Working
-
Fix token on UserGen
robosats-android-9bda934
Android Tor icon and copy to clipboard (#269) * Android Clipboard and Tor Status Icon * working clipboard and lintern * Fix * Add style for Tor connection component * Fix Freeze and Internet out * Fix Typo Co-authored-by: Reckless_Satoshi <[email protected]>
robosats-android-36cf156
Update PR template. Fix Android release workflow.
v0.2.1-alpha
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)
android-ab4d83b (2022-09-28)
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
robosats-android-ab4d83b
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
v0.2.0-alpha
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:
- Update 03-premium.md and 04-bonds.md #248 (okada-blue)
- Update 02-robots.md #246 (okada-blue)
- Fix logic of checking whether non-participants can view order details #245 (redphix)
- Enable Telegram notifications for order takers #244 (Reckless-Satoshi)
- Frontend API client #242 (KoalaSat)
- Fix error when query parameters not passed #239 (redphix)
- Expose Satoshis Now on API #236 (KoalaSat)
- Move the most recent value in sats of an order calculation to the backend #235 (KoalaSat)
- Fix selfhosted secure/unsecure context bug #234 (Reckless-Satoshi)
- Current progress on issue #195 (auto-scale to fontsize) #233 (fmitjans)
- Add QR Code to enable Telegram notifications #232 (Reckless-Satoshi)
- Fix dependencies #231 (Reckless-Satoshi)
- Update 03-premium.md #229 (okada-blue)
- Change css to fix order book alignment in safari desktop #225 (ozoono)
- Update 02-robots.md #221 (okada-blue)
- Add book depth chart #219 (KoalaSat)
- Update th.json #218 (bkminer1984)
- Client app for soverign nodes #216 (Reckless-Satoshi)
- Add WebLN support #215 (KoalaSat)
- keeping russian up to date #213 (Tonytherussian)
- Make robosats setup more easy #212 (ShatteredBunny)
- Bump django from 3.2.14 to 3.2.15 #211 (dependabot[bot])
- Stealth invoices #210 (ShatteredBunny)
- Add grpc generation script and update setup.md to run it using docker container #209 (ShatteredBunny)
- thai translation #205 (bkminer1984)
- Pull#198 followup #202 (zx9r)
- Compute percentile over orders of the same type #201 (merchero)
- Issue#194 #198 (zx9r)
- Czech translation update #197 (Wertiko)
- Czech translation #191 (Wertiko)
- Bump tzinfo from 1.2.9 to 1.2.10 in /docs #189 (dependabot[bot])
- Update ca.json #188 (BlueLynx21)
- Bump terser from 5.10.0 to 5.14.2 in /frontend #187 (dependabot[bot])
- Add payment method: UPI #186 (prithugoswami)
- Add Swedish translation #185 (angeria)
- Bump django-celery-results from 2.2.0 to 2.4.0 #184 (dependabot[bot])
- Bump django from 3.2.13 to 3.2.14 #183 (dependabot[bot])
- Basque lang few spelling errors corrected #182 (OSFr0g)
- hotfix for weighted median premium #180 (ghost)
- Adding Portuguese translation #178 (LindomarRodrigues)
- Replace weighted average to weighted median. #173 (ghost)
- Basque (eu) language added #172 (4pt1x)
- Add Tunisian Dinars (TND) #171 ([SkanderHelali](https://github.com/Skande...
robosats-alpha-b4fac4c
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
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
- 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.
- While there exists several peer-to-peer alternatives to centralized exchanges, these are rather technical, slow and costly.
- 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:
- Explicit: the maker explicitly sets the amount of fiat and the amount of satoshis.
- 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! :)