Initial commit
This commit is contained in:
72
README.md
Normal file
72
README.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user