Sync the ProConfig to swarms rather than extra data#80
Open
Doy-lee wants to merge 5 commits intosession-foundation:devfrom
Open
Sync the ProConfig to swarms rather than extra data#80Doy-lee wants to merge 5 commits intosession-foundation:devfrom
Doy-lee wants to merge 5 commits intosession-foundation:devfrom
Conversation
Restore syncing to the swarms so that multi-device Session accounts agree and unify and use the same Session Pro proof. Having every device use the same proof is important to prevent observers from identifying devices based on their attached proof. This removes the std::optional<ProConfig> from the user profile and instead it's loaded from the internal `.data` dict and follows the same pattern as the rest of the code. Caching the value is additional state that can go out of sync.
mpretty-cyro
approved these changes
Feb 25, 2026
jagerman
reviewed
Feb 25, 2026
jagerman
reviewed
Feb 25, 2026
`pro_proof` is just as long as `pro.proof` so no need to pull it into a reference.
jagerman
reviewed
Feb 25, 2026
include/session/config/pro.hpp
Outdated
Comment on lines
18
to
21
| /// | +-- r - rotating ed25519 privkey | ||
| /// | +-- r - rotating ed25519 pubkey | ||
| /// | +-- s - proof signature, signed by the Session Pro Backend's ed25519 key | ||
| /// | | ||
| /// +-- r - rotating ed25519 pubkey | ||
| /// +-- r - rotating ed25519 privkey |
Member
There was a problem hiding this comment.
Since this is now going into network config messages, we should try to minimize it dropping the duplicate pubkey field, and storing only the seed value instead of the privkey (i.e. just the first 32 bytes rather than the 64-byte seed + precomputed pubkey in the privkey value)
Member
There was a problem hiding this comment.
(and on load, recompute the pubkey from the seed)
Re-derive the private key and public key into the runtime structures from the seed saving 64b on the wire.
auto-merge was automatically disabled
February 25, 2026 03:16
Head branch was pushed to by a user without write access
This file contains hidden or 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
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.
Restore syncing to the swarms so that multi-device Session accounts agree and unify and use the same Session Pro proof. Having every device use the same proof is important to prevent observers from identifying devices based on their attached proof.
This removes the std::optional from the user profile and instead it's loaded from the internal
.datadict and follows the same pattern as the rest of the code. Caching the value is additional state that can go out of sync.