mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-23 23:06:39 +01:00
A decentralized bitcoin exchange network
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. |
||
---|---|---|
.github | ||
.idea | ||
assets/src | ||
cli/src/main/java/bisq/cli/app | ||
common/src | ||
core | ||
daemon/src/main/java | ||
desktop | ||
docs | ||
gradle | ||
monitor | ||
p2p/src | ||
pricenode | ||
relay | ||
scripts | ||
seednode | ||
statsnode/src/main | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
build.gradle | ||
CODEOWNERS | ||
CONTRIBUTING.md | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
Makefile | ||
pull_request_template.md | ||
README.md | ||
settings.gradle |
Bisq
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.