Commit graph

1256 commits

Author SHA1 Message Date
Jason Rhinelander afa245d215
Bump version to 2.3.0
Release candidate, for testing.  This may or may not end up as the final
2.3.0 release.
2022-05-10 17:11:59 -03:00
Jason Rhinelander 6e840fb37b
Update static dep versions 2022-05-10 17:11:58 -03:00
Jason Rhinelander 5dc63b71ad
Merge pull request #449 from darcys22/rpc-ping-pubkey
Adds ed25519 pubkey to oxend pings
2022-05-10 17:11:05 -03:00
Sean Darcy 541ee9331d
Adds ed25519 pubkey to oxend pings
This will allow the oxend to verify the pubkey when pings are received
and reject the ping if they are wrong.

The reason this causes issues is that storage server only receives the
snode keys on startup and if oxend is restarted without restarting
storage server then it could end up running with the wrong keys.

If oxend instead rejects the pings and stops sending uptime proofs then
the operator will know that something needs attention and can restart
the storage server.
2022-05-10 17:09:26 -03:00
Jason Rhinelander 33a287a5b0
Merge pull request #448 from jagerman/namespace-part2
Batching; subkey auth; more namespace work
2022-05-10 16:35:00 -03:00
Jason Rhinelander f43c2b3b00
Allow extending expiry (up to TTL from now)
This removes the restriction on updating message expiries that only
allowed shortening, but not extending, expiries.

