Skip to content

DRM - Data Rights Management

Powered by

DS2 ATC logo

Project Links
Software GitHub Repository https://github.com/ds2-eu/drm.git
Progress GitHub Project https://github.com/ds2-eu/DRM/issues

General Description

The purpose of DRM is to enhance the management and security of digital asset transactions through a robust blockchain-based Data Rights Management (DRM) system. It is designed to perform critical functions, including the notarization, tracking, and validation of all data rights transactions both within individual Dataspaces and across multiple participating Dataspaces

The Blockchain-based DRM (based on the IDSA clearing house module specifications) will be a two-fold solution that will provide both inter (between Data Spaces) and intra (within Data Spaces) connectivity for data-sharing between Data providers and Data consumers of the participating Dataspaces.

Architecture

The figure below represents the module fit into the DS-DS environment. DS2 DRM Architecturefits

The figure below represents the actors, internal structure, primary sub-components, primary DS2 module interfaces, and primary other interfaces of the module. DS2 DRM Architecture

Component Definition

This module has the following subcomponents and other functions: - DRM UI: This component is a dashboard that allows users to view logs and transactions occurring between or across dataspaces. Users can easily access detailed records of their interactions with other partners. This dashboard interacts with the DRM UI Backend subcomponent, which performs the necessary transformations of data extracted from the ledger extractor to be appropriately displayed on the dashboard and supports all necessary CRUD operations.

  • DRM UI Backend: This subcomponent retrieves log information extracted from the ledger and performs additional transformations to make the data viewable on the dashboard. It interacts with the Ledger Extractor to access the requested data and communicates with the DRM UI to display the transformed data to users.

  • Ledger Extractor: This subcomponent securely extracts data from the ledger, converts it into a readable format, forwards it to other services that require access to ledger information. It securely interacts with the DRM Blockchain Manager to retrieve the necessary logs that are stored to the Blockchain’s ledger, DRM UI Backend to provide information that need to be viewed in UI and with Policy Agreement and Enforcement through API to provide information that is needed for the app.

  • Connector monitoring: This subcomponent is designed to retrieve logs from the connector and forward them to the blockchain for secure storage on the ledger. It interacts with the DRM Blockchain Manager to ensure that these logs are effectively recorded in the ledger. It is compatible with EDC connector and IDSA connector. This component is optional, allowing participants to use it solely for DRM to log transactions through supported APIs or restrict its use to DS2 tools if preferred.

  • DRM Blockchain Core: This subcomponent is the core functionality of the blockchain incorporating essential components to initiate the blockchain network. It provides the functionality of storing immutable, verify information and encrypt information to the ledger. It interacts directly with the ledger to store information securely and works in conjunction with the Blockchain Manager to store additional logs provided by other DS2 modules.

  • DRM Blockchain Manager: The subcomponent is responsible for fetching from the blockchain, transforming incoming data logs into the correct schema so they can be stored on the blockchain, and ensuring they are placed correctly within the blockchain's ledger. Furthermore, it interacts with the DS2 Policy Agreement and Enforcement Module via API to access and provide logs essential for its operations. Additionally, it interacts with other DS2 modules, that interact with data, via API to store logs about data process.

Screenshots

DS2 DRM Screenshots

Commercial Information

Organisation (s) License Nature License
ATC Open Source Apache 2.0

Top Features

  1. End-to-End Data Accountability: Provides full traceability and transparency of data usage events, ensuring organizations can demonstrate compliance with data responsibility and sharing agreements.

  2. Trusted Log Verification: Enables organizations to verify and audit logs in a tamper-evident way, fostering trust between data providers, consumers, and intermediaries.

  3. Cross-Organizational Visibility: Offers a unified interface for viewing data-related events across systems and partners, improving governance in federated or multi-stakeholder environments.

  4. Plug-and-Play Integration: Designed to integrate with existing DS2 components and Eclipse Dataspace Connectors with minimal effort, reducing the barrier to adoption.

  5. Configurable Policy Monitoring: Collects and displays policy-related events (e.g., usage constraints, violations), supporting proactive governance and dynamic enforcement of data policies.

  6. User-Centric Access to Ledger Insights: Through a visual interface, users can easily access and interpret ledger data without needing technical knowledge, democratizing access to compliance insights.

  7. Modular and Scalable Architecture: Built with modular sub-components, allowing organizations to deploy the module in stages or scale it based on operational needs.

  8. Designed for Interoperability in Data Spaces: Addresses real-world challenges of interoperability and trust in data spaces by aligning with emerging data sovereignty and governance requirements.

  9. Enhances Digital Trust for Data Sharing: By proving that data usage is being tracked and governed, the DRM module helps build confidence and reduce friction in data sharing collaborations.

