Decentralized P2P exchange built on Monero and Tor
Find a file
Chris Beams 98505246b1
Revert "Remove System#exit call from BitsquareApp#stop"
This reverts commit 78d3da0c4e17ce356905c3b745d9773eb458988e.

Because while eliminating the call to System#exit does mean that
JavaFX's LauncherImpl can properly report errors and stack traces, it
also means that Bitsquare never shuts down (probably due to non-daemon
threads). When System#exit is removed (or replaced with Platform#exit),
closing the Bitsquare window (or clicking Exit from the system tray menu)
results in the application no longer being able to function at the UI
level (because the JavaFX toolkit has essentially been shut down), but
the process does not exit either.

So in the meantime, this change is being reverted, and we just have to
deal with not getting stack traces at the command line when uncaught
exceptions bubble up through the #start method (specifically, exceptions
that occur before the UncaughtExceptionHandler has had a chance to be
set).

A solution to this could be to provide a custom subclass of JavaFX's own
Application class that implements a template #start / #doStart methods
trying and catching anything that is raised from #doStart and printing
the stack trace on its own.
2014-11-25 22:12:34 +01:00
.idea Introduce top-level viewfx package 2014-11-25 22:08:50 +01:00
doc Allow configurability of bitcoin network with --bitcoin.network 2014-11-10 15:42:16 +01:00
gradle/wrapper Remove use of Gradle JavaFX plugin 2014-10-13 11:13:43 +02:00
package Hard-code path JDK in package/windows.bat 2014-11-22 09:04:02 +01:00
src Revert "Remove System#exit call from BitsquareApp#stop" 2014-11-25 22:12:34 +01:00
.gitignore Ignore Structure101 files 2014-11-05 01:13:24 +01:00
.travis.yml Use Xvfb to avoid 'cannot open display' warnings 2014-11-05 01:41:14 +01:00
build.gradle Complete implementation and testing of @FxmlView support 2014-11-25 22:12:33 +01: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 Add 'appJar' and 'bootstapNodeJar' tasks to build 2014-11-11 23:53:32 +01:00

Build Status Coverage Status

What is Bitsquare?

Bitsquare is a cross-platform desktop application that allows users to trade fiat money (dollars, euros, etc) for bitcoin without relying on centralized exchanges such as Coinbase, Bitstamp or (the former) Mt. Gox.

By running Bitsquare on their local machines, users form a peer-to-peer network. Offers to buy and sell bitcoin are broadcast to that network, and through the process of offering and accepting these trades via the Bitsquare UI, a market is established.

There are no central points of control or failure in the Bitsquare network. There are no trusted third parties. When two parties agree to trade fiat money for bitcoin, the bitcoin to be bought or sold is held in escrow using multisignature transaction capabilities native to the bitcoin protocol.

Because the fiat money portion of any trade must be transferred via traditional means such as a wire transfer, Bitsquare incorporates first-class support for human arbitration to resolve any errors or disputes.

You can read about all of this and more in the overview, whitepaper, arbitration and risk analysis documents. Several screencasts are available as well.

Status

Pre-alpha and under heavy development.

Building from source

  1. Install the latest JDK (8u20 or better)
  2. Clone this repository
  3. Build and launch the Bitsquare JavaFX client by running:
./gradlew run

Pass command line arguments to the app via the Gradle -Pargs property as follows:

./gradlew run -Pargs="--help"

Or, build an executable jar with the appJar task:

./gradlew appJar

Run the app as follows:

java -jar build/libs/bitsquare-<version>-app.jar

Pass the --help flag to see what options are available:

java -jar build/libs/bitsquare-<version>-app.jar --help

To build a headless bootstrap node jar, run the bootstrapNodeJar task:

./gradlew bootstrapNodeJar

Run the bootstrap node:

java -jar build/libs/bitsquare-<version>-bootstrapNode.jar

See doc/build.md for additional information.

Staying in Touch

Contact the team and keep up to date using any of the following:

License

Bitsquare is free software, licensed under version 3 of the GNU Affero General Public License.

In short, this means you are free to fork this repository and do anything with it that you please. However, if you distribute your changes, i.e. create your own build of the software and make it available for others to use, you must:

  1. Publish your changes under the same license, so as to ensure the software remains free.
  2. Use a name and logo substantially different than "Bitsquare" and the Bitsquare logo seen here. This allows for competition without confusion.

See LICENSE for complete details.