forked from monero-project/monero
-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lokinet integration #936
Merged
Merged
Lokinet integration #936
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This allows a `"if_block_not_equal": "hash"` parameter to be given to `get_n_service_nodes` which, if the given value matches the current top block hash, skips building and returning a reply. This is primarily aimed at lokinet which polls fairly frequenty for an update but where the vast majority of those polls contain no new information. It also removes the get_all_service_nodes_public_keys RPC request completely as lokinet was the only consumer of it (particularly unlikely that anyone else was using this because it was returning the keys base32z-encoded).
With the previous commit we no longer need this conversion (and lokinet is perfectly happy just getting hex encoded values instead).
Also adds unordered_set serialization support (not that we currently need it, but it's just two lines to support).
This simplifies lokinet as it doesn't need to worry about finding the private key files; sometime after the next fork we do the same simplification to loki-storage-server to use this RPC call as well. Aside from simplifying the external components, I also have an idea here of an advanced SN setup that hosts multiple lokid's on an internal, beefy dedicated server with good redundant storage and lots of memory, combined with multiple VPSes with lots of bandwidth for lokinet/loki-storage but not enough storage/memory capacity to host the blockchain, and not having to coordinate storage across machines makes this setup substantially easier.
This abstracts much of the storage server ping code to work for both storage server and lokinet.
e5a460d
to
b64097a
Compare
(The other commit here is cherry-picked (unmodified) std::array serialization support commit from the blink PR.) |
looks good to me, you want to cherry-pick #880 in + code review? some overlap. |
Doy-lee
approved these changes
Nov 27, 2019
Renamed: - `if_block_not_equal` -> `poll_block_hash` - `gave_if_not_equal` -> `polling_mode` Added lokidocs documentation for the new and existing get_n_service_node fields, and adds magic codes to disable the internal variables.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds some RPC end points we need for lokinet integration: