System Architecture
The toolkit project system uses a multi-layered architecture to manage user assets, including SNS instances, toolkit projects, and privately owned canisters. Each layer has specific responsibilities to ensure organized indexing, governance, and centralized control over the user’s projects and canisters.
1. Toolkit Registry
The Toolkit Registry acts as a central directory for the user’s assets and project references. It maintains records of all projects associated with the user, including:
- SNSes: Managed by the SNS framework for networked services.
- Toolkit Projects: Projects deployed within the toolkit for centralized management and governance.
- Privately Owned Canisters: Canisters that are under direct user control and not managed within the toolkit structure.
Responsibilities:
- Tracks and maintains references to all SNS instances, toolkit projects, and privately owned canisters.
- Provides an interface to view and manage these assets from a single point, simplifying user asset tracking and organization.
2. Project Root Registry
The Project Root Registry is responsible for deploying and indexing toolkit root instances for each toolkit project. Each toolkit project has a Toolkit Root that provides centralized control over the project’s canisters.
Responsibilities:
- Deploys new toolkit root instances when a new toolkit project is created.
- Maintains an index of all toolkit root instances to manage the user’s toolkit projects effectively.
- Interfaces with the Toolkit Registry to remain synchronized with the user’s associated projects.
3. Toolkit Root
The Toolkit Root acts as the central controller for all canisters within a specific toolkit project. It consolidates control, enabling easier governance, management, and maintenance of the project’s canisters.
Responsibilities:
- Manages all canisters that the user adds under each toolkit project.
- Acts as the single controller for these canisters, providing centralized security and access control.
- Interfaces with the Project Root Registry to allow indexing and management under the toolkit architecture.
Toolkit Registry
|
|---> SNS
|
|---> Toolkit Project
| |
| |---> Project Root Registry
| |
| |---> Toolkit Root (Toolkit Project)
| |
| |---> Canister A
| |---> Canister B
| |---> Canister C
|
|---> Private Canister