Providing an explicit default using the #defaultsTo method ends up short-circuiting the Spring Environment's hierarchical property resolution process. for example, if --port.useManualPortForwarding has a default value of `false`, then the command line property source always returns a value when its #getProperty method is invoked by the Environment. This means that a lower-precedence property source never has the opportunity to return its value. For example, if port.useManualPortForwarding had been set to true in the filesystem property source (at ${user.data.dir}/bitsquare.properties), this property value would never be resolved because the default command line property source always overrides it (thus the notion of "short circuiting" above). This change eliminates the use of JOpt's #defaultsTo method in favor of a simple approach to advertising default values (if any) in the option's description string. The result is --help output that reads exactly the same as it did before, but no actual default value is set at the command line property source level. Note that the default property source is still created, and default values are still assigned in BitsquareEnvironment#defaultPropertySource. This property source has the lowest precedence, and this means that any and all other property sources have the opportunity to provide a value and override the default. |
||
---|---|---|
.idea | ||
doc | ||
gradle/wrapper | ||
package | ||
src | ||
.gitignore | ||
.travis.yml | ||
build.gradle | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md |

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
- Install the latest JDK (8u20 or better)
- Clone this repository
- 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:
- The Bitsquare Website
- The #bitsquare IRC channel on Freenode (logs)
- Our mailing list
- @bitsquare_ on Twitter
- Get in contact with us
- GitHub Issues
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:
- Publish your changes under the same license, so as to ensure the software remains free.
- 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.