dbomproject / enhancements Goto Github PK
View Code? Open in Web Editor NEWPublic Tracking Repository for DEPs (DBoM Enhancement Proposals)
Public Tracking Repository for DEPs (DBoM Enhancement Proposals)
It would be highly beneficial for rich query support to be part of the API provided by the open source DBoM node. It would allow for channel wide searches based on attestation fields which has been a common use case for various PoCs/Prototypes.
This would mean that:
There is a feature complete rich query dialect that the gateway understands
Existing agents would gain the capability to translate this dialect to the native querying dialect that exists on the repositories they operate on
Discussion Link: N/A
Architecture/Reference documentation links:
Primary contact (assignee): @mathisonryan
Planned Release Milestone:
Related Issues
Please keep this description up to date. This will help the DBoM Team to track the evolution of the enhancement efficiently.
Over the last two years, we have gained a deep understanding of the applicability of DBoM Channel-based attestation sharing. We have also invalidated some initial assumptions.
These are the primary pain points that we want to address with this re-architecture:
We have had to work around these extensively for both IOTA-Agent and Trillian Agent by either maintaining local state or working around the storage APIs. We also do not have rich query capabilities for any of these agents.
In retrospect, there is no need to couple the notary and storage. You could choose to store your assets on MongoDB, Postgres, or any other compatible database and still choose to notarize them on platforms like Hyperledger Fabric, Ethereum, IOTA, etc. This also means we will get excellent query and commit performance (as databases are built for this) while also having the capability to asynchronously notarize and even have different notaries per channel. This also means that you can only notarize for a subset of critical channels (for instance, why would you want to notarize your dev channel if notarization comes at a cost).
This document describes a high-level summary of changes coupled with a high-level architecture required to achieve these changes. It does not go into implementation specifics such as the API schema.
New federation-based channel management model
All requests to channels from other organizations will now go through their DBoM Node to enable the new policy engine and completely abstract the repository used by the other organization. This is explained in depth in the "Channel Establishment" section of the architecture document.
Separation of the data repository and the notary services
The data repository will now be independent of the choice of the notary. This means that the notarized attestation of data that is stored in MongoDB, PostgreSQL, or any other database can now reside separately on a distributed ledger, transparency log, or any other notary.
DBoM Nodes will have universally resolvable identities
DBoM nodes will have a way to establish their identity, by utilizing a multi-factor authentication mechanism that can involve mTLS PKI-based Cryptography and Decentralized Identities, described in the "DBoM Node Identities and URIs for channels" section.
DBoM Nodes will support complex policies and read audits
With the new federation-based channel management model, all requests to a channel will go through the DBoM node and they no longer hit the repository directly. This means that we can now have complex policies (OpenPolicyAgent-Rego-like) and capabilities like read-audit.
Introduction of a pub-sub service
In this iteration, remote DBoM nodes (and applications leveraging them) can subscribe to changes on a channel in real time with a repository-agnostic streaming API.
A new iteration of the asset envelope
The asset envelope is the schema that needs to be followed to commit an asset to a DBoM channel. There is an overhauled schema that is use-case independent. See more in Asset Envelope V2
Complete removal of the RepoID concept at a DBoM Node level
With the new channel management model, it makes the most sense for one DBoM node to have precisely one local repository configured at a given time. To be clear, the node will still support a variety of local repositories, but will only be associated with one at any given time. This will remove complexities arising from cross-repository operations such as aggregations.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.