golem-vm-provider 0.1.9__py3-none-any.whl → 0.1.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: golem-vm-provider
3
- Version: 0.1.9
3
+ Version: 0.1.10
4
4
  Summary: VM on Golem Provider Node - Run your own provider node to offer VMs on the Golem Network
5
5
  Keywords: golem,vm,provider,cloud,decentralized
6
6
  Author: Phillip Jensen
@@ -82,20 +82,20 @@ sequenceDiagram
82
82
  PM-->>S: Verification Result
83
83
  ```
84
84
 
85
- - Comprehensive port accessibility verification
86
- - Real-time status display with progress indicators
87
- - Local and external port validation
88
- - Automatic port allocation management
85
+ - Comprehensive port accessibility verification
86
+ - Real-time status display with progress indicators
87
+ - Local and external port validation
88
+ - Automatic port allocation management
89
89
 
90
90
  ### Future Developments
91
91
 
92
92
  The current port verification system uses dedicated port check servers to verify external accessibility. In future releases, this functionality will be integrated into the Golem Network's verifier nodes, providing:
93
93
 
94
- - Decentralized port verification through the network
95
- - Increased reliability with multiple verification sources
96
- - Consensus-based verification results
97
- - Reduced dependency on centralized services
98
- - Enhanced security through the network's trust system
94
+ - Decentralized port verification through the network
95
+ - Increased reliability with multiple verification sources
96
+ - Consensus-based verification results
97
+ - Reduced dependency on centralized services
98
+ - Enhanced security through the network's trust system
99
99
 
100
100
  This integration aligns with Golem's vision of a fully decentralized computing platform, moving critical infrastructure services like port verification into the network itself.
101
101
 
@@ -103,10 +103,10 @@ This integration aligns with Golem's vision of a fully decentralized computing p
103
103
 
104
104
  The resource management system ensures optimal allocation and utilization of system resources:
105
105
 
106
- - Real-time monitoring of CPU, memory, and storage
107
- - Intelligent resource allocation with minimum requirement enforcement
108
- - Threshold-based resource protection
109
- - Automatic resource reclamation
106
+ - Real-time monitoring of CPU, memory, and storage
107
+ - Intelligent resource allocation with minimum requirement enforcement
108
+ - Threshold-based resource protection
109
+ - Automatic resource reclamation
110
110
 
111
111
  ```mermaid
112
112
  sequenceDiagram
@@ -114,7 +114,7 @@ sequenceDiagram
114
114
  participant RT as Resource Tracker
115
115
  participant RM as Resource Monitor
116
116
  participant AD as Advertiser
117
-
117
+
118
118
  API->>RT: Request Resource Allocation
119
119
  RT->>RM: Check Available Resources
120
120
  RM-->>RT: Resource Status
@@ -134,7 +134,7 @@ sequenceDiagram
134
134
  participant MP as Multipass
135
135
  participant CI as Cloud Init
136
136
  participant VM as Virtual Machine
137
-
137
+
138
138
  API->>MP: Create VM Request
139
139
  MP->>CI: Generate Config
140
140
  CI-->>MP: SSH Configuration
@@ -143,10 +143,10 @@ sequenceDiagram
143
143
  MP-->>API: VM Info
144
144
  ```
145
145
 
146
- - Automated VM provisioning with cloud-init
147
- - Secure SSH key management
148
- - Status monitoring and health checks
149
- - Automatic cleanup procedures
146
+ - Automated VM provisioning with cloud-init
147
+ - Secure SSH key management
148
+ - Status monitoring and health checks
149
+ - Automatic cleanup procedures
150
150
 
151
151
  ### Network Proxy System
152
152
 
@@ -158,7 +158,7 @@ sequenceDiagram
158
158
  participant PM as Proxy Manager
159
159
  participant P as Proxy
160
160
  participant VM as Virtual Machine
161
-
161
+
162
162
  C->>PM: SSH Connection
163
163
  PM->>P: Create Proxy
164
164
  P->>VM: Forward Connection
@@ -166,29 +166,31 @@ sequenceDiagram
166
166
  P-->>C: Forward Response
167
167
  ```
