Skip to content
This repository has been archived by the owner on Jun 15, 2021. It is now read-only.

Commit

Permalink
Update run-price-relay-node.adoc
Browse files Browse the repository at this point in the history
Fix some typos + some corrections
  • Loading branch information
HarryMacfinned authored Jun 8, 2018
1 parent bf5d0f8 commit e01a933
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions exchange/howto/run-price-relay-node.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,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.

Expand All @@ -41,9 +41,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.

Expand All @@ -52,8 +52,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
Expand Down Expand Up @@ -154,7 +154,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
Expand Down

0 comments on commit e01a933

Please sign in to comment.