A decentralized bitcoin exchange network
Go to file
Dominykas Mostauskis f895da416f
Add local Bitcoin node configuration detection
Refactors LocalBitcoinNode and adds detection for local Bitcoin node's
configuration, namely, whether it is pruning and whether it has bloom
filter queries enabled.

The local node's configuration (and its presence) is retrieved by
performing a Bitcoin protocol handshake, which includes the local
Bitcoin node sending us its version message (VersionMessage in
BitcoinJ), which contains the information we're interested in.

Due to some quirky BitcoinJ logic, sometimes the handshake is
interrupted, even though we have received the local node's version
message. That contributes to the handshake handling in LocalBitcoinNode
being a bit complicated.

Refactoring consists of two principle changes: the public interface is
split into methods that trigger checks and methods that retrieve the
cached results. The methods that trigger checks have names starting
with "check", and methods that retrieve the cached results have names
that start with "is".

The other major refactor is the use of Optional<Boolean> instead of
boolean for storing and returning the results, an empty Optional
signifying that the relevant check was not yet performed. Switching to
Optionals has caused other code that queries LocalBitcoinNode to throw
an exception in case the query is made before the checks are. Before,
the results were instantiated to "false" and that would be returned
in case the query was made before the checks completed. This change has
revealed one occasion (Preferences class) where this happens.
2020-02-18 00:34:58 +02:00
.github Exclude issues labeled a:feature of becoming stale 2020-02-17 10:43:05 +01:00
.idea Introduce Config as replacement for BisqEnvironment 2020-01-20 16:37:54 +01:00
assets/src Add test for Liquid Bitcoin and improve error handling 2020-02-11 17:31:43 +01:00
cli/src/main/java/bisq/cli/app Reflect higher security deposit in placeOffer RPC comment 2020-01-20 12:58:13 +01:00
common/src Merge pull request #3971 from bisq-network/release/v1.2.7 2020-02-17 13:05:03 +01:00
core Add local Bitcoin node configuration detection 2020-02-18 00:34:58 +02:00
daemon/src/main/java Remove now unused BisqEnvironment class 2020-01-20 16:41:19 +01:00
desktop Add local Bitcoin node configuration detection 2020-02-18 00:34:58 +02:00
docs Merge pull request #3713 from beingindot/beingindot-daosetup-change 2019-12-06 16:24:26 +01:00
gradle Eliminate dependency on Spring Framework 2020-01-20 16:46:56 +01:00
monitor Introduce Config testing facilities 2020-01-20 16:47:53 +01:00
p2p/src Update data stores 2020-02-12 09:34:27 +01:00
pricenode Replace bouncycastle Hex with guava Hex 2019-09-03 13:54:32 +02:00
relay Revert to SNAPSHOT version 2020-02-14 13:02:52 +01:00
scripts Add shell script for creating DAO genesis transaction 2019-06-24 13:15:37 -07:00
seednode Merge pull request #3971 from bisq-network/release/v1.2.7 2020-02-17 13:05:03 +01:00
statsnode/src/main Remove now unused BisqExecutable option handling 2020-01-20 16:46:56 +01:00
.editorconfig Do not strip trailing whitespace in Git diffs 2020-01-10 19:48:26 +01:00
.gitattributes Add .gitattributes file 2018-11-15 22:34:05 -08:00
.gitignore Ignore Structure101 Workspace files 2020-01-10 19:48:26 +01:00
.travis.yml Reformat travis config 2019-08-27 10:44:14 +02:00
build.gradle Revert to SNAPSHOT version 2020-02-14 13:02:52 +01:00
CODEOWNERS Add wiz as codeowner for seednode configuration changes 2020-01-27 16:50:15 +01:00
CONTRIBUTING.md Add re-review text to Contributing Doc 2019-11-26 07:39:50 -08:00
gradle.properties Increase Gradle HTTP timeouts from 30 => 120 seconds 2018-03-22 10:39:52 +01:00
gradlew Bump gradle wrapper to version 5.6.4 (#3627) 2019-11-18 09:31:58 +01:00
gradlew.bat Bump gradle wrapper to version 5.6.4 (#3627) 2019-11-18 09:31:58 +01:00
LICENSE add basic wallet, update nav buttons, move unused img 2014-04-24 16:55:55 +02:00
Makefile Add 'make undeploy' target to kill all running nodes 2019-12-03 12:04:39 +01:00
pull_request_template.md Added a Pull Request template 2019-11-27 13:46:54 +01:00
README.md jdk10 is no longer needed to build and run the test suite 2019-08-14 18:11:57 +02:00
settings.gradle Rename submodule grpc => daemon 2020-01-20 12:13:30 +01:00

Bisq

Build Status

What is Bisq?

Bisq is a safe, private and decentralized way to exchange bitcoin for national currencies and other digital assets. Bisq uses peer-to-peer networking and multi-signature escrow to facilitate trading without a third party. Bisq is non-custodial and incorporates a human arbitration system to resolve disputes.

To learn more, see the doc and video at https://bisq.network/intro.

Get started using Bisq

Follow the step-by-step instructions at https://bisq.network/get-started.

Contribute to Bisq

See CONTRIBUTING.md and the developer docs.