168
168
 
169
- - Dynamic port allocation and management
170
- - Connection state persistence
171
- - Clean connection handling
172
- - Automatic proxy cleanup
169
+ - Dynamic port allocation and management
170
+ - Connection state persistence
171
+ - Clean connection handling
172
+ - Automatic proxy cleanup
173
173
 
174
174
  ## Installation
175
175
 
176
176
  1. Prerequisites:
177
- - Python 3.9+
178
- - Multipass
179
- - Poetry
177
+
178
+ - Python 3.9+
179
+ - Multipass
180
+ - Poetry
180
181
 
181
182
  2. Install dependencies:
182
- ```bash
183
- cd provider-server
184
- poetry install
185
- ```
183
+
184
+ ```bash
185
+ cd provider-server
186
+ poetry install
187
+ ```
186
188
 
187
189
  3. Configure environment:
188
- ```bash
189
- cp .env.example .env
190
- # Edit .env with your settings
191
- ```
190
+ ```bash
191
+ cp .env.example .env
192
+ # Edit .env with your settings
193
+ ```
192
194
 
193
195
  ## Configuration
194
196
 
@@ -219,7 +221,7 @@ GOLEM_PROVIDER_PORT_RANGE_END={end_port} # Default: 50900
219
221
  GOLEM_PROVIDER_PUBLIC_IP="auto"
220
222
 
221
223
  # Discovery Settings
222
- GOLEM_PROVIDER_DISCOVERY_URL="http://discovery.golem.network:7465"
224
+ GOLEM_PROVIDER_DISCOVERY_URL="http://discovery.golem.network:9001"
223
225
  GOLEM_PROVIDER_ADVERTISEMENT_INTERVAL=240
224
226
  ```
225
227
 
@@ -232,6 +234,7 @@ POST /api/v1/vms
232
234
  ```
233
235
 
234
236
  Request:
237
+
235
238
  ```json
236
239
  {
237
240
  "name": "my-webserver",
@@ -242,6 +245,7 @@ Request:
242
245
  ```
243
246
 
244
247
  Response:
248
+
245
249
  ```json
246
250
  {
247
251
  "id": "golem-my-webserver-20250219-130424",
@@ -259,10 +263,10 @@ Response:
259
263
 
260
264
  ### VM Operations
261
265
 
262
- - List VMs: `GET /api/v1/vms`
263
- - Get VM Status: `GET /api/v1/vms/{vm_id}`
264
- - Delete VM: `DELETE /api/v1/vms/{vm_id}`
265
- - Get Access Info: `GET /api/v1/vms/{vm_id}/access`
266
+ - List VMs: `GET /api/v1/vms`
267
+ - Get VM Status: `GET /api/v1/vms/{vm_id}`
268
+ - Delete VM: `DELETE /api/v1/vms/{vm_id}`
269
+ - Get Access Info: `GET /api/v1/vms/{vm_id}/access`
266
270
 
267
271
  ## Operations
268
272
 
@@ -273,10 +277,11 @@ poetry run python run.py
273
277
  ```
274
278
 
275
279
  The provider will:
280
+
276
281
  1. Verify port accessibility
277
- - Check discovery port (7466)
278
- - Verify SSH ports (50800-50900)
279
- - Display verification progress
282
+ - Check discovery port (7466)
283
+ - Verify SSH ports (50800-50900)
284
+ - Display verification progress
280
285
  2. Initialize resource monitoring
281
286
  3. Start the proxy manager
282
287
  4. Begin resource advertisement
@@ -290,7 +295,7 @@ sequenceDiagram
290
295
  participant RT as Resource Tracker
291
296
  participant AD as Advertiser
292
297
  participant DS as Discovery Service
293
-
298
+
294
299
  P->>RT: Initialize
295
300
  RT->>AD: Register Callback
296
301
  loop Every 4 minutes
@@ -304,33 +309,34 @@ sequenceDiagram
304
309
  ### Monitoring
305
310
 
306
311
  The provider includes comprehensive logging:
