Commit graph

20 commits

Author SHA1 Message Date
Jason Rhinelander 21991ac762
Update static build deps to latest versions
- openssl 3.0.2
- boost 1.78.0
- curl 7.82.0
2022-03-21 15:25:20 -03:00
Jason Rhinelander 81a706ce2a Add check for -latomic (needed for armhf build)
Gbp-Pq: Name 0005-Add-check-for-latomic-needed-for-armhf-build.patch
2021-07-06 15:53:23 -03:00
Jason Rhinelander 0450714f19 Avoid alias to imported global lib for older cmake compatibility 2021-07-05 18:42:52 -03:00
Jason Rhinelander ef2e454d05 Fix/update boost mirror URL
boost's mirror moved.
2021-06-16 18:59:17 -03:00
Jason Rhinelander 4a514a107e Add SQLiteCpp
This is a nice C++ wrapper that cleans up the data interface
considerably over using the C sqlite3 API.

I also evaluated (and started implementing) sqlite_orm for this, but ran
into considerable obstacles: the orm components get in the way without
being good enough to really solve anything (and essentially just making
you write queries in C++ code that is much less elegant than straight
queries), plus it fundamentally doesn't support threaded operation,
which sucks.
2021-06-16 18:59:17 -03:00
Jason Rhinelander 81f0638c16 Update required sqlite3 to 3.35.0
This lets us use RETURNING for updates/deletes which makes things much
nicer.
2021-06-16 18:59:07 -03:00
Jason Rhinelander 64d1f1dee3 Add curl to static deps build 2021-06-16 18:59:06 -03:00
Jason Rhinelander 3a8f053a4b Remove unused Findsodium cmake script 2021-06-16 18:59:06 -03:00
Jason Rhinelander 6fda19d4f1 Build fixes
- add autoconf dep for jemalloc
- add libuv for macos
2021-06-16 18:59:06 -03:00
Jason Rhinelander c079b288b8 Convert unit tests to Catch2
It is much nicer than boost or gtest, especially when running tests, and
is what we use very successfully in oxenmq and lokinet for unit tests.
2021-06-16 18:59:06 -03:00
Jason Rhinelander 3ad1ea6c7c Remove boost beast & many intertwined changes
- Replace boost beast http(s) client code with cpr (same as used in
oxen-core and lokinet)

- Replace bootstrap http requests with encrypted/authenticated omq rpc
requests to the bootstrap nodes (rather than unauthenticated,
unencrypted http connections).

- Remove boost::asio

- Remove boost circular buffer; a regular map with a two-line trimming
code is simpler for block hash cache, and a limit on stored snodes
doesn't seem necessary for the rate limiter.

- Make rate_limiter clean itself periodically; currently it only cleans
once it reaches max clients (i.e. 10k).

- Make rate_limiter thread safe, plus various code cleanups/DRYing.

- Remove ip_utils; we now longer really need a check for public ip for
proxy requests because we are sufficiently restrictive on the proxy url
target that we are unlikely to be able to reach anything sensitive (and
we also don't allow redirects).

- Replace /swarms/ping_test_v1 with /ping_test/v1; this new request now
returns the remote pubkey in a header, and no longer includes an SSL
cert signature (so that we can drop the SSL cert signatures after HF19).
The old one will still be used until HF19.

- Add OMQ endpoint for storage tests; it gets used instead of the https
one at HF19.

- Refactor storage test retries into request_handler (needed so both
legacy and omq endpoints can use it).

- Fix HF18 swarms/storage_test endpoint which was missing the snode
signature required for current SS versions to accept the response.

- Move HTTPS server-specific code (validate_snode_signature) out of
RequestHandler into HTTPSServer

- Make onion proxy-to-url timeout a bit less than the onion request
timeout so that the client has a better chance of actually getting a
timeout error.

- Miscellaneous cleanups

- Remove pre-HF18 compatibility code.

- Remove `process_lns_request` onion request target: it was accidentally
broken in HF18; clients are now using an oxend rpc request proxy to
`ons_resolve` instead.

- Shorten timeout values for ping and storage tests (5s and 15s,
respectively) and bootstrap connections (now 10s instead of 60s).
2021-06-16 18:59:06 -03:00
Jason Rhinelander 53536c50ba Fix arg for boost unit test static build 2021-04-25 20:51:59 -03:00
Jason Rhinelander 8ecb53e369 Updated required libsodium to 1.0.18, add download option
We require 1.0.18 now, apparently, so bump the required version and add
a -DDOWNLOAD_LIBSODIUM (copied from lokinet) that can download and build
it when required (without needing to do a full static build of
everything).
2021-04-24 00:26:03 -03:00
Jason Rhinelander 587ce89780 Fix master -> stable branch rename 2021-04-24 00:26:03 -03:00
Jason Rhinelander 6b6476298e Update dependencies 2021-04-22 22:13:59 -03:00
Jason Rhinelander cd69c86e01 Fix archive naming for tagged commits 2021-01-18 13:28:57 -04:00
Jason Rhinelander 816132121a Remove android/ios bits from static build script 2021-01-13 15:58:06 -04:00
Jason Rhinelander 0fed73bf3d Add strip and create_archive targets for release distribution
(Copied from loki-core).
2021-01-13 15:20:23 -04:00
Jason Rhinelander 28e6fa66e9 Add static build capability to cmake
This is adapted from the versions in loki-core and lokinet.
2021-01-13 15:19:22 -04:00
Jason Rhinelander 6aead0bdc9 Moved cmake files into cmake/ 2021-01-12 17:21:21 -04:00