Commit Graph

1994 Commits

Author SHA1 Message Date
Manfred Karrer
8754f41c1e
Merge branch 'master' of https://github.com/angelcoinmoney/exchange into angelcoinmoney-master 2018-03-10 10:01:41 -05:00
Chris Beams
f20a904568
Merge pull request #1362 from tau3/refactoring/core-seed-nodes-repository
Refactoring of CoreSeedNodesRepository + unit tests
2018-03-10 11:11:04 +01:00
Chris Beams
47c7c4fb46
Re-apply "Fix wrong network ID for Dash"
This commit essentially cherry-picks the changes made in ea8cbc1,
re-applying them after the renaming of CoreSeedNodesRepository =>
DefaultSeedNodeRepository that happened earlier on this branch. The
other changes made in that original commit are no longer relevant here,
or have already been made in earlier commits on this refactoring branch.
2018-03-10 11:01:23 +01:00
Chris Beams
cef131151c
Merge branch 'master' into tau3-refactoring/core-seed-nodes-repository 2018-03-10 10:59:42 +01:00
Manfred Karrer
0d45977913
Make constructor private, add Nullable. 2018-03-09 19:55:28 -05:00
Manfred Karrer
2afcef9eb5
Merge branch 'refactor-dao-data-model'
# Conflicts:
#	core/src/main/java/io/bisq/core/dao/DaoModule.java
#	core/src/main/java/io/bisq/core/dao/blockchain/BsqBlockChain.java
#	core/src/main/java/io/bisq/core/dao/blockchain/SnapshotManager.java
#	core/src/main/java/io/bisq/core/dao/node/BsqNode.java
#	core/src/main/java/io/bisq/core/dao/node/BsqParser.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/BsqTxController.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/CompensationRequestController.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/GenesisTxController.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/IssuanceController.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/PeriodController.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/TxInputController.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/TxInputsController.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/TxOutputController.java
#	core/src/main/java/io/bisq/core/dao/node/consensus/VotingController.java
#	core/src/main/java/io/bisq/core/dao/node/full/FullNode.java
#	core/src/main/java/io/bisq/core/dao/node/full/FullNodeParser.java
#	core/src/main/java/io/bisq/core/dao/node/full/network/FullNodeNetworkManager.java
#	core/src/main/java/io/bisq/core/dao/node/full/network/GetBsqBlocksRequestHandler.java
#	core/src/main/java/io/bisq/core/dao/node/lite/LiteNode.java
#	core/src/main/java/io/bisq/core/dao/node/lite/LiteNodeExecutor.java
#	core/src/main/java/io/bisq/core/dao/node/lite/LiteNodeParser.java
#	core/src/main/java/io/bisq/core/dao/request/compensation/CompensationRequestManager.java
#	core/src/test/java/io/bisq/core/dao/node/full/FullNodeParserTest.java
2018-03-09 19:47:08 -05:00
Manfred Karrer
dd5fe5d197
Use Interface for read and write access to BsqBlcokChain. Use SingleThreadExecutor in Full- and LiteNodeExecutor. 2018-03-09 19:45:40 -05:00
Manfred Karrer
92ccf73ca8
Merge branch 'fix-parsertest' 2018-03-09 15:03:26 -05:00
Manfred Karrer
42e712fce3
Merge branch 'fix-parsertest' of https://github.com/sqrrm/exchange into sqrrm-fix-parsertest
# Conflicts:
#	core/src/test/java/io/bisq/core/dao/node/full/FullNodeParserTest.java
2018-03-09 15:02:57 -05:00
Manfred Karrer
c611eed0a6
Extract snapshot code from BsqBlockChain to SnapshotManager. Rename *Verification classes to *Controller. Add BsqBlockController. 2018-03-09 14:56:40 -05:00
Manfred Karrer
456fd28e94
Revert "Fix parsertest" 2018-03-09 14:42:56 -05:00
Manfred Karrer
182158af20
Merge pull request #1445 from sqrrm/fix-parsertest
Fix parsertest
2018-03-09 12:34:57 -05:00
sqrrm
f569776398
Fix FullNodeParserTest after refactoring 2018-03-09 18:06:33 +01:00
Manfred Karrer
e55bba63fb
Deactivate broken test temp. 2018-03-09 10:59:40 -05:00
Chris Beams
19b9c6fe59
Set Maven version to -SNAPSHOT
Problem: d218094 set the version to 0.7.0-SNAPSHOT, but that change
failed to produce the intended effect detailed in the commit comment.
Setting the version to a value like 0.7.0-SNAPSHOT works fine when
publishing artifacts to a local ~/.m2 repository, but JitPack has no
awareness of version metadata within pom files, and can only retreive
artifacts based on Git metadata, namely tags, branch names and commit
hashes. This means it is impossible to resolve artifacts from JitPack
with a GAV like `io.bisq.exchange:core:0.7.0-SNAPSHOT` unless there is a
branch named `0.7.0`. This is why the pull request at
bisq-network/bisq-seednode#1 failed.

Solution: JitPack supports the semantics of Maven-style `-SNAPSHOT`
versioning, and as a special case, allows for versions to be named
literally `-SNAPSHOT` with no preceding version string [1,2]. This
commit sets all Maven versions to `-SNAPSHOT`, achieving the original
effect intended by d218094. Now downstream components (like
bisq-seednode) can resolve dependencies seamlessly from JitPack or a
local ~/.m2 repo with a GAV like `io.bisq.exchange:core:-SNAPSHOT`. This
is a slightly unconventional arrangement, but should actually result in
fewer updates to pom files over time as there may in fact be no reason
to ever change this version string so long as we continue using JitPack
and avoid publication to Maven Central / JCenter or similar.

[1]: https://jitpack.io/docs/#building-with-jitpack
[2]: https://github.com/jitpack/jitpack.io/issues/351

See #1440
2018-03-09 10:29:23 +01:00
Manfred Karrer
92514a25e8
Refactor BsqBlockChain with ReadModel and WriteModel 2018-03-09 00:43:20 -05:00
Manfred Karrer
da657ed055
Merge pull request #1440 from cbeams/change-groupid-and-version
Update artifact metadata to allow seamless resolution from JitPack or local ~/.m2 repo
2018-03-08 22:01:41 -05:00
Manfred Karrer
8e99e7c1e6
Refactor OpReturnVerification. 2018-03-08 21:57:54 -05:00
Manfred Karrer
cf9fc6714d
Refactor check if a tx is a bsq tx. 2018-03-08 20:59:49 -05:00
Chris Beams
d218094269
Bump Maven artifact versions to 0.7.0-SNAPSHOT
Problem: When resolving Bisq libraries, e.g. `core` or `network` from
JitPack for use in other components like bisq-seednode or
bisq-pricenode, we have historically, resolved them by tag or by
branchname, e.g. with GAV coordinates like `io.bisq:core:v0.6.7` or
`io.bisq:core:master`. This works well enough, but now that we are
beginning to modularize more aggressively, we want to make sure that
it's possible at any time to publish the latest snapshots of these
libraries to one's own local ~/.m2 repository such that they can be
easily resolved from downstream components without the need to push
commits to the bisq-network/exchange remote, and to wait for JitPack to
do a just-in-time build.

Solution: By updating the version value of all modules here in the
exchange repository from 0.6.7 => 0.7.0-SNAPSHOT, one can run
`mvn install` to publish the latest "snapshot" of exchange libraries to
the local ~/.m2 repository and be sure to resolve them from whatever
downstream component that they are working on. The -SNAPSHOT qualifier
ensures that no caching occurs, and that the very latest such binary
will always be used.

This new arrangement creates a situation where one can transparently
resolve these dependencies remotely from JitPack and then subsequently
resolve them locally from one's ~/.m2 repository without having to
change a line of code.

It also opens up the ability to manage all Bisq components together in a
single IDE window as if they were all in one repository, avoiding the
need even to issue a `mvn install` command to publish locally--but
that's not the main focus of this change.

Note that the change to 0.7.0 here is based on the fact that we already
planned to have the next version shipped from `master` be 0.7.0, as
there are quite a few new UI changes that probably merit the bump in
minor version. The version change also aligns well with the fact that
we're modularizing a number of components right now, and all
newly-extracted components have been jumping to v0.7.0 to indicate their
new independent status. This has been the case with bisq-seednode and
pricenode so far.

Finally, it is important to note here that the ONLY versions updated by
this change are those specific to Maven metadata and therefore artifact
management / dependency resolution. The version that the Bisq desktop
client reports in its UI and to the network in its user agent has NOT
been changed, on account of the fact that users may run Bisq from
source, and we need to think through more fully the implications of
reporting a verison like 0.7.0-SNAPSHOT in those situations. Here is a
list of files containing the old version (0.6.7) that have NOT been
updated:

 - common/src/main/java/io/bisq/common/app/Version.java
 - package/linux/32bitBuild.sh
 - package/linux/Dockerfile
 - package/osx/create_app.sh
 - package/osx/finalize.sh
 - package/windows/32bitBuild.bat
 - package/windows/64bitBuild.bat
 - package/windows/Bisq.iss
 - package/linux/64bitBuild.sh

One thing we know for sure that wouldn't work here is that Bisq's
Version class currently does not support -SNAPSHOT qualifiers. It just
breaks the version string validation entirely. So we'd need to patch
that in any case if we do decide it's a good idea to let pre-release
builds report their version accurately.
2018-03-08 19:49:30 +01:00
Chris Beams
19d8c252ba
Change groupid from io.bisq => io.bisq.exchange
Problem: The current `io.bisq` groupid does not align with the way
JitPack supports custom groupids. In order to be able to both resolve
artifacts from JitPack *and* be able to resolve the same artifacts from
one's local ~/.m2 repository, Bisq artifacts need to have the same GAV
coordinates everywhere (groupid, artifactid, version).

Solution: This commit changes all groupids from io.bisq =>
io.bisq.exchange to match the GAV coordinates produced / expected by
JitPack.

So where Bisq's core module would previously have been resolvable with
GAV coordinates `io.bisq:core:v0.6.7` it will now be resolvable as
`io.bisq.exchange:core:v0.6.7`.

Note that this change is not just to satisfy JitPack idiosyncracies, but
is actually good naming practice anyway where a multi-module build is
involved, and is arguably the way it should have been all along.

[1]: https://jitpack.io/docs/#publishing-on-jitpack
2018-03-08 18:59:31 +01:00
Manfred Karrer
1bd41b638e
Refactor network handlers and managers for dao. Separate them for lite and full node. 2018-03-08 12:10:43 -05:00
Manfred Karrer
72a73b9573
Move TxIdIndexTuple to util package 2018-03-08 10:51:11 -05:00
Manfred Karrer
df093b9712
Remove TxVo and put fields into Tx instead. 2018-03-08 10:50:15 -05:00
Manfred Karrer
d320346a03
Refactor: Rename RequestManager to BlocksRequestManager 2018-03-08 10:06:37 -05:00
Manfred Karrer
eca72f658f
Refactor: Move classes from io.bisq.core.dao.blockchain.p2p to io.bisq.core.dao.node 2018-03-08 10:06:02 -05:00
sqrrm
e48f91cb51
Fix fullnodeparsertest after refactoring 2018-03-08 14:47:49 +01:00
Manfred Karrer
027de5316f
Refactoring of DAO classes and packages. Isolate consensus code to extra classes. Separate better full node and lite nodes. 2018-03-07 22:05:27 -05:00
Manfred Karrer
ad48986395
Fix issues in RequestManager. Refactor BsqLiteNode. Add comments, Refactorings. 2018-03-06 22:34:53 -05:00
Manfred Karrer
f19b6ca0ee
Add missing classes from earlier move. Rename GeneralPurposeRequest. 2018-03-06 20:43:36 -05:00
Manfred Karrer
8d82e8b087
Add consensus package and move relevant classes over there. 2018-03-06 20:39:41 -05:00
Manfred Karrer
f38d7b332f
Move opReturn data creation to OpReturnData class. Add Validation class. Rename io.bisq.core.dao.voterequest to io.bisq.core.dao.request. Add new Request classes. 2018-03-06 20:38:27 -05:00
Manfred Karrer
f0a9316999
Refactor: Move io.bisq.core.dao.compensation to io.bisq.core.dao.voterequest.compensation 2018-03-06 20:16:32 -05:00
Manfred Karrer
034b113f9e
Change params for daoPeriodService. Add commeents. Add VoteRequest class. 2018-03-06 20:13:46 -05:00
Manfred Karrer
16e456ed86
Refactor: Rename DaoConstants to OpReturnTypes 2018-03-06 19:47:59 -05:00
Manfred Karrer
ea8cbc111c
Fix wrong network ID for dash 2018-03-06 18:35:34 -05:00
Manfred Karrer
b5ac9f97ca
Add vote reveal type. Adjust BSQ fees. Refactorings. 2018-03-05 22:00:13 -05:00
Manfred Karrer
f86bb433ed
Merge remote-tracking branch 'origin/master' 2018-03-05 18:16:49 -05:00
Manfred Karrer
b706edd15a
Merge branch 'show-past-comps' of https://github.com/sqrrm/exchange into sqrrm-show-past-comps 2018-03-05 18:03:16 -05:00
sqrrm
5c2bd9e906
Fix BsqParserTest after changing genesis distribution 2018-03-05 19:41:40 +01:00
Manfred Karrer
2bc210bbd0
Ignore BsqParserTest temporary 2018-03-05 12:59:39 -05:00
Manfred Karrer
6f8e89cf87
Change denomination of BSQ from 1000 satoshi to 100 satoshi (#1423) 2018-03-05 12:45:28 -05:00
Manfred Karrer
1f6122e934
Add option key: genesisBlockHeight. Rename option key regTestBsqGenesisTxId to genesisTxId. Remove hard coded dev genesis tx id and height. 2018-03-05 12:05:24 -05:00
Manfred Karrer
9246b530d3
Fix minBroadcastConnections for regTest. Set RegTestHost.LOCALHOST as default. 2018-03-05 11:51:30 -05:00
Manfred Karrer
b8eaa647c4
Apply camelCase to option key regtestBsqGenesisTxId to regTestBsqGenesisTxId 2018-03-05 11:11:58 -05:00
Manfred Karrer
b7064f9820
Add option key for dev mode 2018-03-05 11:10:00 -05:00
sqrrm
159b651dcc
Init DAO persistedDataHost for seednode 2018-03-05 16:58:06 +01:00
Manfred Karrer
aac493cc41
Add Restrictions with min and max comp request amounts. Refactor validator. 2018-03-05 10:33:25 -05:00
Manfred Karrer
a60f56c623
Merge branch 'compensation-req-checks' of https://github.com/sqrrm/exchange into sqrrm-compensation-req-checks 2018-03-05 09:39:42 -05:00
Manfred Karrer
4e8a6adff4
Refactor configPeerNodes methods 2018-03-05 09:31:25 -05:00