307
- - Resource allocation events
308
- - VM lifecycle changes
309
- - Network proxy operations
310
- - Discovery service interactions
312
+
313
+ - Resource allocation events
314
+ - VM lifecycle changes
315
+ - Network proxy operations
316
+ - Discovery service interactions
311
317
 
312
318
  ## Technical Details
313
319
 
314
320
  ### Security
315
321
 
316
- - Resource isolation through Multipass
317
- - Secure SSH key provisioning
318
- - Connection proxying for network isolation
319
- - Rate limiting on API endpoints
322
+ - Resource isolation through Multipass
323
+ - Secure SSH key provisioning
324
+ - Connection proxying for network isolation
325
+ - Rate limiting on API endpoints
320
326
 
321
327
  ### Performance
322
328
 
323
- - Asynchronous operations with FastAPI
324
- - Efficient resource tracking
325
- - Connection pooling for proxy servers
326
- - Optimized VM provisioning
329
+ - Asynchronous operations with FastAPI
330
+ - Efficient resource tracking
331
+ - Connection pooling for proxy servers
332
+ - Optimized VM provisioning
327
333
 
328
334
  ### Resource Protection
329
335
 
330
- - CPU threshold: 90%
331
- - Memory threshold: 85%
332
- - Storage threshold: 90%
333
- - Minimum resource guarantees
336
+ - CPU threshold: 90%
337
+ - Memory threshold: 85%
338
+ - Storage threshold: 90%
339
+ - Minimum resource guarantees
334
340
 
335
341
  ## Troubleshooting
336
342
 
@@ -339,33 +345,37 @@ Common issues and solutions:
339
345
  ### Port Verification Issues
340
346
 
341
347
  1. Provider Port ({provider_port}) Issues
342
- - Check if port is already in use
343
- - Verify port forwarding on router
344
- - Check firewall rules
345
- - Ensure provider is accessible to requestors
348
+
349
+ - Check if port is already in use
350
+ - Verify port forwarding on router
351
+ - Check firewall rules
352
+ - Ensure provider is accessible to requestors
346
353
 
347
354
  2. VM Access Port Range ({start_port}-{end_port}) Issues
348
- - Verify port range availability
349
- - Check for port conflicts
350
- - Configure router port forwarding
351
- - Review firewall settings for range
355
+
356
+ - Verify port range availability
357
+ - Check for port conflicts
358
+ - Configure router port forwarding
359
+ - Review firewall settings for range
352
360
 
353
361
  3. External Access Issues
354
- - Verify internet connectivity
355
- - Check port check servers are accessible
356
- - Review router NAT/firewall settings
357
- - Consider using alternative port check servers
362
+ - Verify internet connectivity
363
+ - Check port check servers are accessible
364
+ - Review router NAT/firewall settings
365
+ - Consider using alternative port check servers
358
366
 
359
367
  ### Port Verification Monitoring
360
368
 
361
369
  The provider includes real-time port verification status:
362
- - Visual progress indicators
363
- - Port accessibility status
364
- - Critical issues detection
365
- - Quick fix suggestions
366
- - Links to troubleshooting documentation
370
+
371
+ - Visual progress indicators
372
+ - Port accessibility status
373
+ - Critical issues detection
374
+ - Quick fix suggestions
375
+ - Links to troubleshooting documentation
367
376
 
368
377
  Example status output:
378
+
369
379
  ```bash
370
380
  🌟 Port Verification Status
371
381
  ==========================
@@ -376,17 +386,19 @@ Example status output:
376
386
  ```
377
387
 
378
388
  ### Resource Allocation Issues
379
- - Check system resource availability
380
- - Verify minimum requirements
381
- - Monitor resource thresholds
382
- - Review resource allocation logs
389
+
390
+ - Check system resource availability
391
+ - Verify minimum requirements
392
+ - Monitor resource thresholds
393
+ - Review resource allocation logs
383
394
 
384
395
  ### Discovery Service Issues
