2018-08-18 14:09:00 +02:00
|
|
|
include 'assets'
|
|
|
|
include 'common'
|
|
|
|
include 'p2p'
|
|
|
|
include 'core'
|
2019-11-20 21:04:34 +01:00
|
|
|
include 'cli'
|
2018-08-18 14:09:00 +02:00
|
|
|
include 'desktop'
|
2018-09-14 11:42:51 +02:00
|
|
|
include 'monitor'
|
2018-09-14 11:45:35 +02:00
|
|
|
include 'pricenode'
|
2018-09-14 11:48:49 +02:00
|
|
|
include 'relay'
|
2018-09-14 11:51:34 +02:00
|
|
|
include 'seednode'
|
2018-09-14 11:53:35 +02:00
|
|
|
include 'statsnode'
|
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>
2019-09-18 18:39:37 +02:00
|
|
|
include 'grpc'
|
2018-08-18 14:09:00 +02:00
|
|
|
|
|
|
|
rootProject.name = 'bisq'
|