mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-04 18:31:41 +00:00
@@ -0,0 +1,172 @@
|
||||
---
|
||||
title: "PDK Environment Configuration"
|
||||
description: "Comprehensive guide to configuring the Pluggable Development Kit (PDK) for Sonr plugins"
|
||||
icon: "gear"
|
||||
---
|
||||
|
||||
# PDK Environment Configuration
|
||||
|
||||
The Pluggable Development Kit (PDK) provides a flexible configuration system for managing plugin environments, MPC enclaves, and runtime settings.
|
||||
|
||||
## Environment Variables
|
||||
|
||||
### Core PDK Variables
|
||||
|
||||
| Variable | Type | Description | Default |
|
||||
| -------------- | -------- | --------------------------------- | ------------------ |
|
||||
| `chain_id` | `string` | Target blockchain network | `"sonr-testnet-1"` |
|
||||
| `enclave` | `object` | MPC enclave configuration | `{}` |
|
||||
| `vault_config` | `object` | Vault and key management settings | `{}` |
|
||||
| `log_level` | `string` | Logging verbosity | `"info"` |
|
||||
|
||||
## Enclave Configuration
|
||||
|
||||
### Basic Enclave Setup
|
||||
|
||||
```json
|
||||
{
|
||||
"enclave": {
|
||||
"id": "unique-enclave-identifier",
|
||||
"key_type": "secp256k1",
|
||||
"threshold": 2,
|
||||
"participants": [
|
||||
{ "id": "participant1", "public_key": "..." },
|
||||
{ "id": "participant2", "public_key": "..." }
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Advanced Enclave Parameters
|
||||
|
||||
```json
|
||||
{
|
||||
"enclave": {
|
||||
"security_level": "high",
|
||||
"attestation_mode": "remote",
|
||||
"key_rotation_interval": "1h",
|
||||
"backup_strategy": "distributed"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Vault Configuration
|
||||
|
||||
### Key Management Settings
|
||||
|
||||
```json
|
||||
{
|
||||
"vault_config": {
|
||||
"storage_backend": "ipfs",
|
||||
"encryption": {
|
||||
"algorithm": "aes-256-gcm",
|
||||
"key_derivation": "pbkdf2"
|
||||
},
|
||||
"access_control": {
|
||||
"mode": "role-based",
|
||||
"default_role": "viewer"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Logging Configuration
|
||||
|
||||
```json
|
||||
{
|
||||
"log_level": "debug",
|
||||
"log_format": "json",
|
||||
"log_outputs": [
|
||||
{ "type": "stdout" },
|
||||
{ "type": "file", "path": "/var/log/sonr/pdk.log" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Performance Tuning
|
||||
|
||||
```json
|
||||
{
|
||||
"performance": {
|
||||
"max_concurrent_tasks": 10,
|
||||
"task_timeout": "5m",
|
||||
"memory_limit": "512MB",
|
||||
"cpu_allocation": 2
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Security Hardening
|
||||
|
||||
```json
|
||||
{
|
||||
"security": {
|
||||
"require_mfa": true,
|
||||
"allowed_key_types": ["secp256k1", "ed25519"],
|
||||
"audit_logging": true,
|
||||
"rate_limiting": {
|
||||
"max_requests_per_minute": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Plugin-Specific Configuration
|
||||
|
||||
```json
|
||||
{
|
||||
"plugins": {
|
||||
"motor": {
|
||||
"mpc_mode": "distributed",
|
||||
"token_generation_rate_limit": 10
|
||||
},
|
||||
"did": {
|
||||
"supported_methods": ["did:key", "did:sonr"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Environment Loading Precedence
|
||||
|
||||
1. Environment Variables
|
||||
2. Configuration Files
|
||||
3. Default Values
|
||||
|
||||
## Best Practices
|
||||
|
||||
- Use environment-specific configurations
|
||||
- Implement strict access controls
|
||||
- Rotate encryption keys regularly
|
||||
- Monitor and log configuration changes
|
||||
- Use minimal privilege principles
|
||||
|
||||
## Example Configuration Loading
|
||||
|
||||
```go
|
||||
func loadPDKConfiguration() (*PDKConfig, error) {
|
||||
// Load from environment variables
|
||||
config := &PDKConfig{}
|
||||
|
||||
// Override with config file if exists
|
||||
configFile, err := ioutil.ReadFile("/etc/sonr/pdk.json")
|
||||
if err == nil {
|
||||
json.Unmarshal(configFile, config)
|
||||
}
|
||||
|
||||
return config, nil
|
||||
}
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- Check `log_level` for detailed diagnostics
|
||||
- Validate JSON configuration syntax
|
||||
- Verify key and enclave configurations
|
||||
|
||||
## Advanced Topics
|
||||
|
||||
For more complex PDK configurations, refer to:
|
||||
|
||||
- [DWN Plugin Documentation](/blockchain/modules/dwn/plugin)
|
||||
- [DWN Architecture Overview](/blockchain/modules/dwn/architecture)
|
||||
Reference in New Issue
Block a user