diff --git a/exchange/howto/run-price-relay-node.adoc b/exchange/howto/run-price-relay-node.adoc index cb2e307..04eeed0 100644 --- a/exchange/howto/run-price-relay-node.adoc +++ b/exchange/howto/run-price-relay-node.adoc @@ -17,18 +17,18 @@ The mining fee estimation is delivered by: _Please note that the fee estimation function might get separated in the future into its own node._ -=== Background: +=== Background There are several reasons why the Bisq application does not connect directly to those providers: -. For Bitcoin Average it requires a paid subscription. The API key cannot be shared in an open source project. The requirement that each user would request and pay for an API key would be a usability killer. +. For Bitcoin Average, it requires a paid subscription. The API key cannot be shared in an open source project. The requirement that each user would request and pay for an API key would be a usability killer. -. Most providers are using Cloud Flare which require interactive Captchas to connect over Tor. API calls are not possible therefor with Tor. We want to use Tor by default for all network connections. +. Most providers are using Cloud Flare which require interactive Captchas to connect over Tor. API calls are not possible therefore with Tor. We want to use Tor by default for all network connections. For those 2 reasons we changed in earlier updates to the model of operating a price relay node running as Tor hidden service which connects to the service providers in clear net mode and contains the API key for Bitcoin Average. The price relay carries an important security aspect: + -If the trader is using a percentage based price in the offer the actual trade price will be calculated using the current market price taken from the market price providers. If a node would deliver wrong data it could lead to a wrong trade price. Both traders check the calculated price by themselves but if both are connected to the same malicious provider it would result in a wrong trade price. Connection is made randomly to one of the providers in the list. We have as well a check for the age of the price and if the price is older than 30 min. the market price will be ignored. If no price is available percentage based offers cannot be taken. A monitor service checking all price relay nodes and comparing their values for outliers is an important feature we need to add soon. +If the trader is using a percentage based price in the offer the actual trade price will be calculated using the current market price taken from the market price providers. If a node would deliver wrong data it could lead to a wrong trade price. Both traders check the calculated price by themselves but if both are connected to the same malicious provider it would result in a wrong trade price. Connection is made randomly to one of the providers in the list. We have as well a check for the age of the price and if the price is older than 30 min. the market price will be ignored. If no price is available, percentage based offers cannot be taken. A monitor service checking all price relay nodes and comparing their values for outliers is an important feature we need to add soon. The price relay is a simple http server and has to be set up to be accessible as Tor hidden service. Additionally if the operator wants he can open it to clear net (at least one clear net node is useful for supporting the regtest-without-tor dev setup for receiving market prices). We don't recommend to advertise the node address to not get traffic from non-Bisq users. There is no authentication scheme for Bisq users which make the service vulnerable for abuse of DDoS attacks. An authentication scheme for a P2P/open source environment is a challenge on its own but considered important to get explored further. @@ -40,9 +40,9 @@ But more critical is that if both nodes are offline percentage based offers cann == Price relay node operators -The price relay node addresses (onion address) are hard coded in the application but can be overruled if the user adds a price relay node address as program argument. Any user can run therefor their own price relay node and connect to it. Though they require an API key for Bitcoin Average (cost is 12.- or 35.- USD/month depending on plan). +The price relay node addresses (onion address) are hard coded in the application but can be overruled if the user adds a price relay node address as program argument. Any user can run therefore their own price relay node and connect to it. Though they require an API key for Bitcoin Average (cost is 12.- or 35.- USD/month depending on plan). -Some contributors of Bisq are running the default price relay nodes which are hard coded in the application. It requires a to set up a bond in BSQ to get the privilege to run a default price relay node and it requires that a certain quality of service is met. The operator also need to acquire an API key for Bitcoin Average. Currently we trust that all operators do their best to provide a reliable service without defining exactly the metrics for the quality of service. +Some contributors of Bisq are running the default price relay nodes which are hard coded in the application. It requires to set up a bond in BSQ to get the privilege to run a default price relay node and it requires that a certain quality of service is met. The operator also needs to acquire an API key for Bitcoin Average. Currently we trust that all operators do their best to provide a reliable service without defining exactly the metrics for the quality of service. Contributors running a price relay node will file a compensation request each month and get paid a fixed amount of BSQ for it if node availability was as expected. @@ -51,8 +51,8 @@ A default price relay node can be blocked by a network message in case the node === Duties of the price relay node operator -The operator of a price relay node need to be responsive in case of price relay node software updates as well to OS updates. If there are connectivity issues he need to investigate and if required upgrade his server (RAM, CPU). Requirements are rather low, we recommend 1 GB of RAM for one price relay node. He should check the error logs occasionally. He has to have a professional level of operational security to operate the node. -Operators need to subscribe to the Bisq Slack channel 'pricenode' and act if their node reports errors. +The operator of a price relay node needs to be responsive in case of price relay node software updates as well to OS updates. If there are connectivity issues he needs to investigate and if required upgrade his server (RAM, CPU). Requirements are rather low, we recommend 1 GB of RAM for one price relay node. He should check the error logs occasionally. He has to have a professional level of operational security to operate the node. +Operators need to subscribe to the Bisq Slack channel 'bisq-pricenode' and act if their node reports errors. == System requirements for hosting machine @@ -153,7 +153,7 @@ Optional: If you support clear net access, test it with your IP/domain. == Monitoring -Seed nodes are monitored in the Bisq Slack channel 'monitoring' and errors are sent to the 'pricenode' channel. Operators need to subscribe to the 'pricenode' channel and act if their node reports errors. +Seed nodes are monitored in the Bisq Slack channel 'bisq-monitor' and errors are sent to the 'bisq-pricenode' channel. Operators need to subscribe to the 'bisq-pricenode' channel and act if their node reports errors. == Bond