.idea | ||
doc | ||
gradle/wrapper | ||
src | ||
.gitignore | ||
build.gradle | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md |
About
Bitsquare is a P2P Fiat-BTC Exchange.
It allows to trade fiat money (USD, EURO, ...) for Bitcoins without relying on a centralized exchange like Coinbase or BitStamp.
Instead, all participants form a peer to peer market.
Dependencies
The project use Java 8 and Maven.
We use the BitcoinJ library and TomP2P for DHT and direct messaging.
Development setup
Build the 2 master branches of the external libraries:
We use that fork from the actual TomP2P master branch.
You need to check that branch out and deploy it to the local maven repository.
Build the project with:
mvn clean install -DskipTests (DskipTests because some unit tests are failing in the master branch)
We use also that fork of the latest BitcoinJ master branch.
You need to check that branch out as well and deploy it to the local maven repository.
Build the project with:
mvn clean install
Regtest mode for local testing
For local testing it is best to use the regtest mode from the Bitcoin QT client.
You need to edit (or first create inside the bitcoin data directory) the bitcoin.config file and set regtest=1.
Here are the typical locations for the data directory:
Windows:
%APPDATA%\Bitcoin\
(XP) C:\Documents and Settings\username\Application Data\Bitcoin\bitcoin.conf
(Vista, 7) C:\Users\username\AppData\Roaming\Bitcoin\bitcoin.conf
Linux:
$HOME/.bitcoin/
/home/username/.bitcoin/bitcoin.conf
Mac OSX:
$HOME/Library/Application Support/Bitcoin/
/Users/username/Library/Application Support/Bitcoin/bitcoin.conf
Take care if you have real bitcoins in your Bitcoin QT wallet (backup and copy first your data directory)!
More information about bitcoin.conf can be found here.
You can generate coins on demand with the Bitcoin QT client with the following command in the console (under the help menu you find the console window):
setgenerate true 101
101 is used only for the first start because of the coin maturity of 100 blocks. Later for mining of a single block you can use 1 as number of blocks to be created.
More information about the regtest mode can be found here.
The network mode is defined in the guice module (BitSquareModule) and is default set to regtest.
Testnet should also work, but was not tested for a while as for developing regtest is much more convenient.
Please don't use main net with real money, as the software is under heavy development and you can easily lose your funds!