A decentralized bitcoin exchange network
Find a file
Chris Beams 3a6b0ce9d8
Normalize creation of appDataDir and subdirs
Prior to this commit, the way that the appDataDir and its subdirectories
were created was a haphazard process that worked but in a fragile and
non-obvious way. When Config was instantiated, an attempt to call
btcNetworkDir.mkdir() was made, but if appDataDir did not already exist,
this call would always fail because mkdir() does not create parent
directories. This problem was never detected, though, because the
KeyStorage class happened to call mkdirs() on its 'keys' subdirectory,
which, because of the plural mkdirs() call ended up creating the whole
${appDataDir}/${btcNetworkDir}/keys hierarchy. Other btcNetworkDir
subdirectories such as tor/ and db/ then benefited from the hierarchy
already existing when they attempted to call mkdir() for their own dirs.
So the whole arrangement worked only because KeyStorage happened to make
a mkdirs() call and because that code in KeyStorage happened to get
invoked before the code that managed the other subdirectories.

This change ensures that appDataDir and all its subdirectories are
created up front, such that they are guaranteed to exist by the time
they are injected into Storage, KeyStorage, WalletsSetup and TorSetup.
The hierarchy is unchanged, structured as it always has been:

    ${appDataDir}
    └── btc_mainnet
        ├── db
        ├── keys
        ├── wallet
        └── tor

Note that the tor/ subdirectory actually gets deleted and re-created
within the TorSetup infrastructure regardless of whether the directory
exists beforehand.
2020-01-20 16:46:57 +01:00
.github Close PRs that are inactive for more than 30 days 2019-12-09 12:08:22 +01:00
.idea Introduce Config as replacement for BisqEnvironment 2020-01-20 16:37:54 +01:00
assets/src List LBRY Credits (LBC) 2019-10-18 07:33:38 -06: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 Normalize creation of appDataDir and subdirs 2020-01-20 16:46:57 +01:00
core Normalize creation of appDataDir and subdirs 2020-01-20 16:46:57 +01:00
daemon/src/main/java Remove now unused BisqEnvironment class 2020-01-20 16:41:19 +01:00
desktop Remove TestConfig in favor of reworked Config ctors 2020-01-20 16:46:57 +01: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 Remove now unused BtcOptionKeys class 2020-01-20 16:40:29 +01:00
p2p/src Normalize creation of appDataDir and subdirs 2020-01-20 16:46:57 +01:00
pricenode Replace bouncycastle Hex with guava Hex 2019-09-03 13:54:32 +02:00
relay Also revert to SNAPSHOT version for relay 2020-01-09 19:45:29 +01:00
scripts Add shell script for creating DAO genesis transaction 2019-06-24 13:15:37 -07:00
seednode Remove TestConfig in favor of reworked Config ctors 2020-01-20 16:46:57 +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 Eliminate dependency on Spring Framework 2020-01-20 16:46:56 +01:00
CODEOWNERS Update node operators 2019-05-14 14:25:26 +02: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.