Comments (3)
@rolsonquadras agreed
These are the key things an Agent needs to do:
- Store pairwise mappings of DIDs (ours and theirs)
- Look up a pairwise mapping of DIDs from just the sender's public key (when receiving a message)
- Look up pairwise mappings in order to then send a message to the other party.
Rough draft:
package did
// Connection is a pairwise relation between two DIDs (ours and theirs)
type Connection struct {
Mine *did.Doc
Theirs *did.Doc
Label string // human readable string set by the user, such as "Bob"
}
// Store is the storage interface for DIDs
type Store interface {
Iter() *Iterator // <--- iterator of Connections
Put(c *Connection) error
LookupByTheirPublicKey(k crypto.PublicKey) (c *Connection, found bool)
}
from aries-framework-go.
@llorllale Based on our offline discussion, i have updated interface design.
docstore to store only peer did docs
package docstore
type Store interface {
// Put stores the DID Doc
Put(*did.Doc) error
// GetAll fetches the DID Doc based on DID
Get(string) (*did.Doc, error)
}
connstore to store the mapping between my DID and their DID along with their public key
package connstore
// Connection is a pairwise relation between two DIDs (ours and theirs)
type Connection struct {
MineDID string
TheirDID string
TheirPublicKey []byte
Label string
}
type Store interface {
Iter() *ConnIterator // <--- iterator of Connections
Put(c *Connection) error
LookupByTheirPublicKey(pubKey *[]byte) (*Connection, bool)
}
Primary consideration to separate the doc store from connection store is to have a clear scope for each items rather than mixing both, which might result in maintainability issues later on. Also, peer did resolution will be simpler with a separate DID Doc store as we can just pass the DID to the method.
Please Let me know your thoughts. @troyronda FYI.
from aries-framework-go.
@rolsonquadras sounds good
from aries-framework-go.
Related Issues (20)
- SD-JWT: Validate the issuer of SD-JWT (Verifier)
- SD-JWT: Complete implementing CNF for Holder Binding as per spec
- Add interop test for verifier
- SD-JWT: Additional verification when creating disclosed claims (Verifier)
- DID implementation is outdated
- Consider tagging submodule "spi"?
- SD-JWT Documentation
- Disable JSON-lD checks for VPs with JWT VCs by default
- Wallet query multi-descriptor fix
- CI: Remove test without loader from unit-tests for domain linkage
- Fail generating mobile aar
- didexchange not support EcdsaSecp256k1VerificationKey2019
- Support for optional field in presentation exchange v2.0 implementation
- Proposal: use dependency for EC operations indirectly through mathlib HOT 1
- add unit tests for utils.go
- Android build issues from using mathlib HOT 12
- Unable to generate AriesAgent.framework HOT 1
- Update golangci-lint to use go 1.20 HOT 1
- Condense key format conversion helpers
- Create new repo for `github.com/hyperledger/aries-framework-go/component/kmscrypto/crypto/primitive/bbs12381g2pub` HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aries-framework-go.