-
Notifications
You must be signed in to change notification settings - Fork 8
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
Refactor crate structure #22
Comments
I would like to pursue a curve agnostic approach as much as possible and suggest we have a generic BBS implementation that mainly depends upon(trait only dependency)
Then we can have a BBS-cipher suite implementation with a specific pairing curve, hash function, and hash-to-curve for easy integration in our wrappers. src
├── common
│ ├── error.rs
│ ├── hash_to_curve.rs (traits)
│ └── util.rs
├── curve
│ └── bls12381
│ └── hash_to_curve.rs (implementation, we should be keeping this to wrap `blst` implementation)
├── integration
│ └── bbs
│ └── api
├── lib.rs
└── schemes
└── bbs
└── core (curve agnostic implementation, depends only on traits from pairing, digest, etc. )
├── public_key.rs
└── secret_key.rs
└── other existing code
|
Im ok with pursuing abstractions provided they aren't too difficult to maintain, w.r.t BBS I think there maybe some operations that will be more difficult to abstract, for example the In terms of directory structure I think we are functionally talking very similar designs what about the following
|
^^ Directory structure looks good to me. Agree with maintaiability, allow me code and show something this week. |
Move the current |
#26 partially closes this issue. Following is a list of pending tasks
|
With the merging of #20 we need to now consider how to restructure the crate, currently the intended design was documented as
However this structure implies we want to build an implementation of BBS that is curve agnostic, which in practise may be difficult/less worthwhile doing now. So I propose we add another layer
ciphersuite
.Meaning the structure is as follows
In order to do this, I recommend we do the following
I've started this process here
The text was updated successfully, but these errors were encountered: