You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Philipp Hoenisch d31ba28532
Make HTTP listen address configurable
3 years ago
..
migrations Maker publishes `OracleEventId` as part of offer 3 years ago
src Make HTTP listen address configurable 3 years ago
util/testnet_seeds Wallet updates in the UI 🎉 3 years ago
Cargo.toml Make sure we can request HTTPS urls 3 years ago
README.md Add logging library and initialize by default 3 years ago
build.rs Replace negative .gitignores with build script 3 years ago
prepare_db.sh Add script for preparing the DB for convenience 3 years ago
sqlx-data.json Wire in automatic CET publication 3 years ago

README.md

Maker & Taker Daemon

Daemon that enables the frontend. The frontend is just a very thin display layer, the daemon does all the heavy lifting and calculations.

Database

We use an sqlite database managed by sqlx.

To make sqlx handle the rust types correctly you have to generate sqlx-data.json file upon every query change. So, if you develop on the DB and change queries you will have to update the sqlx rust mappings like this:

# crated temporary DB
DATABASE_URL=sqlite:tempdb cargo sqlx database create

# run the migration scripts to create the tables
DATABASE_URL=sqlite:tempdb cargo sqlx migrate run

# prepare the sqlx-data.json rust mappings
DATABASE_URL=sqlite:./daemon/tempdb cargo sqlx prepare -- --bin taker

Currently the database for taker and maker is the same. The taker binary is used as an example to run the prepare command above, but it is irrelevant if you run it for taker or maker. The tempdb created can be deleted, it should not be checked into the repo. You can keep it around and just run the prepare statement multiple times when working on the database.

Logging

maker and taker both make use of a log library which can be controlled using the environment variable RUST_LOG. By default, logging is set to debug for application specific logs only. If you want to see logs by third party libraries, you need to set RUST_LOG=. For example, to enable logs for rocket, use:

RUST_LOG=rocket=debug cargo run --bin taker

Additionally, logs can be formatted in json format by passing --json or -j.