A decentralized bitcoin exchange network
Go to file
2014-09-25 19:39:48 +02:00
.idea fixed app dir problem with update to gradle. 2014-08-28 18:24:42 +02:00
doc Update screenshots 2014-09-05 20:44:07 +02:00
gradle/wrapper Generate Gradle wrapper artifacts 2014-08-28 13:56:04 +02:00
src Use CopyOnWriteArrayList for listeners 2014-09-25 19:39:48 +02:00
.gitignore Remove Maven pom 2014-08-28 13:56:06 +02:00
build.gradle Update to controlsFX 8.0.6 2014-09-03 23:33:00 +02:00
gradlew Generate Gradle wrapper artifacts 2014-08-28 13:56:04 +02:00
gradlew.bat Generate Gradle wrapper artifacts 2014-08-28 13:56:04 +02:00
LICENSE add basic wallet, update nav buttons, move unused img 2014-04-24 16:55:55 +02:00
README.md Change Maven to Gradle 2014-09-24 10:46:50 +02:00

Bitsquare Logo

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 Gradle.
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 or 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!

Resources:

Communication channels: