Commit graph

320 commits

Author SHA1 Message Date
Doyle
ee44c01c69
Merge pull request #1119 from Doy-lee/MergeUpstream
Merge upstream changes (~130 commits)
2020-04-24 14:09:22 +10:00
Doyle
ef2ee4e27e Update trezor-common to 31a0073c62738827b48d725facd3766879429124 2020-04-21 12:23:55 +10:00
Doyle
87f0b57b38
Update LokiMQ to v1.1.1 (#1128) 2020-04-20 09:36:14 +10:00
Jason Rhinelander
a00be3523b Update to latest lokimq for automatic heartbeating 2020-04-14 20:24:15 -03:00
Jason Rhinelander
5d39a6ae68
Update for LokiMQ 1.1.0's changes (#1122)
With the 1.1.0 update, rather than LokiMQ getting a callback that it
invokes on connection to get auth level for the duration of that
connection, it now checks authentication each time a command is invoked.
This improves message reliability (because on an invocation failure the
remote doesn't have to reconnect to be reauthenticated).

This helps storage server greatly (which has some tricky initialization
issue that requires it to initialize lokimq before it has the SN list);
it is less needed for quorumnet communications (which have been all
using connection-time authenciation for a while now), but this change
does some one "weirdness" that a remote client may be unable to issue a
command that they *can* issue if they reconnect.

The lokid update here piggypacks the call into quorumnet in quorum_cop's
`add_block` callback to make the call; this would be far cleaner if we
replaced the callbacks with stateful std::function's instead of
inherited base class pointers, but I didn't want to go that far in this
PR.
2020-04-15 09:22:18 +10:00
Jason Rhinelander
3961a0c662
Update bundled & required lokimq to 1.0.4 (#1104) 2020-03-30 16:19:44 +11:00
Jason Rhinelander
e84a111781 Various contrib/depends fixes
- set WITH_SYSTEMD=OFF in contrib/depends so that we don't try to go
look for it on the host system.
- link icu libs properly
- don't build embedded zmq but rather set up a target so that loki-mq
uses the externally built one
- fix OpenSSL::Crypto not properly depending on ws2_32
- build boost atomic in the built boost because boost::thread depends on
it (and we were just getting lucky before by not happening to touch
anything that needed it)
- make bundled unbound link against the `extra` interface for various
required windows crap (ws2_32 and other stuff).
2020-03-16 22:01:54 -03:00
Jason Rhinelander
743d4e60ce Various linking and build fixes
- updating to latest loki-mq (1.0.0 + various linking fixes)
- BUILD_SHARED_LIBS was being handled very strangely; make it a full
option instead (defaulting to off) that a cmake invoker can specify, as
per cmake recommendations.
- travis ci tweaks/changes:
  - Add a static bionic build
  - Simplify cmake argument code
  - Add `--version` invocation for lokid and loki-wallet-cli to test
    that the binaries were linked properly.
- always build an embedded sodium statically; if we do it dynamically
and an older system one exists we are going to have trouble.
- don't force epee and blocks to be static; rather they get controlled
by the above BUILD_SHARED_LIBS, just like all the other internal
libraries.
- use some PkgConfig:: imported targets rather than bunch-of-variables.
2020-03-15 14:29:47 -03:00
Jason Rhinelander
a53b9fff22 Allow linking to a system-installed lokimq
It makes the debs easier (especially on the older distributions) to
package it separately.
2020-03-15 13:27:15 -03:00
Jason Rhinelander
dc29d66ed7 Set OPENSSL_LIBRARIES hack for bundled libunbound 2020-03-15 13:27:15 -03:00
Jason Rhinelander
0ed361c742 Updated loki-mq for disconnect fixes 2020-03-10 13:55:07 -03:00
Jason Rhinelander
c98688fd84 Convert quorumnet to loki-mq
This adds the loki-mq dependency and replaces SNNetwork with it (along
with some syntax updates for how loki-mq changed a bit from SNNetwork).

This also replaces common/hex.h and common/string_view.h with loki-mq's
faster (hex) and more complete and tested (string_view) implementations.
2020-03-06 00:36:57 -04:00
Jason Rhinelander
5b97ff6e9c cmake modernization
The archaic (i.e. decade old) cmake usage here really got in the way of
trying to properly use newer libraries (like lokimq), so this undertakes
overhauling it considerably to make it much more sane (and significantly
reduce the size).

I left more of the architecture-specific bits in the top-level
CMakeLists.txt intact; most of the efforts here are about properly
loading dependencies, specifying dependencies and avoiding a whole pile
of cmake antipatterns.

This bumps the required cmake version to 3.5, which is what xenial comes
with.

- extensive use of interface libraries to include libraries,
definitions, and include paths

- use Boost::whatever instead of ${Boost_WHATEVER_LIBRARY}.  The
interface targets are (again) much better as they also give you any
needed include or linking flags without needing to worry about them.

- don't list header files when building things.  This has *never* been
correct cmake usage (cmake has always known how to wallet_rpc_headers
the headers that .cpp files include to know about build changes).

- remove the loki_add_library monstrosity; it breaks target names and
makes compiling less efficient because the author couldn't figure out
how to link things together.

- make loki_add_executable take the output filename, and set the output
path to bin/ and install to bin because *every single usage* of
loki_add_executable was immediately followed by setting the output
filename and setting the output path to bin/ and installing to bin.

- move a bunch of crap that is only used in one particular
src/whatever/CMakeLists.txt into that particular CMakeLists.txt instead
of the top level CMakeLists.txt (or src/CMakeLists.txt).

- Remove a bunch of redundant dependencies; most of them look like they
were just copy-and-pasted in, and many more aren't needed (since they
are implied by the PUBLIC linking of other dependencies).

- Removed `die` since it just does a FATAL_ERROR, but adds color (which
is useless since CMake already makes FATAL_ERRORs perfectly visible).

- Change the way LOKI_DAEMON_AND_WALLET_ONLY works to just change the
make targets to daemon and simplewallet rather than changing the build
process (this should make it faster, too, since there are various other
things that will be excluded).
2020-03-06 00:36:57 -04:00
Doyle
8aacc33fb1
Rewrite the integration tests to use pipes (#1045) 2020-02-21 14:48:25 +11:00
Jason Rhinelander
bfe3bafabf Make miniupnpc include/link dirs global 2019-12-03 00:51:18 -04:00
Jason Rhinelander
04f614705e Use pkg-config for unbound and miniupnpc
We unnecessarily vendor this much of the time because the existing
search code is primitive; use pkg-config instead which works much
better, and lets us properly depend on particular versions.

This lets us reenable the system miniupnpc for >=2.1, saving an
unnecessary compilation most of the time.  From the git history it
appears that it is built from source always unconditionally in a fit of
rage.
2019-12-03 00:51:18 -04:00
Jason Rhinelander
12c94b6ea9 Add tmux color support 2019-11-27 14:07:52 -04:00
Mikunj Varsani
2728159853 Fix iOS Build (#908) 2019-11-01 12:41:31 +11:00
Doyle
4db1f0ddd0
Merge pull request #872 from jagerman/qnet-backport
Backports from quorumnet branch for 5.x
2019-10-08 17:13:34 +11:00
Howard Chu
5a322c87f1 Update to RandomX v1.1.3, simplify
We don't need to detect if the cache has changed, just always
call to set it on the VM. The call will be a no-op if the cache
hasn't changed.
2019-10-07 22:22:14 -03:00
Jason Rhinelander
ba7efa21fe Add updated zmq c++ library
The system library C++ interface is an ancient version of this; this
vendors an updated copy that we need, and updates a couple existing
places that are using deprecated calls.
2019-10-07 22:09:17 -03:00
Jason Rhinelander
f0ab90e99e Update randomx external repository 2019-09-25 14:46:53 -03:00
Jason Rhinelander
336fc3e895 Don't do a full randomx build (#699)
It builds the randomx test and benchmark binaries as part of the loki
build which isn't necessary (and isn't used).  We can test randomx on
its own.
2019-07-01 14:19:04 +10:00
Jason Rhinelander
9a2a5af252 Update RandomX with upstream (#697)
This doesn't change anything in the algorithm itself, but adds various
asserts on parameter choices (which pass) and some build system
improvements.
2019-07-01 10:37:20 +10:00
Jason Rhinelander
d6d766f0b5 Update randomx with c++11 required change 2019-06-27 01:33:57 -03:00
Jason Rhinelander
ada3cdc5e3 Update submodule for updated salt 2019-06-27 00:12:29 -03:00
Jason Rhinelander
94b5857a84 Merge remote-tracking branch 'LMDB/randomx' into randomx 2019-06-26 21:50:51 -03:00
Howard Chu
6261ecb4e1
Updated to RandomX v1.0.3
This update yields different hashes from previous versions, so any
testnet blockchains using previous code will be invalidated.
2019-06-01 21:42:32 +01:00
Howard Chu
cfe0e9c7c5
RandomX integration
Support RandomX PoW algorithm
2019-06-01 21:40:55 +01:00
Doyle
da18d45871 Merge commit 'e98cbfb' into LokiMergeUpstream 2019-05-02 12:28:01 +10:00
Doyle
bad39ac86b Merge commit '45a4145' into LokiMergeUpstream 2019-05-01 18:11:56 +10:00
Doyle
5374632e2f Merge commit '1f809e7' into LokiMergeUpstream 2019-05-01 17:06:47 +10:00
Riccardo Spagni
213fd5007d
Merge pull request #5442
428249c5 easylogging++: minimal stdout logging format (moneromooo-monero)
2019-04-16 22:45:02 +02:00
Riccardo Spagni
c41d02696c
Merge pull request #5407
66d73d2f easylogging++: update to v9.96.7 (moneromooo-monero)
2019-04-16 22:34:12 +02:00
Riccardo Spagni
1f809e7485
Merge pull request #5440
b6420e12 lmdb: catch non-LMDB negative errors before strerror (moneromooo-monero)
2019-04-15 09:23:09 +02:00
moneromooo-monero
428249c5d1
easylogging++: minimal stdout logging format
It's a bit of a hack, but doing it right would need a lot
of changes to the easylogging++ source.
2019-04-14 09:43:05 +00:00
moneromooo-monero
b6420e12a9
lmdb: catch non-LMDB negative errors before strerror
That should hopefully shut coverity up
2019-04-14 09:19:04 +00:00
Doyle
9d9d309d03 Merge commit '48e3a341f8bb601895c94e7b637475f8911ae530' into LokiMergeUpstream 2019-04-12 15:48:19 +10:00
Martijn Otto
8df827075f
Fix linker issues using easylogging 2019-04-10 11:37:02 +02:00
Doyle
a4a25cef28 Merge commit 'a6adbdc0b0f90f122e5b58ca9bb7421c7b3989a0' into LokiMergeUpstream 2019-04-10 10:06:00 +10:00
moneromooo-monero
66d73d2f7d
easylogging++: update to v9.96.7 2019-04-07 14:31:00 +00:00
Riccardo Spagni
48e3a341f8
Merge pull request #5211
c9b13fbb tests/trezor: HF9 and HF10 tests (Dusan Klinec)
a1fd1d49 device/trezor: HF10 support added, wallet::API (Dusan Klinec)
d74d26f2 crypto: hmac_keccak added (Dusan Klinec)
2019-03-21 14:44:04 +02:00
Dusan Klinec
a1fd1d499c
device/trezor: HF10 support added, wallet::API
- import only key images generated by cold signing process
- wallet_api: trezor methods added
- wallet: button request code added
- const added to methods
- wallet2::get_tx_key_device() tries to decrypt stored tx private keys using the device.
- simplewallet supports get_tx_key and get_tx_proof on hw device using the get_tx_key feature
- live refresh enables refresh with trezor i.e. computing key images on the fly. More convenient and efficient for users.
- device: has_ki_live_refresh added
- a thread is watching whether live refresh is being computed, if not for 30 seconds, it terminates the live refresh process - switches Trezor state
2019-03-20 21:11:02 +01:00
Riccardo Spagni
ea07a9bc61
Merge pull request #5191
1677fb06 unbound: update to get the redefinition fix (moneromooo-monero)
2019-03-17 17:57:09 +02:00
binaryFate
1f2930ce0b Update 2019 copyright 2019-03-05 22:05:34 +01:00
moneromooo-monero
1677fb06ad
unbound: update to get the redefinition fix 2019-02-24 13:20:03 +00:00
doy-lee
fe4b8f3e7a Merge branch 'IntegrationTestFramework2' into IntegrationTestFramework 2019-01-31 18:58:24 +11:00
Howard Chu
2a94ec22aa
ITS#8969 tweak mdb_page_split
Bump up number of keys for which we use fine-grained splitpoint search
2019-01-30 23:45:48 +00:00
doy-lee
261570ac35 Merge commit '227bf14' into LokiMergeUpstream 2019-01-30 15:18:15 +11:00
Riccardo Spagni
32506a6ca7
Merge pull request #5079
efec3ed2 Resync to upstream mdb.master (Howard Chu)
2019-01-28 21:33:59 +02:00