73 lines
2.4 KiB
Markdown
73 lines
2.4 KiB
Markdown
# Fibitex Rango
|
|
|
|
Fork of [OpenWare Rango](https://github.com/openware/rango) based on upstream release **3.1.3**, patched for the Fibitex / OpenDAX 2.6 stack (Barong RS256 JWT + incremental order book on market switch).
|
|
|
|
## Fibitex documentation
|
|
|
|
| Doc | Topic |
|
|
|-----|--------|
|
|
| [`Docs/Fibitex-staging-deploy.md`](../Docs/Fibitex-staging-deploy.md) | Staging deploy |
|
|
| [`Alvand-P/README.md`](../Alvand-P/README.md) | Compose & image `custom/rango:1` |
|
|
| [`Docs/README.md`](../Docs/README.md) | Central docs |
|
|
| [`Docs/06-setup-local.md`](../Docs/06-setup-local.md) | Local setup |
|
|
|
|
Upstream repository: https://github.com/openware/rango
|
|
Base version: **3.1.3** (Fibitex build: see `VERSION`)
|
|
|
|
## Fibitex patches
|
|
|
|
1. **RS256 JWT (Barong 2.6)** — upstream 3.1.2+ accepts EdDSA only; this fork validates Barong `JWT_PUBLIC_KEY` (RSA) via `pkg/auth/validator.go`.
|
|
2. **Order book on market switch** — replay `ob-snap` and buffered `ob-inc` before adding the client to the topic, so live increments cannot arrive before the snapshot (`pkg/routing/hub.go`).
|
|
|
|
## Docker image
|
|
|
|
Alvand-P uses: `custom/rango:1`
|
|
|
|
```powershell
|
|
cd Rango
|
|
docker build -t custom/rango:1 .
|
|
```
|
|
|
|
## Alvand-P configuration
|
|
|
|
In `Alvand-P/config/app.local.yml`:
|
|
|
|
```yaml
|
|
images:
|
|
rango: custom/rango:1
|
|
```
|
|
|
|
Restart:
|
|
|
|
```powershell
|
|
cd Alvand-P
|
|
docker compose up -d rango
|
|
```
|
|
|
|
## Environment
|
|
|
|
Same as upstream Rango — see upstream README sections for RabbitMQ, scopes, and WebSocket paths (`/public`, `/private`).
|
|
|
|
| Variable | Fibitex note |
|
|
| -------- | ------------ |
|
|
| `JWT_PUBLIC_KEY` | Base64 PEM of Barong RSA public key (from `rango.env`) |
|
|
| `LOG_LEVEL` | Use `info` temporarily to see `JWT validator mode: rsa` |
|
|
|
|
## Verify
|
|
|
|
After login on `www.app.local`:
|
|
|
|
- Order cancel / create updates in UI (private `order` stream)
|
|
- Switching markets loads order book without refresh
|
|
- No repeated `OrderBook increment received before snapshot` in browser console
|
|
|
|
---
|
|
|
|
## Upstream Rango (reference)
|
|
|
|

|
|
|
|
Rango is a general purpose websocket server which dispatches public and private messages from RabbitMQ. It is designed as a drop-in replacement of Ranger built in Ruby.
|
|
|
|
For full upstream documentation (metrics, scopes, RBAC, message format), see the [openware/rango README](https://github.com/openware/rango/blob/master/README.md).
|