A decentralized bitcoin exchange network
Go to file
chimp1984 5c02ce5766
Introduce gRPC API proof of concept
This commit introduces a new `grpc` module including the following key
types:

 - BisqGrpcServer: The API implementation itself, along with generated
   gRPC Response/Reploy types defined in grpc/src/main/proto/grpc.proto.

 - BisqGrpcServerMain: A 'headless' / daemon-like entry point for
   running a Bisq node without the JavaFX desktop UI.

 - BisqGrpcClient: A simple, repl-style client for the API that allows
   the user to exercise the various endpoints as seen in the example
   below.

In the `desktop` module, the BisqAppMain class has been modified to
start a BisqGrpcServer instance if the `--desktopWithGrpcApi` option has
been set to `true`.

In the `core` module, a new `CoreApi` class has been introduced
providing a kind of comprehensive facade for all Bisq functionality to
be exposed via the RPC API.

How to explore the proof of concept:

 1. Run the main() method in BisqAppMain providing
 `--desktopWithGrpcApi=true` as a program argument or alternatively, run
 the main() method in BisqGrpcServerMain, where no special option is
 required. In either case, you'll notice the following entry in the log
 output:

    INFO  bisq.grpc.BisqGrpcServer: Server started, listening on 8888

 2. Now run the main() method in BisqGrpcClient. Once it has started up
 you are connected to the gRPC server started in step 1 above. To
 exercise the API, type `getVersion` via stdin and hit return. You
 should see the following response:

    INFO bisq.grpc.BisqGrpcClient - 1.2.4

 Likewise, you can type `getBalance` and you'll see the following
 response:

    INFO bisq.grpc.BisqGrpcClient - 0.00 BTC

 and so forth for each of the implemented endpoints. For a list of
 implemented endpoints, see BisqGrpcServer.start().

Note once again that the code here is merely a proof of concept and
should not be considered complete or production-ready in any way. In a
subsequent commit, the `--desktopWithGrpcApi` option will be disabled in
order to avoid any potential production use.

The content of this commit is the result of squashing a number of
commits originally authored by chimp1984 in the `chimp1984` fork's `grpc`
branch.

Co-authored-by: Chris Beams <chris@beams.io>
2020-01-10 19:48:26 +01:00
.github Close PRs that are inactive for more than 30 days 2019-12-09 12:08:22 +01:00
.idea Release/v1.2.0 (#3532) 2019-10-31 12:49:26 +01:00
assets/src List LBRY Credits (LBC) 2019-10-18 07:33:38 -06:00
common/src Reuse temp file names to fix a memory leak caused by deleteOnExit() 2019-12-20 23:29:06 +00:00
core Introduce gRPC API proof of concept 2020-01-10 19:48:26 +01:00
desktop Introduce gRPC API proof of concept 2020-01-10 19:48:26 +01:00
docs Merge pull request #3713 from beingindot/beingindot-daosetup-change 2019-12-06 16:24:26 +01:00
gradle Introduce gRPC API proof of concept 2020-01-10 19:48:26 +01:00
grpc/src/main Introduce gRPC API proof of concept 2020-01-10 19:48:26 +01:00
monitor Remove @Nullable around persistableNetworkPayloadSet 2019-12-03 12:20:41 -08:00
p2p/src Revert "Apply kotlin plugin and convert one unused class to kotlin" 2020-01-10 19:48:26 +01:00
pricenode Replace bouncycastle Hex with guava Hex 2019-09-03 13:54:32 +02:00
relay Revert to SNAPSHOT version 2019-12-05 12:23:57 +01:00
scripts Add shell script for creating DAO genesis transaction 2019-06-24 13:15:37 -07:00
seednode Set bisq-seednode.env java heap size and seednode max memory to 4GB 2020-01-05 22:48:56 +09:00
statsnode/src/main Sync up code with SeedNodeMain 2019-04-16 18:00:09 -05:00
.editorconfig Do not strip trailing whitespace in Git diffs 2020-01-10 19:48:26 +01:00
.gitattributes Add .gitattributes file 2018-11-15 22:34:05 -08:00
.gitignore Ignore Structure101 Workspace files 2020-01-10 19:48:26 +01:00
.travis.yml Reformat travis config 2019-08-27 10:44:14 +02:00
build.gradle Introduce gRPC API proof of concept 2020-01-10 19:48:26 +01:00
CODEOWNERS Update node operators 2019-05-14 14:25:26 +02:00
CONTRIBUTING.md Add re-review text to Contributing Doc 2019-11-26 07:39:50 -08:00
gradle.properties Increase Gradle HTTP timeouts from 30 => 120 seconds 2018-03-22 10:39:52 +01:00
gradlew Bump gradle wrapper to version 5.6.4 (#3627) 2019-11-18 09:31:58 +01:00
gradlew.bat Bump gradle wrapper to version 5.6.4 (#3627) 2019-11-18 09:31:58 +01:00
LICENSE add basic wallet, update nav buttons, move unused img 2014-04-24 16:55:55 +02:00
Makefile Add 'make undeploy' target to kill all running nodes 2019-12-03 12:04:39 +01:00
pull_request_template.md Added a Pull Request template 2019-11-27 13:46:54 +01:00
README.md jdk10 is no longer needed to build and run the test suite 2019-08-14 18:11:57 +02:00
settings.gradle Introduce gRPC API proof of concept 2020-01-10 19:48:26 +01:00

Bisq

Build Status

What is Bisq?

Bisq is a safe, private and decentralized way to exchange bitcoin for national currencies and other digital assets. Bisq uses peer-to-peer networking and multi-signature escrow to facilitate trading without a third party. Bisq is non-custodial and incorporates a human arbitration system to resolve disputes.

To learn more, see the doc and video at https://bisq.network/intro.

Get started using Bisq

Follow the step-by-step instructions at https://bisq.network/get-started.

Contribute to Bisq

See CONTRIBUTING.md and the developer docs.