2023-05-05 13:12:38 +03:00
|
|
|
# Coordinator Alias (Same as longAlias)
|
|
|
|
COORDINATOR_ALIAS="Local Dev"
|
2023-05-22 17:56:15 +03:00
|
|
|
# Lightning node vendor: CLN | LND
|
2023-10-24 01:48:38 +03:00
|
|
|
LNVENDOR='LND'
|
2023-05-05 13:12:38 +03:00
|
|
|
|
2022-02-09 23:51:05 +03:00
|
|
|
# LND directory to read TLS cert and macaroon
|
|
|
|
LND_DIR='/lnd/'
|
|
|
|
MACAROON_PATH='data/chain/bitcoin/testnet/admin.macaroon'
|
|
|
|
# LND directory can not be specified, instead cert and macaroon can be provided as base64 strings
|
2022-01-11 02:27:48 +03:00
|
|
|
# base64 ~/.lnd/tls.cert | tr -d '\n'
|
2022-02-09 23:51:05 +03:00
|
|
|
LND_CERT_BASE64='LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLVENDQWRDZ0F3SUJBZ0lRQ0VoeGpPZXY1bGQyVFNPTXhKalFvekFLQmdncWhrak9QUVFEQWpBNE1SOHcKSFFZRFZRUUtFeFpzYm1RZ1lYVjBiMmRsYm1WeVlYUmxaQ0JqWlhKME1SVXdFd1lEVlFRREV3d3dNakJtTVRnMQpZelkwTnpVd0hoY05Nakl3TWpBNE1UWXhOalV3V2hjTk1qTXdOREExTVRZeE5qVXdXakE0TVI4d0hRWURWUVFLCkV4WnNibVFnWVhWMGIyZGxibVZ5WVhSbFpDQmpaWEowTVJVd0V3WURWUVFERXd3d01qQm1NVGcxWXpZME56VXcKV1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNJVWdkcVMrWFZKL3EzY0JZeWd6ZDc2endaanlmdQpLK3BzcWNYVkFyeGZjU2NXQ25jbXliNGRaMy9Lc3lLWlRaamlySDE3aEY0OGtIMlp5clRZSW9hZG80RzdNSUc0Ck1BNEdBMVVkRHdFQi93UUVBd0lDcERBVEJnTlZIU1VFRERBS0JnZ3JCZ0VGQlFjREFUQVBCZ05WSFJNQkFmOEUKQlRBREFRSC9NQjBHQTFVZERnUVdCQlEwWUJjZXdsd1BqYTJPRXFyTGxzZnJscEswUFRCaEJnTlZIUkVFV2pCWQpnZ3d3TWpCbU1UZzFZelkwTnpXQ0NXeHZZMkZzYUc5emRJSUVkVzVwZUlJS2RXNXBlSEJoWTJ0bGRJSUhZblZtClkyOXVib2NFZndBQUFZY1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFZY0V3S2dRQW9jRUFBQUFBREFLQmdncWhrak8KUFFRREFnTkhBREJFQWlBd0dMY05qNXVZSkVwanhYR05OUnNFSzAwWmlSUUh2Qm50NHp6M0htWHBiZ0lnSWtvUQo3cHFvNGdWNGhiczdrSmt1bnk2bkxlNVg0ZzgxYjJQOW52ZnZ2bkk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K'
|
2022-01-11 02:27:48 +03:00
|
|
|
# base64 ~/.lnd/data/chain/bitcoin/testnet/admin.macaroon | tr -d '\n'
|
2022-02-09 23:51:05 +03:00
|
|
|
LND_MACAROON_BASE64='AgEDbG5kAvgBAwoQsyI+PK+fyb7F2UyTeZ4seRIBMBoWCgdhZGRyZXNzEgRyZWFkEgV3cml0ZRoTCgRpbmZvEgRyZWFkEgV3cml0ZRoXCghpbnZvaWNlcxIEcmVhZBIFd3JpdGUaIQoIbWFjYXJvb24SCGdlbmVyYXRlEgRyZWFkEgV3cml0ZRoWCgdtZXNzYWdlEgRyZWFkEgV3cml0ZRoXCghvZmZjaGFpbhIEcmVhZBIFd3JpdGUaFgoHb25jaGFpbhIEcmVhZBIFd3JpdGUaFAoFcGVlcnMSBHJlYWQSBXdyaXRlGhgKBnNpZ25lchIIZ2VuZXJhdGUSBHJlYWQAAAYgMt90uD6v4truTadWCjlppoeJ4hZrL1SBb09Y+4WOiI0='
|
2022-01-11 02:27:48 +03:00
|
|
|
|
2023-05-22 17:56:15 +03:00
|
|
|
# CLN directory
|
|
|
|
CLN_DIR='/cln/testnet/'
|
|
|
|
CLN_GRPC_HOST='localhost:9999'
|
2023-09-06 18:18:22 +03:00
|
|
|
CLN_GRPC_HOLD_HOST='localhost:9998'
|
2023-05-22 17:56:15 +03:00
|
|
|
|
2022-07-31 17:35:12 +03:00
|
|
|
# Bitcoin Core Daemon RPC, used to validate addresses
|
|
|
|
BITCOIND_RPCURL = 'http://127.0.0.1:18332'
|
|
|
|
BITCOIND_RPCUSER = 'robodev'
|
|
|
|
BITCOIND_RPCPASSWORD = 'robodev'
|
|
|
|
|
2022-02-20 15:03:53 +03:00
|
|
|
# Postgresql Database
|
2022-08-09 12:44:29 +03:00
|
|
|
POSTGRES_DB='postgres'
|
2022-02-20 15:03:53 +03:00
|
|
|
POSTGRES_USER='postgres'
|
|
|
|
POSTGRES_PASSWORD='example'
|
|
|
|
POSTGRES_HOST='127.0.0.1'
|
|
|
|
POSTGRES_PORT='5432'
|
|
|
|
|
2022-08-04 00:21:02 +03:00
|
|
|
# Tor proxy for remote calls (e.g. fetching prices or sending Telegram messages)
|
2023-11-11 18:48:54 +03:00
|
|
|
USE_TOR=True
|
2022-08-04 00:21:02 +03:00
|
|
|
TOR_PROXY='127.0.0.1:9050'
|
|
|
|
|
2022-02-09 23:51:05 +03:00
|
|
|
# Auto unlock LND password. Only used in development docker-compose environment.
|
2022-07-31 17:35:12 +03:00
|
|
|
# It will fail starting up the node without it.
|
2022-02-09 23:51:05 +03:00
|
|
|
# To disable auto unlock, comment out 'wallet-unlock-password-file=/tmp/pwd' from 'docker/lnd/lnd.conf'
|
|
|
|
AUTO_UNLOCK_PWD='1234'
|
2022-01-13 17:08:21 +03:00
|
|
|
|
2022-07-13 21:55:30 +03:00
|
|
|
LND_GRPC_HOST='localhost:10009'
|
|
|
|
|
2022-02-17 01:02:21 +03:00
|
|
|
REDIS_URL='redis://localhost:6379/1'
|
|
|
|
|
2022-01-14 17:57:56 +03:00
|
|
|
# List of market price public APIs. If the currency is available in more than 1 API, will use median price.
|
2023-07-24 20:49:55 +03:00
|
|
|
MARKET_PRICE_APIS = https://blockchain.info/ticker, https://api.yadio.io/exrates/BTC, https://bitpay.com/rates/BTC, https://criptoya.com/api/btc
|
2022-01-06 19:54:37 +03:00
|
|
|
|
2022-01-18 16:20:19 +03:00
|
|
|
# Host e.g. robosats.com
|
2022-01-13 00:22:16 +03:00
|
|
|
HOST_NAME = ''
|
2022-02-13 19:43:49 +03:00
|
|
|
HOST_NAME2 = ''
|
2022-06-27 01:43:57 +03:00
|
|
|
I2P_ALIAS = ''
|
|
|
|
I2P_LONG = ''
|
2022-02-20 14:12:57 +03:00
|
|
|
LOCAL_ALIAS = ''
|
2022-02-12 16:59:59 +03:00
|
|
|
|
|
|
|
# SECURITY WARNING: keep the secret key used in production secret!
|
2022-02-11 00:38:56 +03:00
|
|
|
SECRET_KEY = 'django-insecure-6^&6uw$b5^en%(cu2kc7_o)(mgpazx#j_znwlym0vxfamn2uo-'
|
2022-01-13 00:22:16 +03:00
|
|
|
|
2022-01-18 16:20:19 +03:00
|
|
|
# e.g. robotestagw3dcxmd66r4rgksb4nmmr43fh77bzn2ia2eucduyeafnyd.onion
|
|
|
|
ONION_LOCATION = ''
|
|
|
|
|
2024-04-30 01:58:03 +03:00
|
|
|
# Geoblocked countries (will reject F2F trades).
|
|
|
|
# List of A3 country codes (see fhttps://en.wikipedia.org/wiki/ISO_3166-1_alpha-3)
|
|
|
|
# Leave empty '' to allow all countries.
|
|
|
|
# Example 'NOR,USA,CZE'.
|
|
|
|
GEOBLOCKED_COUNTRIES = 'ABW,AFG,AGO'
|
|
|
|
|
2022-02-12 16:59:59 +03:00
|
|
|
# Link to robosats alternative site (shown in frontend in statsfornerds so users can switch mainnet/testnet)
|
|
|
|
ALTERNATIVE_SITE = 'RoboSats6tkf3eva7x2voqso3a5wcorsnw34jveyxfqi2fu7oyheasid.onion'
|
|
|
|
ALTERNATIVE_NAME = 'RoboSats Mainnet'
|
2022-01-31 22:12:49 +03:00
|
|
|
|
2022-02-22 02:41:36 +03:00
|
|
|
# Telegram bot token
|
|
|
|
TELEGRAM_TOKEN = ''
|
2023-11-06 17:01:56 +03:00
|
|
|
TELEGRAM_BOT_NAME = 'RoboCoordinatorNotificationBot'
|
2024-03-28 04:23:24 +03:00
|
|
|
# Telegram chat id to receive admin notifications
|
|
|
|
TELEGRAM_COORDINATOR_CHAT_ID = 'AdminNotificationChatId'
|
2023-03-27 12:37:36 +03:00
|
|
|
# Notify new messages in-chat app (fiat exchange step) if at least X minutes has passed since the last chat message.
|
|
|
|
CHAT_NOTIFICATION_TIMEGAP = 5
|
2022-02-22 02:41:36 +03:00
|
|
|
|
2023-09-08 18:33:00 +03:00
|
|
|
# Maintainance notice or and other coordinator messages on client start
|
|
|
|
# Style of the notice on the client app, use None for no notice: 'none' | 'warning' | 'success' | 'error' | 'info'
|
|
|
|
NOTICE_SEVERITY = 'none'
|
|
|
|
NOTICE_MESSAGE = ''
|
|
|
|
|
2022-01-31 22:12:49 +03:00
|
|
|
# Lightning node open info, url to amboss and 1ML
|
2022-02-13 20:55:44 +03:00
|
|
|
NETWORK = 'testnet'
|
2022-02-12 16:59:59 +03:00
|
|
|
NODE_ALIAS = '🤖RoboSats⚡(RoboDevs)'
|
|
|
|
NODE_ID = '033b58d7......'
|
2022-01-31 22:12:49 +03:00
|
|
|
|
2022-03-03 15:47:55 +03:00
|
|
|
# Total trade fee as fraction
|
2022-01-06 19:54:37 +03:00
|
|
|
FEE = 0.002
|
2022-03-03 15:47:55 +03:00
|
|
|
# Maker/taker fee split. As seen in https://bisq.wiki/Trading_fees . It is implicit that TAKER_FEE_SPLIT = (1 - MAKER_FEE_SPLIT)
|
|
|
|
# Shall incentivize order making
|
|
|
|
MAKER_FEE_SPLIT=0.125
|
|
|
|
|
2023-05-16 20:12:15 +03:00
|
|
|
# Robosats Development Fund donation as fraction. 0.2 = 20% of successful orders proceeds are donated via keysend.
|
|
|
|
# Donations to the devfund are important for the sustainabilty of the project, however, these are totally optional (you
|
|
|
|
# can run a coordinator without donating devfund!). Coordinators with higher devfund donations % will be more prominently
|
|
|
|
# displayed (and have special badges), while coordinators that do not donate might eventually lose frontend/client support.
|
|
|
|
# Leaving the default value (20%) will grant the DevFund contributor badge.
|
|
|
|
DEVFUND = 0.2
|
|
|
|
|
2022-01-11 02:27:48 +03:00
|
|
|
# Time out penalty for canceling takers in SECONDS
|
|
|
|
PENALTY_TIMEOUT = 60
|
2022-01-24 00:12:30 +03:00
|
|
|
# Time between routing attempts of buyer invoice in MINUTES
|
2022-06-09 13:56:17 +03:00
|
|
|
RETRY_TIME = 1
|
2022-01-06 19:54:37 +03:00
|
|
|
|
2023-09-11 19:24:03 +03:00
|
|
|
# Store Order Logs in DB. Verbose logging for each order as property of the order object in DB. Useful for debugging and for learning
|
|
|
|
# the order flow for new robosats coordinators (prints a pretty timestamped table on the coordinator panel on each order). But a bit heavy
|
|
|
|
# on write operations and can potentially affect performance for every request.
|
|
|
|
DISABLE_ORDER_LOGS = False
|
|
|
|
|
|
|
|
# Coordinator activity limits
|
2022-02-25 23:08:22 +03:00
|
|
|
MAX_PUBLIC_ORDERS = 100
|
|
|
|
|
2023-10-10 15:48:05 +03:00
|
|
|
# Coordinator Order size limits in Satoshi
|
|
|
|
# Minimum order size (must be bigger than DB constrain in /robosats/settings.py MIN_TRADE, currently 20_000 Sats)
|
|
|
|
MIN_ORDER_SIZE = 20000
|
|
|
|
# Minimum order size (must be smaller than DB constrain in /robosats/settings.py MAX_TRADE, currently 5_000_000 Sats)
|
2024-01-09 17:36:27 +03:00
|
|
|
MAX_ORDER_SIZE = 500000
|
2022-01-06 19:54:37 +03:00
|
|
|
|
2022-07-31 17:35:12 +03:00
|
|
|
# For CLTV_expiry calculation
|
2022-07-21 16:19:47 +03:00
|
|
|
# Assume 8 min/block assumed
|
|
|
|
BLOCK_TIME = 8
|
|
|
|
# Safety multiplier in case of mining speed up (CLTV expiry will be times X larger than real time needs for locked bonds/escrow)
|
|
|
|
MAX_MINING_NETWORK_SPEEDUP_EXPECTED = 1.7
|
2022-01-08 03:29:04 +03:00
|
|
|
|
2022-01-12 03:02:17 +03:00
|
|
|
# Expiration time for locking collateral in SECONDS
|
2022-07-31 17:35:12 +03:00
|
|
|
EXP_MAKER_BOND_INVOICE = 300
|
2022-01-08 03:29:04 +03:00
|
|
|
EXP_TAKER_BOND_INVOICE = 200
|
2022-01-12 03:02:17 +03:00
|
|
|
|
2022-06-05 19:15:40 +03:00
|
|
|
# ROUTING
|
2022-01-30 16:18:32 +03:00
|
|
|
# Proportional routing fee limit (fraction of total payout: % / 100)
|
2022-06-06 00:16:03 +03:00
|
|
|
PROPORTIONAL_ROUTING_FEE_LIMIT = 0.001
|
2022-01-30 16:18:32 +03:00
|
|
|
# Base flat limit fee for routing in Sats (used only when proportional is lower than this)
|
|
|
|
MIN_FLAT_ROUTING_FEE_LIMIT = 10
|
2022-03-06 21:10:05 +03:00
|
|
|
MIN_FLAT_ROUTING_FEE_LIMIT_REWARD = 2
|
2022-06-05 19:15:40 +03:00
|
|
|
# Routing timeouts
|
2022-07-10 14:04:27 +03:00
|
|
|
REWARDS_TIMEOUT_SECONDS = 30
|
2022-06-16 18:31:30 +03:00
|
|
|
PAYOUT_TIMEOUT_SECONDS = 90
|
2023-04-25 13:13:28 +03:00
|
|
|
DEBUG_PERMISSIONED_PAYOUTS = False
|
2022-01-30 16:18:32 +03:00
|
|
|
|
2023-05-16 20:12:15 +03:00
|
|
|
# Allow self keysend on keysend function (set true to debug keysend functionality)
|
|
|
|
ALLOW_SELF_KEYSEND = False
|
|
|
|
|
2022-06-06 00:16:03 +03:00
|
|
|
# REVERSE SUBMARINE SWAP PAYOUTS
|
2022-06-16 18:31:30 +03:00
|
|
|
# Disable on-the-fly swaps feature
|
|
|
|
DISABLE_ONCHAIN = False
|
2023-03-14 22:54:31 +03:00
|
|
|
MAX_SWAP_ALLOWED = 500000
|
2022-06-08 01:14:56 +03:00
|
|
|
# Shape of fee to available liquidity curve. Either "linear" or "exponential"
|
|
|
|
SWAP_FEE_SHAPE = 'exponential'
|
|
|
|
# EXPONENTIAL. fee (%) = MIN_SWAP_FEE + (MAX_SWAP_FEE - MIN_SWAP_FEE) * e ^ (-LAMBDA * onchain_liquidity_fraction)
|
|
|
|
SWAP_LAMBDA = 8.8
|
2022-07-31 17:35:12 +03:00
|
|
|
# LINEAR. 4 parameters needed: min/max fees and min/max balance points. E.g. If 25% or more of liquidity
|
2022-06-06 00:16:03 +03:00
|
|
|
# is onchain the fee for swap is 2% (minimum), if it is 12% fee is 6%, and for 0% fee is 10%.
|
2022-06-08 01:14:56 +03:00
|
|
|
# Minimum swap fee as fraction (1%)
|
2023-05-15 12:46:59 +03:00
|
|
|
MIN_SWAP_FEE = 0.008
|
2022-06-06 00:16:03 +03:00
|
|
|
# Liquidity split point (LN/onchain) at which we use MIN_SWAP_FEE
|
2022-06-08 01:14:56 +03:00
|
|
|
MIN_SWAP_POINT = 0.35
|
2022-06-06 00:16:03 +03:00
|
|
|
# Maximum swap fee as fraction (~10%)
|
|
|
|
MAX_SWAP_FEE = 0.1
|
|
|
|
# Liquidity split point (LN/onchain) at which we use MAX_SWAP_FEE
|
|
|
|
MAX_SWAP_POINT = 0
|
2023-03-18 13:39:37 +03:00
|
|
|
# Min and Max amount allowed for Swap
|
2022-07-21 16:19:47 +03:00
|
|
|
MIN_SWAP_AMOUNT = 10000
|
2023-03-18 13:39:37 +03:00
|
|
|
MAX_SWAP_AMOUNT = 1000000
|
2023-03-10 15:52:33 +03:00
|
|
|
# Spend Unconfirmed UTXOS (more capital efficient, more risky)
|
|
|
|
SPEND_UNCONFIRMED = False
|
2023-03-18 13:39:37 +03:00
|
|
|
# Mining fee confirmation target
|
|
|
|
SUGGESTED_TARGET_CONF = 4
|
|
|
|
MINIMUM_TARGET_CONF = 24
|
2022-01-30 16:18:32 +03:00
|
|
|
|
2022-03-08 00:46:52 +03:00
|
|
|
# Fraction rewarded to user from the slashed bond of a counterpart.
|
|
|
|
# It should not be close to 1, or could be exploited by an attacker trading with himself to DDOS the LN node.
|
|
|
|
SLASHED_BOND_REWARD_SPLIT = 0.5
|
2022-03-05 21:43:15 +03:00
|
|
|
|
2022-01-06 19:54:37 +03:00
|
|
|
# Username for HTLCs escrows
|
2023-11-18 15:48:57 +03:00
|
|
|
ESCROW_USERNAME = 'admin'
|