With this change, a client can renew its own messages indefinitely as
long as it continually re-renews within 14 days of the last renewal.
2022-05-10 16:08:21 -03:00
Jason Rhinelander 389ac24d27
Add ifelse branching metarequest
This lets you make conditional requests based on the HF, SS version, or
block height.  For future use (since this won't be usable before HF19).
2022-05-10 16:08:21 -03:00
Jason Rhinelander a4d93b9509
Fix drone format script 2022-05-05 21:45:14 -03:00
Jason Rhinelander 49047465cc
Fix bug in namespace retrieval
The retrieval queries were only half-using the namespace id and
returning things from all namespaces.  Fixed.
2022-05-05 21:45:14 -03:00
Jason Rhinelander 3e5f1a7a11
Comment hairiness in batch/sequence handling 2022-05-05 20:53:29 -03:00
Jason Rhinelander 91e71da253
Disallow empty batch/sequence; fix docs
Change "up to 6" -> "1 to 5" in the docs; the latter was a typo, the
former for this commit.
2022-05-05 20:52:20 -03:00
Jason Rhinelander 00afc10b13
Clarify timestamp/sig_timestamp use in store
The documentation used timestamp in some places that should have been
sig_timestamp (sig_timestamp default to timestamp, but they can be
different).
2022-05-05 18:21:29 -03:00
Jason Rhinelander 9d3d02cf9a
Add namespace to expire_all auth signature 2022-05-05 18:21:29 -03:00
Jason Rhinelander 0264de1daa
Use "" instead of "0" for all default namespace signatures
This makes all endpoints consistent w.r.t. how the namespace is handled:
invoking with "namespace": 0 and omitting namespace are now equivalent
(and use the same signature value, with "" for the namespace value) for
all endpoints.
2022-05-05 18:21:29 -03:00
Jason Rhinelander bc7424d3a8
Fix ts/hf being added nested rather than top-level
The initial SN contacted was adding the "t" and "hf" fields into its
swarm-specific result entry rather than into the top-level result.
2022-05-05 18:21:29 -03:00
Jason Rhinelander 176e66b0dd
Document RPC retrieve return value 2022-05-05 18:21:28 -03:00
Jason Rhinelander 807c437183
Add batch/sequence requests 2022-05-05 18:21:28 -03:00
Jason Rhinelander be7bbdc1c2
Refactor: move omq rpc code into rpc/request_handler 2022-05-05 15:52:52 -03:00
Jason Rhinelander 2776ebe50a
Add draft subkey authentication for store/retrieve
This should be sufficient for the current draft design of v2 closed
groups; if so, including the support now saves us a soft fork later.
2022-05-05 15:52:52 -03:00
Jason Rhinelander 81cf19dc0d
Schedule delayed HF revision for requiring retrieve auth 2022-05-02 17:35:47 -03:00
Jason Rhinelander b0029005d4
Don't allow storing to namespaces before HF19 2022-05-02 17:34:54 -03:00
Jason Rhinelander 0b1f063b8b
Fix onion-request test script for refactored code
Also build it with cmake (but not by default), because figuring out the
necessary linking libs is a nuisance.
2022-05-02 16:53:52 -03:00
Jason Rhinelander 5276d4ed70
RPC: Add "hf" everywhere we current return "t" 2022-05-02 16:01:26 -03:00
Jason Rhinelander 9c62bd2d3a
Merge pull request #447 from jagerman/refactor
Refactor
2022-04-29 16:09:55 -03:00
Jason Rhinelander fd615323ef
Rename vendors -> external
This makes it consistent with other oxen-io core projects like oxen-core
and lokinet.
2022-04-29 14:17:01 -03:00
Jason Rhinelander db393218e9
Replace boost/endian with oxenc/endian 2022-04-29 14:17:01 -03:00
Jason Rhinelander 8364ef029f
Refactor code
- Moves all source code under oxenss/
- Removes .../include, .../src setup
- Use include subdirectories and subnamespaces
- Various small code cleanups in common/utils code, eliminating or
  splitting up unrelated functionality.
2022-04-29 14:17:00 -03:00
Jason Rhinelander 87db715b83
Merge pull request #446 from jagerman/storage-tags
Storage namespaces & authentication
2022-04-29 13:46:34 -03:00
Jason Rhinelander 768fd3b536
Formatting 2022-04-27 20:29:40 -03:00
Jason Rhinelander ac94bfb965
Improve formatting 2022-04-27 14:12:15 -03:00
Jason Rhinelander fc3836241f
s/0/Default/ 2022-04-27 13:52:53 -03:00
Jason Rhinelander 7623c3a7c7
Add message namespace network tests 2022-04-27 12:25:19 -03:00
Jason Rhinelander f613c06ee0
Network test authentication & misc improvements
- Add now-required authentication to all retrieve requests

- Make some requests in parallel to make tests faster

- Add more assertions around retrieved data
2022-04-27 12:25:19 -03:00
Jason Rhinelander 09405cff32
Disable buggy peer storage testing
This testing fails a lot, spewing erroneous crap into logs.  We also
don't do anything with the test results, so just disable initiating them
for now.
2022-04-27 12:25:19 -03:00
Jason Rhinelander 91337019f1
Enforce retrieval authentication at HF19 (except for namespace -10)
-10 is for legacy closed group messages, which will be the only
unauthenticated-retrieval namespace starting at HF19.
2022-04-27 12:25:19 -03:00
Jason Rhinelander 84277ef035
network-tests: don't try inactive SNs
Don't try using inactive SNs because they will often fail and give
timeouts.
2022-04-27 12:25:19 -03:00
Jason Rhinelander 238e799d63
Implement message namespaces 2022-04-27 12:25:19 -03:00
Jason Rhinelander e084d93ea0
Fix old pre-release pyoxenmq usage 2022-04-27 12:25:19 -03:00
Jason Rhinelander 854f8b5ebe
Bump to latest sqlite 2022-04-19 18:10:35 -03:00
Jason Rhinelander d65e07b31e
Add oxenc linking cmake workaround 2022-04-14 00:44:34 -03:00
Jason Rhinelander be549ed51f
Merge pull request #443 from jagerman/cli11
CLI11 + clang-format
2022-03-30 19:54:40 -03:00
Jason Rhinelander b07092d32e
Merge pull request #442 from jagerman/maintenance-updates
Maintenance updates
2022-03-30 19:54:26 -03:00
Jason Rhinelander 306010094e
Add ci lint job 2022-03-29 19:34:12 -03:00
Jason Rhinelander 511ae36ac1
Properly add CLI11 submodule 2022-03-29 19:29:58 -03:00
Jason Rhinelander dd35ecd5cf
Remove obsolete Makefile 2022-03-29 19:00:48 -03:00
Jason Rhinelander 828df8abe5
clang-format
Set up more robust clang-format rules and apply them to the codebase.
2022-03-29 18:45:13 -03:00
Jason Rhinelander 4138cb7303
Rewite the README
It was full of outdated information.
2022-03-29 18:45:13 -03:00
Jason Rhinelander 5e446e5ef8
Kill -DINTEGRATION_TEST mode
It is unused and unmaintained and was mainly for early development.
2022-03-29 18:45:13 -03:00
Jason Rhinelander 0382cf3262
Remove deprecit option
DISABLE_SNODE_SIGNATURE hasn't done anything for quite a while.
2022-03-29 18:45:13 -03:00
Jason Rhinelander afcda8b446
Convert boost::program_options to CLI11
boost::po has terrible syntax, various weird bugs, and is the last
remaining boost dependency in the package.

This also serves as a bit of a proof-of-concept for switching to CLI11
in lokinet and oxen-core.
2022-03-29 18:45:12 -03:00