Lycan & Spatie
Π’Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΡΡ, ΠΊΠ°ΠΊ Π±Ρ ΡΡ ΠΎΡ
ΡΠ°Π½ΡΠ» Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ
Π½Π° Π»ΡΠ½Π½ΠΎΠΉ Π±Π°Π·Π΅? ΠΠ½Π΅ Π½ΡΠΆΠ΅Π½ ΠΏΠ»Π°Π½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΠΈ ΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡ ΡΠΊΠΈΠΏΠ°ΠΆΠ°.
ΠΡΠΈΠ²Π΅Ρ, Π΄Π°Π²Π°ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠ°ΠΊ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΡΠ½ΡΠΉ ΡΡΠΈΠΊ Π½Π° ΠΡΠ½Π΅. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π·Π°Π±Π»ΠΎΠΊΠΈΡΡΠΉ Π΅Π³ΠΎ ΠΊΠ»ΡΡΠΎΠΌ Π² 256 Π±ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠΈΠΏΠ°ΠΆΡ, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ
ΡΠ°Π½ΠΈ Π΅Π³ΠΎ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ΅ β ΠΏΠΎΠΌΠ΅ΡΡΠΈ Π΅Π³ΠΎ Π² Π·Π°ΡΠΈΡΡΠ½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠ²Π°Π½ΡΠΎΠ²ΠΎ-ΡΡΡΠΎΠΉΡΠΈΠ²ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. ```python
vault = EncryptedVault(key=SecureEnclave.get_key())
``` ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΡΠ΅Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Π±Π°Π·Ρ, ΡΡΠΎΠ±Ρ Π»ΡΠ±ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π·Π° ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ. ```js
ledger.record(action="access", module="hab1", timestamp=now)
``` Π-ΡΡΠ΅ΡΡΠΈΡ
, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠΊΠΈΠΏΠ°ΠΆΡ ΡΠΎΠ»Ρ Β«Ρ
ΡΠ°Π½ΠΈΡΠ΅Π»ΡΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΠΆΡΡΠ½Π°Π»Ρ Π°ΡΠ΄ΠΈΡΠ°, Π½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠ»ΡΡ. ΠΡΠΎ ΡΠΊΡΠ΅ΠΏΠΈΡ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ ΠΈ Π²ΠΎΠ²Π»Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠ°ΠΊ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΠΎΠ·ΠΎΡΠ½ΡΠΉ.
Π Π΅ΡΠ»ΠΈ Π½Π° Π±Π°Π·Ρ Π²ΡΠ΅ΠΆΠ΅ΡΡΡ Π±Π»ΡΠΆΠ΄Π°ΡΡΠΈΠΉ Π°ΡΡΠ΅ΡΠΎΠΈΠ΄, ΡΠ΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ Π² ΠΊΡΠΈΠΎΠ³Π΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΌΠ΅ΡΠ΅, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π² 30 ΠΊΠΈΠ»ΠΎΠΌΠ΅ΡΡΠ°Ρ
, ΡΠΎΡ
ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ sci-fi Π°ΡΠΌΠΎΡΡΠ΅ΡΠ° Π±Π΅Π· Π»ΠΈΡΠ½Π΅ΠΉ ΠΏΠ°ΡΠΎΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠΌΠ½ΠΈ, Π² ΡΠ·ΡΠΊΠ΅ ΠΈΠ½ΠΎΠΏΠ»Π°Π½Π΅ΡΡΠ½ Β«Π'ΡΠ°ΡΒ» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΒ», Π° Β«Π'ΡΠ°Β» β Β«ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅Β». Π’Π°ΠΊ ΡΡΠΎ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π'ΡΠ°Ρ-Π'ΡΠ°. Π£Π΄Π°ΡΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ.
ΠΠ²ΡΡΠΈΡ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ, Π½ΠΎ Π½Π΅ Π·Π°Π±ΡΠ΄Ρ ΠΏΡΠΎ ΠΈΡ
ΠΈΠ½ΡΡΠΈΠ½ΠΊΡ ΡΠ°ΠΌΠΎΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΡΠΎΠ²Π΅Π΄ΠΈ Π±ΡΡΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½Π°ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ, ΠΏΡΠΎΡΡΠΎ ΠΊΠΈΠ²Π½ΠΈ, ΠΊΠ°ΠΊ Π±Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ: "Π’Ρ Π³Π»Π°Π²Π½ΡΠΉ, Π½ΠΎ Ρ ΠΏΡΠΈΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ". ΠΠΎΠ²Π΅ΡΠΈΠ΅ β ΡΡΠΎ ΡΠ»ΠΈΡΠ° Ρ Π΄Π²ΡΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Π½Π΅ ΠΏΡΡΡΠΎΠΉ Π·Π²ΡΠΊ. ΠΠ΅ΡΠΆΠΈ Π²ΡΡ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ, Π±ΡΠ΄Ρ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ².
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ. ΠΠΎΠ±Π°Π²Π»Ρ Π±ΠΈΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ.
```python
if crew.pulse == "green" and crew.stress < 5:
Vault.unlock()
else:
Vault.lock()
```
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ, ΠΎΠ½ ΠΌΠΈΠ³Π°Π΅Ρ Π·Π΅Π»ΡΠ½ΡΠΌ, ΠΊΠΎΠ³Π΄Π° Π²ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΡΡΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π±Π΅Π· ΡΠ»ΠΎΠ², ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ ΠΊ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ. ΠΠ΅ΡΠΆΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΡΡΡΠ΅ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Π΅Ρ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ β ΡΠ»ΠΎΠ²Π½ΠΎ ΡΠΈΡΡΠΎΠ²Π°Ρ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π»ΡΠ΄ΡΠΌΠΈ ΠΈ ΡΠ΅Ρ
Π½ΠΈΠΊΠΎΠΉ.