385
- - Check network connectivity
386
- - Verify discovery service URL
387
- - Check advertisement interval
388
- - Monitor advertisement responses
389
- - Verify provider registration status
396
+
397
+ - Check network connectivity
398
+ - Verify discovery service URL
399
+ - Check advertisement interval
400
+ - Monitor advertisement responses
401
+ - Verify provider registration status
390
402
 
391
403
  ## Contributing
392
404
 
@@ -2,7 +2,7 @@ provider/__init__.py,sha256=HO1fkPpZqPO3z8O8-eVIyx8xXSMIVuTR_b1YF0RtXOg,45
2
2
  provider/api/__init__.py,sha256=ssX1ugDqEPt8Fn04IymgmG-Ev8PiXLsCSaiZVvHQnec,344
3
3
  provider/api/models.py,sha256=JOzoNf1oE5N97UqTN5xuIrTkqn2tCHqPDaIzGA3jUyo,3513
4
4
  provider/api/routes.py,sha256=P27RQvNqFWn6PacRwr1PaVz-yv5KAWsp9KeORejkXSI,6452
5
- provider/config.py,sha256=_r_MP8cRyCtHB122TVIP7CGL-c95_LDzoaufkz0ne00,5005
5
+ provider/config.py,sha256=vEYg-DxijleAwqfyjCHM6OLK1pmj6hzG75jrHvco3p4,5005
6
6
  provider/discovery/__init__.py,sha256=VR3NRoQtZRH5Vs8FG7jnGLR7p7wn7XeZdLaBb3t8e1g,123
7
7
  provider/discovery/advertiser.py,sha256=yv7RbRf1K43qOLAEa2Olj9hhN8etl2qsBuoHok0xoVs,6784
8
8
  provider/discovery/resource_tracker.py,sha256=8dYhJxoe_jLRwisHoA0jr575YhUKmLIqSXfW88KshcQ,6000
@@ -20,7 +20,7 @@ provider/vm/multipass.py,sha256=RLUqCeoYz4PG8RL7dBu_TzjNEAmgIz9NonBtSuYc4kw,1643
20
20
  provider/vm/name_mapper.py,sha256=MrshNeJ4Dw-WBsyiIVcn9N5xyOxaBKX4Yqhyh_m5IFg,4103
21
21
  provider/vm/port_manager.py,sha256=d03uwU76vx6LgADMN8ffBT9t400XQ3vtYlXr6cLIFN0,9831
22
22
  provider/vm/proxy_manager.py,sha256=cu0FPPbeCc3CR6NRE_CnLjiRg7xVdSFUylVUOL1g1sI,10154
23
- golem_vm_provider-0.1.9.dist-info/METADATA,sha256=t8jACrNJHZRmkhB0cnTqDpdpLWisGCt0NuKRsnQVI6E,10461
24
- golem_vm_provider-0.1.9.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
25
- golem_vm_provider-0.1.9.dist-info/entry_points.txt,sha256=E4rCWo_Do_2zCG_GewNuftfVlHF_8b_OvioZre0dfeA,54
26
- golem_vm_provider-0.1.9.dist-info/RECORD,,
23
+ golem_vm_provider-0.1.10.dist-info/METADATA,sha256=QLachbvexsgzxaUKfGG_Ckzme9OJJ2Z4iS4wfUW3lpA,10594
24
+ golem_vm_provider-0.1.10.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
25
+ golem_vm_provider-0.1.10.dist-info/entry_points.txt,sha256=E4rCWo_Do_2zCG_GewNuftfVlHF_8b_OvioZre0dfeA,54
26
+ golem_vm_provider-0.1.10.dist-info/RECORD,,
provider/config.py CHANGED
@@ -45,7 +45,7 @@ class Settings(BaseSettings):
45
45
  return identity.get_or_create_identity()
46
46
 
47
47
  # Discovery Service Settings
48
- DISCOVERY_URL: str = "http://195.201.39.101:7465"
48
+ DISCOVERY_URL: str = "http://195.201.39.101:9001"
49
49
  ADVERTISEMENT_INTERVAL: int = 240 # seconds
50
50
 
51
51
  # VM Settings