-
Notifications
You must be signed in to change notification settings - Fork 8
docs: Add peer-cache-encryption-storage.md #9
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
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: chohee <[email protected]>
@ChoHee15 Implementation can add some text introduction here as appropriate. Also for the encryption algorithm, the advantages of choosing it can be analyzed. |
Signed-off-by: chohee <[email protected]>
@ChoHee15 Please remember to check my comments in your commits! |
I will add more detail to design and implementation. |
Signed-off-by: chohee <[email protected]>
Please do not add the ‘dragonfly-client-crypto’ module, it will affect the structure of the client code, please make sure to modify this part again. |
Signed-off-by: chohee <[email protected]>
Signed-off-by: chohee <[email protected]>
You select Manager to store key, so you need add Manager design to here |
Signed-off-by: chohee <[email protected]>
Signed-off-by: chohee <[email protected]>
Signed-off-by: chohee <[email protected]>
## Compatibility | ||
|
||
1. **Backward Compatibility**: The existing `Task` and `PersistentCacheTask` functionalities will remain unchanged for non-encrypted operations. The encryption feature will be optional and configurable. | ||
2. **Configuration**: New encryption-related configurations will be added with sensible defaults (e.g., encryption disabled by default). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the configuration, you can elaborate on where the encryption configuration should be specified, and add an example. I suggest putting it in the client's yaml file.
|
||
## Compatibility | ||
|
||
1. **Backward Compatibility**: The existing `Task` and `PersistentCacheTask` functionalities will remain unchanged for non-encrypted operations. The encryption feature will be optional and configurable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thing to consider here. The same client, if the encryption configuration is changed, how to unify the management and identification of encrypted and non-encrypted tasks on the backend at this time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ChoHee15 Where is this part of the design presented
|
||
```rust | ||
// dragonfly-client-storage/src/content.rs | ||
pub async fn write_persistent_cache_piece<R: AsyncRead + Unpin + ?Sized>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ref https://d7y.io/docs/next/concepts/persistent-cache-task/, add write_piece
Overview
This PR adds a design document for Peer Cache Encryption Storage in Dragonfly's P2P file transfer system. This is part of the preparation for the GLCC project.
Changes
Add systems-analysis/peer-cache-encryption-storage.md design document
Propose P2P Peer Cache Encryption Storage implementation.
Key Features
Data Security: Introduces encryption for cached data to protect sensitive information.
Backward Compatible: Maintains existing Dragonfly functionalities and is configurable as an optional feature.
Seamless Integration: Integrates with the existing Persistent Cache workflow.
Minimal Overhead: Aims for minimal performance impact during encryption/decryption.