Commit Graph

389 Commits

Author SHA1 Message Date
Oscar Guindzberg
0d25ca1381
Remove okhttp and okio dependencies 2020-09-18 18:29:38 -03:00
Oscar Guindzberg
daaacecafb
Use bitcoinj 0.15.8 (commit 0d98efb) 2020-09-18 18:29:37 -03:00
Oscar Guindzberg
d0b00fb6f4
Use bitcoinj 0.15.8 (commit 0d7762b) 2020-09-18 18:29:36 -03:00
Oscar Guindzberg
b472e3851c
Update btcd-cli4j to 27b9433 2020-09-18 18:29:35 -03:00
Oscar Guindzberg
053b22f16f
Prevent seednode to use older guava version 2020-09-18 18:29:35 -03:00
Oscar Guindzberg
3aea094538
bitcoinj 0.15: bitcoinj exclude dependency bcprov-jdk15on because already included by bisq. 2020-09-18 18:29:27 -03:00
Oscar Guindzberg
41556f25df
bitcoinj 0.15: Update depencencies to match bitcoinj versions 2020-09-18 18:29:26 -03:00
Oscar Guindzberg
e9a8be372a
Use bitcoinj 0.15.8 (commit 86c7094) 2020-09-18 18:29:24 -03:00
Christoph Atteneder
81df879881
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.3.9
# Conflicts:
#	build.gradle
#	desktop/package/linux/Dockerfile
#	desktop/package/linux/package.sh
#	desktop/package/linux/release.sh
#	desktop/package/macosx/create_app.sh
#	desktop/package/macosx/finalize.sh
#	desktop/package/macosx/insert_snapshot_version.sh
#	desktop/package/windows/package.bat
#	desktop/package/windows/release.bat
#	relay/src/main/resources/version.txt
2020-09-16 16:52:54 +02:00
Christoph Atteneder
95dd561d91
Revert to SNAPSHOT version 2020-09-16 16:49:48 +02:00
Christoph Atteneder
06ac7a7605
Bump version number for v1.3.9 2020-09-16 15:58:58 +02:00
Christoph Atteneder
98b03937d8
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.3.8
# Conflicts:
#	core/src/main/java/bisq/core/support/dispute/agent/MultipleHolderNameDetection.java
#	core/src/main/java/bisq/core/trade/txproof/xmr/XmrTxProofService.java
2020-09-15 13:24:06 +02:00
Christoph Atteneder
5f957f0a64
Revert to SNAPSHOT version 2020-09-15 09:26:08 +02:00
Florian Reimair
e3193e5daf
Tor 0.4.3.6 2020-09-07 14:23:30 +02:00
Christoph Atteneder
ca88bc9b4f
Bump version number for v1.3.8 2020-09-03 17:34:34 +02:00
Christoph Atteneder
641240d8a0
Revert "Upgrade JFoenix to v9.0.10" 2020-09-02 15:27:06 +02:00
sqrrm
136da0c481
Merge pull request #4443 from ghubstan/upgrade-jfoenix
Upgrade JFoenix to v9.0.10
2020-08-31 16:41:47 +02:00
ghubstan
2d3b29a8f3
Upgrade JFoenix to v9.0.10
This commit & PR upgrades JFoenix from v9.0.6 to v9.0.10, to avoid an
NPE thrown when registering a DisputeAgent in an arbitartor (regtest)
desktop's account view.

The JFoenix com.jfoenix.adapters.ReflectionHelper class has a getField
method that silently swallows a Throwable and returns null.  After
clicking ALT-D or ALT-N in the an arbitrator's desktop -> accounts view
(to register dispute agents) a private field cannot be accessed via
reflection, and bisq.desktop.components.JFXTextFieldSkinBisqStyle#updateTextPos()
throws an NPE.

The cause of the NPE is due to a failure to create the textNode value
in the JFXTextFieldSkinBisqStyle constructor:
 textNode = ReflectionHelper.getFieldContent(TextFieldSkin.class, this, "textNode");

If this happens,the UI becomes unusable -- many views are blank.
2020-08-27 16:34:52 -03:00
cd2357
43cd6e9bf5
Exclude spot price provider tests by default
Exclude these tests from the default gradle test task. However, allow the option of having them included by specifying an optional gradle parameter (-Dtest.pricenode.includeSpotProviderTests=true).
2020-08-27 14:10:37 +02:00
ghubstan
d0397c1c62
Move gRPC boilerplate from :core to :daemon
This change moves gRPC boilerplate classes from the :core.grpc pkg
into a new :daemon.grpc pkg.

* The :core.grpc pkg was renamed :core.api, and no longer has any
  dependencies on gRPC libraries.

* All core service classes in the :core.api pkg are now package
  protected, excepting CoreApi, making CoreApi the only possible
  entry point for all Grpc*Service -> -Core*Service calls.

* All grpc service classes in the :daemon.grpc pkg are now package
  protected, excepting GrpcServer;  the only class depending on
  Grpc*Service class is GrpcServer.

* gRPC dependencies were moved from the gradle.build file's :core
  subproject to :daemon.
2020-08-24 15:09:15 -03:00
sqrrm
d5c81cedd6
Merge pull request #4366 from ghubstan/draft-apitest
Add API test harness for Linux & OSX
2020-08-24 18:57:53 +02:00
Christoph Atteneder
fa000ddc45
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.3.7
# Conflicts:
#	core/src/main/java/bisq/core/provider/ProvidersRepository.java
2020-08-19 13:04:26 +02:00
cd2357
4dc24e5606
Disable BitcoinAverage
Disable BitcoinAverage provider. Keep it registered as a provider to
ensure that the data structure returned by the pricenode to the Bisq
clients contain the hardcoded "btcAverageTs" key.
2020-08-05 23:17:18 +02:00
Christoph Atteneder
7475f17207
Bump version number for v1.3.7 2020-07-30 10:19:34 +02:00
cd2357
efda45fa78
Integrate Hitbtc exchange API
Add Hitbtc ExchangeRateProvider and corresponding unit test.
2020-07-27 18:55:11 +02:00
cd2357
b362b4c8d2
Integrate Huobi exchange API
Add Huobi ExchangeRateProvider and corresponding unit test.
2020-07-27 18:53:13 +02:00
cd2357
637378b58a
Integrate more exchanges using knowm xchange
Add more exchange providers supported by the knowm xchange library.

This extends support for a few new currencies.
2020-07-27 13:02:25 +02:00
cd2357
c6ef40e5e4
Revert XChange version to keep jdk10 compatibility
Revert from latest v5.0.0 to v4.2.2, since the newer version libraries
are compiled with Java 11, so they cannot be used as part of the Bisq
build process which still partially relies on Java 10.
2020-07-20 18:14:37 +02:00
cd2357
671e80929a
Integrate initial set of ExchangeRateProviders
Add support for a few exchanges to demonstrate and test the pricenode
aggregate rates.

The chose exchanges were selected because they each provide a varied
list of fiat and altcoins, with a substantial overlap between them. This
 provides a robust initial set of datapoints and scenarios for aggregate
  rates.
2020-07-20 18:14:37 +02:00
ghubstan
591c8b295c
Change :apitest:test task system property name
The property name 'force' is changed 'runApiTests'.

To run the :apitest test task:

    ./gradlew :apitest:test -DrunApiTests=true
2020-07-20 12:33:47 -03:00
ghubstan
bf584c218f
Move test cases into subproject test sources
This change reorganizes the ':apitest' subproject to conform to a
typical gradle project, where all JUnit test cases are located in
the subproject's test sources folder.  This makes running tests
from an IDE or gradle command line interface work as expected.
It will also help keep Travis CI configuration simple.

To avoid interfering in normal builds, the gradle ':apitest test' task
is disable by default;  API tests will only run when a '-Dforce-true'
system property is passed to gradle.

To run API tests, run a normal build and install dao-setup files:

    ./gradlew clean build :apitest:installDaoSetup

Then run the tests:

    ./gradlew :apitest:test -Dforce=true

Try to avoid adding the '-Dforce=true' property to any other gradle
tasks, because this enables the ':apitest test' task, and would kick
off API tests before a normal build completed.

The build.gradle file was modified to support this code reorg, and
the 'org.junit.jupiter' dependendency was upgraded to v5.6.2 -- only
in the ':apitest:test' dependency definiitions, not anywhere else in
the bisq dependency definitions.  The upgrade is necessary for
running ordered tests.

Since the scaffolding may be set up from either test cases (under the
test src folder), or a class under the main src folder, some changes
were made to ensure configuration paths are correct for either use
case.  For example, when the 'bisq-apitest' script is run from the root
project directory, the current working directory is the root project
directory.  When gradle or an IDE is used to run @Test cases, the
current working directory is :apitest subproject directory.

The main source's ApiTestMain class has been stripped down, and exists
only to keep the gradle build happy -- it needs a 'mainClassName'
property.  But this main driver does have uses.  See the class comments.

The other changes in this commit were made to fix style and syntax
problems.
2020-07-19 16:31:46 -03:00
ghubstan
080952b1d7
Support @Order-ing of JUnit tests 2020-07-13 20:30:48 -03:00
Christoph Atteneder
93fb7630d6
Revert to SNAPSHOT version 2020-07-13 21:39:42 +02:00
ghubstan
2c10836a69
Expose grpc service stubs
Added :proto to the :apitest classpath for access to grpc
service stubs (to be) used in method (unit) tests.  Added new
GrpcStubs class to expose the grpc service stubs to method and
scenario tests.

The larger goal of :apitest is end to end testing, where :cli's
console output is checked for correctness.

This change partially addresses two other important use cases:

 * "method" testing -- an analog to unit testing
 * "scenario" testing -- an analog to narrow functional testing

For example, tests in the apitest.method package will directly
call grpc services, and asserts will be made on the return values
instead of console output.

Tests in the apitest.scenario package will check correctness
for broader use cases, such as funding a wallet, encrypting then
unlocking a wallet  for a specific time frame, or checking error
messages from the server when a "getbalance" call is made after
an "unlockwallet" timeout has expired.

The broader end to end tests will not use grpc stubs.
2020-07-12 13:55:08 -03:00
ghubstan
e61a42dbb4
Remove MaxRAM from DEFAULT_JVM_OPTS
There is no need for this as any JavaFX based :desktop instances
will be started as background linux processes.
2020-07-10 15:00:50 -03:00
ghubstan
2cd80aaa60
Add subproject :apitest to gradle build file 2020-07-09 16:15:29 -03:00
Christoph Atteneder
7613912c75
Bump version number for v1.3.6 2020-07-04 21:02:29 +02:00
Christoph Atteneder
d2fdc79c26
Revert to SNAPSHOT version 2020-06-23 15:32:57 +02:00
Christoph Atteneder
92ee247fa7
Bump version number for v1.3.5 release 2020-06-06 08:44:41 +02:00
cd2357
1ad7169682
Add unit test for Version controller
Add unit test for existing functionality of the Version controller.
2020-05-09 09:40:52 +02:00
Christoph Atteneder
9acb764d6a
Add missing SNAPSHOT version 2020-04-30 16:38:04 +02:00
Christoph Atteneder
23432308a2
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.3.4
# Conflicts:
#	build.gradle
#	desktop/package/linux/Dockerfile
#	desktop/package/linux/package.sh
#	desktop/package/linux/release.sh
#	desktop/package/macosx/create_app.sh
#	desktop/package/macosx/finalize.sh
#	desktop/package/macosx/insert_snapshot_version.sh
#	desktop/package/windows/package.bat
#	desktop/package/windows/release.bat
#	p2p/src/main/java/bisq/network/p2p/storage/P2PDataStorage.java
#	p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET
#	p2p/src/main/resources/DaoStateStore_BTC_MAINNET
#	p2p/src/main/resources/SignedWitnessStore_BTC_MAINNET
#	p2p/src/main/resources/TradeStatistics2Store_BTC_MAINNET
#	relay/src/main/resources/version.txt
2020-04-30 16:36:51 +02:00
Christoph Atteneder
64f55cb777
Bump version number for v1.3.4 2020-04-30 10:19:27 +02:00
Chris Beams
e03c46106b
Merge pull request #4189 from ghubstan/simple-rpc-auth
Implement simple password-based gRPC authentication
2020-04-29 16:17:04 +02:00
Christoph Atteneder
df56aaddab
Bump version number for v1.3.3 2020-04-29 16:08:54 +02:00
Chris Beams
51fc2710ad
Track p2p data store files using Git LFS
The large binary objects in p2p/src/main/resources/ are updated on every
Bisq release with the latest network data to avoid the need for new Bisq
clients to download all of this information from the network, which
would easily overload seed nodes and generally bog down the client.

This approach works well enough for its purposes, but comes with the
significant downside of storing all of this binary data in Git history
forever. The current version of these binary objects total about 65M,
and they grow with every release. In aggregate, this has caused the
total size of the repository to grow to 360M, making it cumbersome to
clone over a low-bandwith connection, and slowing down various local Git
operations.

To avoid further exacerbating this problem, this commit sets these files
up to be tracked via Git LFS. There's nothing we can do about the 360M
of files that already exist in history, but we can ensure it doesn't
grow in this unchecked way going forward. For an understanding of how
Git LFS works, see the reference material at [1], and see also the
sample project and README at [2].

The following command was used to track the files:

    $ git lfs track "p2p/src/main/resources/*BTC_MAINNET"
    Tracking "p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET"
    Tracking "p2p/src/main/resources/BlindVoteStore_BTC_MAINNET"
    Tracking "p2p/src/main/resources/DaoStateStore_BTC_MAINNET"
    Tracking "p2p/src/main/resources/ProposalStore_BTC_MAINNET"
    Tracking "p2p/src/main/resources/SignedWitnessStore_BTC_MAINNET"
    Tracking "p2p/src/main/resources/TradeStatistics2Store_BTC_MAINNET"

We are using GitHub's built-in LFS service here, and it's important to
understand that there are storage and bandwidth limits there. We have
1G total storage and 1G per month of bandwidth on the free tier. We will
certainly exceed this, and so must purchase at least one "data pack"
from GitHub, possibly two. One gets us to 50G storage and bandwith.

In an attempt to avoid unnecessary LFS bandwidth usage, this commit also
updates the Travis CI build configuration to cache Git LFS files, such
that they are not re-downloaded on every CI build (see [3] and [4]
below). With that out of the way, the variable determining whether we
exceed the monthly limit is how many clones we have every month, and
there are many, though it's not clear how many are are Travis CI and how
many are users / developers.

Tracking these files via LFS means that developers will need to have Git
LFS installed in order to properly synchronize the files. If a developer
does not have LFS installed, cloning will complete successfully and the
build would complete successfully, but the app would fail when trying to
actually load the p2p data store files. For this reason, the build has
been updated to proactively check that the p2p data store files have
been properly synchronized via LFS, and if not, the build fails with a
helpful error message. The docs/build.md instructions have also been
updated accordingly.

It is important that we make this change now, not only to avoid growing
the repository in the way described above as we have been doing now for
many releases, but also because we are now considering adding yet more
binary objects to the repository, as proposed at
https://github.com/bisq-network/projects/issues/25.

[1]: https://git-lfs.github.com
[2]: https://github.com/cbeams/lfs-test
[3]: https://docs-staging.travis-ci.com/user/customizing-the-build/#git-lfs
[4]: https://github.com/travis-ci/travis-ci/issues/8787#issuecomment-394202791
2020-04-29 12:10:11 +02:00
Chris Beams
0b338bbbea
Rename/repackage bisq.cli.{app.Bisq=>CliMain} 2020-04-25 09:59:22 +02:00
Christoph Atteneder
1105a78d51
Revert to SNAPSHOT version 2020-04-16 14:25:59 +02:00
Christoph Atteneder
782921ec55
Bump version number for v1.3.2 2020-04-10 20:02:39 +02:00
Christoph Atteneder
4b826eb2a9
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.3.1
# Conflicts:
#	build.gradle
#	desktop/package/linux/Dockerfile
#	desktop/package/linux/package.sh
#	desktop/package/linux/release.sh
#	desktop/package/macosx/create_app.sh
#	desktop/package/macosx/finalize.sh
#	desktop/package/macosx/insert_snapshot_version.sh
#	desktop/package/windows/package.bat
#	desktop/package/windows/release.bat
#	relay/src/main/resources/version.txt
2020-04-08 23:03:19 +02:00