How To Install

Requirements

Following are the Hardware Requirements for DRM - CPU: 8 vCPUs

  • RAM: 16 GB

  • Storage: 100 GB SSD (expandable depending on ledger size and log retention)

  • OS: Ubuntu 22.04 LTS or equivalent

Software

Following are the Software Requirements for DRM - Docker: Docker Engine ≥ 20.x, Docker Compose ≥ 2.x - Hyperledger Fabric (Detailed installation instructions are below) - Node.js - Express.js - CouchDB - cURL - Postman (Optional, used during development)

Summary of installation steps

  1. Download and Setup Hyperledger Fabric
  2. Start the DRM Blockchain Core
  3. Run DRM Blockchain Manager
  4. Build and run DRM UI Backend as a Docker container
  5. Build and run DRM Ledger Extractor as a Docker container
  6. Build and run DRM connector monitoring as a Docker container

Detailed steps

Download Fabric samples, Docker images, and binaries

For a detailed view of the Hyperledger Fabric installation, make sure you read the official documentation: Hyperledger Fabric documentation

To get the install script:

curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh

To pull the Docker containers and clone the samples repo, run one of these commands for example

./install-fabric.sh docker samples binary

or

./install-fabric.sh d s b

If no arguments are supplied, then the arguments docker binary samples are assumed.

Make sure the Fabric binaries are added to your system PATH for CLI access.

Here are instructions for each subcomponent. Make sure you are in the direcory of each sub-component before running the following commands.

DRM Blockchain Core

To start the network you simple need to run the script:

cd ./fabric-samples/test-network/
./deploynetwork.sh

DRM Blockchain Manager

cd server
pm2 start npm --name drm-blockchain-manager -- run dev

pm2 logs drm-blockchain-manager --timestamp

DRM UI Backend

docker build -t drm-ui-backend:develop .
docker run -p 3000:3000 drm-ui-backend:develop
  ```  
-------------------------------------------------
#### DRM Ledger Extractor
```bash
docker build -t drm-ledger-extractor:develop .
docker run -p 3002:3002 drm-ledger-extractor:develop

DRM connector monitoring

docker build -t drm-connector-monitoring:develop .
docker run -p 3001:3001 drm-connector-monitoring:develop

How To Use

You can import the Postman collection you can find here to interact with the DRM subcomponents. Keep in mind that, due to IT restrictions, not all endpoints are currently available. Future updates will offer the full DRM capabilities.

Step 1. Accessing DRM:

Click on the Dash button within the PORTAL. This will open the Digital Ledger Dashboard, displaying all logged information clearly.

Step 2. Tracking and Monitoring Logs:

Use the dashboard to track, monitor, and filter the following log types: * Component Logs * Connector Logs * Policy Logs all logs

Step 3. Filtering Logged Actions:

Filter the logs based on a specific timeframe or field. filter

Step 4. Exploring Logged Actions:

To deep dive into details: Select a specific log entry. Review comprehensive payload details and information about each logged action. You have the option to see the details in a table format or with more details in "Advanced" mode. details - table details - advanced

Step 5. Enrolling Users to the Blockchain Network:

Note: This feature is currently a work in progress. When available, follow prompts to enrol new users into the blockchain network seamlessly.

Step 6. Performing CRUD Operations:

Note: This functionality is under development. Once active, you will be able to: Create, Read, Update, and Delete logs efficiently.

Stay updated with module enhancements as new features are implemented.

Other Information

No other information at the moment for DRM.

OpenAPI Specification

• DRM UI: N/A

• DRM UI Backend: open-api/swagger-ui-backend.json

• Ledger Extractor: open-api/swagger-ledger-extractor.json

• Connector monitoring: To Be Done

• DRM Blockchain Core: N/A

• DRM Blockchain Manager: open-api/swagger-blockchain-manager.json

N/A