Chris Beams 58335f036e
Merge branch 'cbeams'
Overview of major changes:

 - Introduce top-level `viewfx` package for general-purpose MVVM-style
   infrastructure classes. Note that this package naming will likely
   change, especially if and when we extract it to a physically-separate
   library.

 - Introduce View and Model class hierarchies that capture the various
   lifecycle and model management concerns throughout the existing
   Bitsquare application (see `viewfx.view` and `viewfx.model` packages)

 - Introduce @FxmlView and FxmlViewLoader to support declarative,
   convention-over-configuration support for FXML-based views.
   Eventually, this approach will allow for seamless mixing of FXML- and
   non-FXML based view implementations within the same application.

 - Introduce a type-safe approach to intra-view navigation: eliminate
   the Navigation.Item enum in favor of navigating directly from one
   view to another using *View class literals. This change is closely
   tied to the @FxmlView approach described above.

Many additional smaller changes are included as well; see individual
commits for details.

* cbeams: (75 commits)
  Rename viewfx.view.support.guice.{Guice=>Injector}ViewFactory
  Use instanceof checks on views instead of class equality
  Add CachingViewLoaderTests
  Revert "Remove System#exit call from BitsquareApp#stop"
  Change signature of ViewLoader#load to accept Class
  Complete implementation and testing of @FxmlView support
  Remove System#exit call from BitsquareApp#stop
  fix checkArgument
  Use irc instead of fiat classes
  Remove hardcoded path from ViewLoaderTests
  Fix conditional logic in AccountView#activate
  Polish AccountSettingsView
  Introduce @FxmlView, replace Navigation.Item
  Begin refactoring Navigation
  Rename enum gui.{Navigation#Item => FxmlView}
  Introduce viewfx.view.support.CachingViewLoader
  Extract ViewLoader interface and introduce FxmlViewLoader
  Fix broken tests and app exceptions due to ViewLoader changes
  Bind ViewFactory interface to GuiceViewFactory impl
  Move i.b.gui.ViewLoader.java => viewfx.view.support.ViewLoader
  ...
2014-11-26 20:02:18 +01:00
2014-11-25 22:08:50 +01:00
2014-11-26 20:02:18 +01:00
2014-11-05 01:13:24 +01:00
2014-08-28 13:56:04 +02:00
2014-08-28 13:56:04 +02: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.

Description
Decentralized P2P exchange built on Monero and Tor
Readme AGPL-3.0 376 MiB
Languages
Java 97.9%
Shell 1%
CSS 0.9%
Makefile 0.2%