ΠΠ»ΠΎΠΊΡΠ΅ΠΉΠ½ Π΅ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠ²Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΎΠ±Π΅ΡΠ°Π²Π° Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΡ ΡΠΎΠ²Π΅ΡΠΊΠΈΡ ΠΆΠΈΠ²ΠΎΡ. Π’ΠΎΠΉ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ ΡΠ΅Π°Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ Π² ΡΠΈΡΡΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠΊΠΎΡΠΎΡΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ Π½Π° ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΈΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΡΡ Π½Π°ΡΠ° ΡΠ΅Π½Π° ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ DAPP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ Π² Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ.
ΠΠ°ΡΠΎ ΡΠ΅ ΠΈΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΈ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈΠ·Π½Π΅Π½Π°Π΄Π²Π°ΡΠΎ, ΡΠ΅ ΡΠ°Π·ΠΈ ΠΎΠ±Π΅ΡΠ°Π²Π°ΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π½Π°Π²Π»ΡΠ·Π»Π° Π²ΡΠ² Π²ΡΡΠΊΠ° ΠΈΠ½Π΄ΡΡΡΡΠΈΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ΠΈ Π½ΡΠΌΠ°Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ. Ethereum ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΎΠΊΠΎΠ»ΠΎ 20 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ, Π·Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π½Π° Π΄Π½Π΅ΡΠ½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ Π±ΠΈΠ·Π½Π΅Ρ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ°, ΡΠ΅ ΠΊΠΎΠ»Π΅Π±Π°ΡΡ Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°ΠΆΠ°Ρ ΠΎΡ Ethereum ΠΏΠΎΡΠ°Π΄ΠΈ Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΠΌΡ ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ Ρ Π°ΠΊΠ²Π°Π½Π΅ ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ.
ΠΠ° Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ Π² Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½Π°, ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π° ΡΡΠΈΠ»Π΅ΠΌΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ, Π΅ΠΊΠΈΠΏΡΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΠ»ΡΡΠΎΠ²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π² Plasma Cash
1. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π½Π°ΡΠΈΡΠ° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ βΠ΄Π΅ΠΏΠΎΠ·ΠΈΡβ, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄Π°Π²Π° Π² Π½Π΅Ρ ΡΡΠΌΠ°ΡΠ° ETH, ΠΊΠΎΡΡΠΎ ΠΈΡΠΊΠ° Π΄Π° Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ° Π² ΡΠΎΠΊΠ΅Π½Π° Π½Π° Plasma Cash. Π€ΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΡΡΠ·Π΄Π°Π²Π° ΡΠΎΠΊΠ΅Π½ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΡΠ±ΠΈΡΠΈΠ΅ Π·Π° Π½Π΅Π³ΠΎ.
2. ΠΡΠ·Π»ΠΈΡΠ΅ Π½Π° Plasma Cash, Π°Π±ΠΎΠ½ΠΈΡΠ°Π½ΠΈ Π·Π° ΡΡΠ±ΠΈΡΠΈΡ Ρ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΡΡΠ±ΠΈΡΠΈΠ΅ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π΅ΠΏΠΎΠ·ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠΊΠ΅Π½ ΠΊΡΠΌ ΠΏΡΠ»Π°.
3. ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Π²ΡΠ·Π»ΠΈ Π½Π° Plasma Cash Π²Π·Π΅ΠΌΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° (Π΄ΠΎ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½) ΠΈ ΡΠΎΡΠΌΠΈΡΠ°Ρ Π±Π»ΠΎΠΊ ΠΎΡ ΡΡΡ , ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Ρ Π΄ΡΡΠ²ΠΎΡΠΎ Merkle ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Ρ Π΅ΡΠ°. Π’ΠΎΠ·ΠΈ Π±Π»ΠΎΠΊ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°. ΠΡΠ·Π»ΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ Π΄Π°Π»ΠΈ Ρ Π΅ΡΡΡ Π½Π° Merkle Π΅ Π²Π°Π»ΠΈΠ΄Π΅Π½ ΠΈ Π΄Π°Π»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΡΠ° Π²Π°Π»ΠΈΠ΄Π½ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π°Π»ΠΈ ΠΏΠΎΠ΄Π°ΡΠ΅Π»ΡΡ Π½Π° ΡΠΎΠΊΠ΅Π½Π° Π΅ Π½Π΅Π³ΠΎΠ² ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ). Π‘Π»Π΅Π΄ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π±Π»ΠΎΠΊΠ°, Π²ΡΠ·Π΅Π»ΡΡ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° `submitBlock` Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, ΠΊΠΎΡΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π° Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠ° ΠΈ Ρ Π΅ΡΠ° Π½Π° Merkle Π² ΠΊΡΠ°ΠΉΠ½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°. ΠΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΡΠ±ΠΈΡΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·Π²Π°ΡΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π±Π»ΠΎΠΊ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Ρ ΠΎΡ ΠΏΡΠ»Π°.
4. ΠΡΠ·Π»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΡΡΠ±ΠΈΡΠΈΠ΅ΡΠΎ Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊ, Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ Π±Π»ΠΎΠΊΠ°.
5. Π Π΄Π°Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΡΡ (ΠΈΠ»ΠΈ Π½Π΅ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΡΡ) Π½Π° ΡΠΎΠΊΠ΅Π½Π° ΠΈΡΠΊΠ° Π΄Π° Π³ΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΠΈ ΠΎΡ Plasma Cash. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π°, ΡΠΎΠΉ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° `startExit`, ΠΏΡΠ΅Π΄Π°Π²Π°ΠΉΠΊΠΈ Π² Π½Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 2 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π° ΡΠΎΠΊΠ΅Π½Π°, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π°Π²Π°Ρ, ΡΠ΅ ΡΠΎΠΉ Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ Π½Π° ΡΠΎΠΊΠ΅Π½Π°. ΠΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Ρ Π΅ΡΠ° Merkle, ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΠΎΠΊΠ΅Π½Π° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΠ»Π΅Π΄ Π΄Π²Π΅ ΡΠ΅Π΄ΠΌΠΈΡΠΈ.
6. ΠΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠΎΠΊΠ΅Π½Π° Π΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ (ΡΠΎΠΊΠ΅Π½ΡΡ Π΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°Π½ ΡΠ»Π΅Π΄ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° ΠΏΠΎ ΡΠ΅Π³Π»Π΅Π½Π΅ ΠΈΠ»ΠΈ ΡΠΎΠΊΠ΅Π½ΡΡ Π²Π΅ΡΠ΅ Π΅ Π±ΠΈΠ» Π½Π° Π½ΡΠΊΠΎΠΉ Π΄ΡΡΠ³ ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅Π³Π»Π΅Π½Π΅ΡΠΎ), ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΡΡ Π½Π° ΡΠΎΠΊΠ΅Π½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΡΠΎΠ²Π΅ΡΠ³Π°Π΅ ΡΠ΅Π³Π»Π΅Π½Π΅ΡΠΎ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΄Π²Π΅ ΡΠ΅Π΄ΠΌΠΈΡΠΈ.
ΠΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π° ΠΏΠΎ Π΄Π²Π° Π½Π°ΡΠΈΠ½Π°
1. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° Π½Π΅ Π·Π½Π°Π΅ Π½ΠΈΡΠΎ Π·Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°Ρ Π² Π΄ΡΡΠ΅ΡΠ½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΡΠΎΠ²Π° ΠΊΠΎΠΉ Π΅ Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ°Π» ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΠ» ETH ΠΎΡ Plasma Cash ΠΎΡΡΠ°Π²Π° ΠΏΡΠ±Π»ΠΈΡΠ½Π°.
2. ΠΡΡΠ΅ΡΠ½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° zk-SNARK.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΡΠ΅ΠΊ
- NodeJS
- Redis
- ΠΡΠ΅ΡΠΈΡΠΌ
- Soild
Π’Π΅ΡΡΠ²Π°Π½Π΅
ΠΠΎΠΊΠ°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΠΌΠ΅ Plasma Cash, ΡΠ΅ΡΡΠ²Π°Ρ ΠΌΠ΅ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ:
- ΠΊΡΠΌ ΠΏΡΠ»Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π΄ΠΎ 35 000 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°;
- Π΄ΠΎ 1 000 000 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² Π±Π»ΠΎΠΊ.
ΠΠ·Π²ΡΡΡΠ΅Π½ΠΈ ΡΠ° ΡΠ΅ΡΡΠΎΠ²Π΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 3 ΡΡΡΠ²ΡΡΠ°:
1. Intel Core i7-6700 Quad-Core Skylake Π²ΠΊΠ». NVMe SSD β 512 GB, 64 GB DDR4 RAM
ΠΡΡ
Π° ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π°ΡΠΈ 3 Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°ΡΠΈ Plasma Cash Π²ΡΠ·Π»ΠΈ.
2. AMD Ryzen 7 1700X Octa-Core βSummit Ridgeβ (Zen), SATA SSD β 500 GB, 64 GB DDR4 RAM
ETH Π²ΡΠ·Π΅Π»ΡΡ Π½Π° Ropsten testnet Π±Π΅ΡΠ΅ ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π°Ρ.
ΠΡΡ
Π° ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π°ΡΠΈ 3 Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°ΡΠΈ Plasma Cash Π²ΡΠ·Π»ΠΈ.
3. Intel Core i9-9900K Octa-Core Π²ΠΊΠ». NVMe SSD β 1 TB, 64 GB DDR4 RAM
1 Π²ΡΠ·Π΅Π» Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ Π½Π° Plasma Cash Π±Π΅ΡΠ΅ ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π°Ρ.
ΠΡΡ
Π° ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π°ΡΠΈ 3 Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°ΡΠΈ Plasma Cash Π²ΡΠ·Π»ΠΈ.
ΠΠ΅ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ ΡΠ΅ΡΡ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΡΠΌ ΠΌΡΠ΅ΠΆΠ°ΡΠ° Plasma Cash.
ΠΠ±ΡΠΎ: 10 Plasma Cash Π²ΡΠ·Π»ΠΈ Π² ΡΠ°ΡΡΠ½Π° ΠΌΡΠ΅ΠΆΠ°.
Π’Π΅ΡΡ 1
ΠΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π° Π±Π»ΠΎΠΊ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Ρ Π² 2 Π±Π»ΠΎΠΊΠ° (ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΡΠΏΡΠ²Π° Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΡΠ°ΡΡ ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ).
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅: ΠΏΠΎΡΠ»Π΅Π΄Π΅Π½ Π±Π»ΠΎΠΊ #7; Π Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ.
00:00 β Π½Π°ΡΠ°Π»ΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
01:37 - 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±ΡΡ
Π° ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π²ΡΠ·Π΅Π»Π° Π·Π°ΠΏΠΎΡΠ½Π°
01:46 β Π²ΡΠ·Π΅Π»ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π²Π·Π΅ 240k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #8. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΡΡΠΎ, ΡΠ΅ 320k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΊΡΠΌ ΠΏΡΠ»Π° Π·Π° 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
01:58 β Π±Π»ΠΎΠΊ β8 Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
02:03 β Π±Π»ΠΎΠΊ #8 Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΡΠ° `submitBlock` Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° Ρ Ρ
Π΅ΡΠ° Π½Π° Merkle ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠ°
02:10 β Π΄Π΅ΠΌΠΎ ΡΠΊΡΠΈΠΏΡΡΡ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° 32 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
02:33 - Π²ΡΠ·Π»ΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ΅ Π±Π»ΠΎΠΊ #8 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ 240k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
02:40 - 240k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±ΡΡ
Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠΈ ΠΎΡ ΠΏΡΠ»Π°, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π² Π±Π»ΠΎΠΊ #8
02:56 β Π²ΡΠ·Π΅Π»ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π²Π·Π΅ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ 760k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Ρ
Π΅ΡΠ° Π½Π° Merkle ΠΈ Π±Π»ΠΎΠΊ Π·Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°Π½Π΅ #9
03:20 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ 240k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ
03:35 β Π±Π»ΠΎΠΊ #9 Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ
03:41 - Π²ΡΠ·Π½ΠΈΠΊΠ½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π³ΡΠ΅ΡΠΊΠ°
04:40 β Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊ #9 ΠΈΠ·ΡΠ΅ΡΠ΅
04:54 β Π²ΡΠ·Π΅Π»ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π²Π·Π΅ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ 760k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Ρ
Π΅ΡΠ° Π½Π° Merkle ΠΈ Π±Π»ΠΎΠΊ Π·Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°Π½Π΅ #9
05:32 β Π±Π»ΠΎΠΊ #9 Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ
05:53 β Π±Π»ΠΎΠΊ #9 Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
06:17 - Π²ΡΠ·Π»ΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ΅ Π±Π»ΠΎΠΊ #9 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΈ Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° 760k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
06:47 β ΠΏΡΠ»ΡΡ Π΅ ΠΈΠ·ΡΠΈΡΡΠ΅Π½ ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π² Π±Π»ΠΎΠΊ #9
09:06 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ 2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ
Π’Π΅ΡΡ 2
ΠΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 350k Π½Π° Π±Π»ΠΎΠΊ. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ 3 Π±Π»ΠΎΠΊΠ°.
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅: ΠΏΠΎΡΠ»Π΅Π΄Π΅Π½ Π±Π»ΠΎΠΊ #9; Π Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ 2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ
00:00 β ΡΠΊΡΠΈΠΏΡΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²Π΅ΡΠ΅ Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½
00:44 - 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±ΡΡ
Π° ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π²ΡΠ·Π΅Π»Π° Π·Π°ΠΏΠΎΡΠ½Π°
00:56 β Π²ΡΠ·Π΅Π»ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π²Π·Π΅ 320k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #10. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΡΡΠΎ, ΡΠ΅ 320k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΊΡΠΌ ΠΏΡΠ»Π° Π·Π° 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
01:12 β Π±Π»ΠΎΠΊ #10 Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
01:18 β Π΄Π΅ΠΌΠΎ ΡΠΊΡΠΈΠΏΡΡΡ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° 34 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
01:20 β Π±Π»ΠΎΠΊ #10 Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
01:51 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ
Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°, ΡΠ΅ Π±Π»ΠΎΠΊ #10 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°Ρ 320k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
02:01 - ΠΏΡΠ»ΡΡ Π΅ ΠΈΠ·ΡΠΈΡΡΠ΅Π½ Π·Π° 320k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ
Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ Π±Π»ΠΎΠΊ #10
02:15 β Π²ΡΠ·Π΅Π»ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π²Π·Π΅ 350k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #11
02:34 β Π±Π»ΠΎΠΊ #11 Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
02:51 β Π±Π»ΠΎΠΊ #11 Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
02:55 β ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ Π²ΡΠ·Π΅Π» Π·Π°Π²ΡΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ Π±Π»ΠΎΠΊ #10
10:59 β ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Ρ ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π»ΠΎΠΊ #9 ΠΎΡΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°, Π½ΠΎ Π±Π΅ΡΠ΅ Π·Π°Π²ΡΡΡΠ΅Π½Π° ΠΈ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ
Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½Π΅Ρ ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ 350k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
11:05 - ΠΏΡΠ»ΡΡ Π΅ ΠΈΠ·ΡΠΈΡΡΠ΅Π½ Π·Π° 320k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ
Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ Π±Π»ΠΎΠΊ #11
12:10 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ 670k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ
12:17 β Π²ΡΠ·Π΅Π»ΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π²Π·Π΅ 330k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #12
12:32 β Π±Π»ΠΎΠΊ #12 Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
12:39 β Π±Π»ΠΎΠΊ #12 Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
13:44 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ
Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°, ΡΠ΅ Π±Π»ΠΎΠΊ #12 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°Ρ 330k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
14:50 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ 2 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ
Π’Π΅ΡΡ 3
Π ΠΏΡΡΠ²ΠΈΡ ΠΈ Π²ΡΠΎΡΠΈΡ ΡΡΡΠ²ΡΡ Π΅Π΄ΠΈΠ½ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Ρ Π²ΡΠ·Π΅Π» Π±Π΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½Π΅Π½ ΠΎΡ ΠΏΠΎΠ΄Π°Π²Π°Ρ Π²ΡΠ·Π΅Π».
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅: ΠΏΠΎΡΠ»Π΅Π΄Π΅Π½ Π±Π»ΠΎΠΊ #84; 0 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ, Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ
00:00 β Π‘ΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ ΡΠ° 3 ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΠΈΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΏΠΎ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²ΡΠ΅ΠΊΠΈ
01:38 β ΠΡΡ
Π° ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ Π·Π°ΠΏΠΎΡΠ½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π²ΡΠ·Π΅Π» #3 Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅
01:50 β Π²ΡΠ·Π΅Π» Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ #3 Π²Π·Π΅ 330k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #85 (f21). ΠΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΡΡΠΎ, ΡΠ΅ 350 10 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΊΡΠΌ ΠΏΡΠ»Π° Π·Π° XNUMX ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
01:53 β ΠΡΡ
Π° ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ Π·Π°ΠΏΠΎΡΠ½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π²ΡΠ·Π΅Π» #1 Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅
01:50 β Π²ΡΠ·Π΅Π» Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ #3 Π²Π·Π΅ 330k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #85 (f21). ΠΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΡΡΠΎ, ΡΠ΅ 350 10 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΊΡΠΌ ΠΏΡΠ»Π° Π·Π° XNUMX ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
02:01 β Π²ΡΠ·Π΅Π» #1 Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ Π²Π·Π΅ 250k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #85 (65e)
02:06 β Π±Π»ΠΎΠΊ #85 (f21) Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
02:08 β Π΄Π΅ΠΌΠΎ ΡΠΊΡΠΈΠΏΡΡΡ Π½Π° ΡΡΡΠ²ΡΡ #3, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°
02:14 β Π±Π»ΠΎΠΊ #85 (f21) Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
02:19 β Π±Π»ΠΎΠΊ #85 (65e) Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
02:22 β ΠΡΡ
Π° ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ Π·Π°ΠΏΠΎΡΠ½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π²ΡΠ·Π΅Π» #2 Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅
02:27 β Π±Π»ΠΎΠΊ #85 (65e) Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
02:29 β Π²ΡΠ·Π΅Π» Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ #2 Π²Π·Π΅ 111855 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #85 (256).
02:36 β Π±Π»ΠΎΠΊ #85 (256) Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
02:36 β Π΄Π΅ΠΌΠΎ ΡΠΊΡΠΈΠΏΡΡΡ Π½Π° ΡΡΡΠ²ΡΡ #1, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° 42.5 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°
02:38 β Π±Π»ΠΎΠΊ #85 (256) Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
03:08 β Π‘ΠΊΡΠΈΠΏΡΡΡ Π½Π° ΡΡΡΠ²ΡΡ β2 ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° 47 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
03:38 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ
Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°, ΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ #85 (f21), #86(65e), #87(256) ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π° Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°Ρ 330k, 250k, 111855 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
03:49 - ΠΏΡΠ»ΡΡ Π±Π΅ΡΠ΅ ΠΈΠ·ΡΠΈΡΡΠ΅Π½ ΠΏΡΠΈ 330k, 250k, 111855 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ
Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ Π±Π»ΠΎΠΊΠΎΠ²Π΅ #85 (f21), #86(65e), #87(256)
03:59 β Π²ΡΠ·Π΅Π» Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ #1 Π²Π·Π΅ 888145 88 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #214 (2), Π²ΡΠ·Π΅Π» Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ #750 Π²Π·Π΅ 88k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #50 (3a), Π²ΡΠ·Π΅Π» Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ #670 Π²Π·Π΅ 88k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ Π±Π°ΡΠ΅ΠΉΠ½ΡΡ ΠΈ ΡΠΎΡΠΌΠΈΡΠ΅ Π±Π»ΠΎΠΊ #3 (dXNUMXb)
04:44 β Π±Π»ΠΎΠΊ #88 (d3b) Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
04:58 β Π±Π»ΠΎΠΊ #88 (214) Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
05:11 β Π±Π»ΠΎΠΊ #88 (50a) Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
05:11 β Π±Π»ΠΎΠΊ #85 (d3b) Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
05:36 β Π±Π»ΠΎΠΊ #85 (214) Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
05:43 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ
Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°, ΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ #88 (d3b), #89(214) ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°Ρ 670k, 750k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
06:50 β ΠΏΠΎΡΠ°Π΄ΠΈ Π³ΡΠ΅ΡΠΊΠ° Π² ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΡΠ° Π±Π»ΠΎΠΊ #85 (50a) Π½Π΅ Π±Π΅ΡΠ΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½
06:55 β Π²ΡΠ·Π΅Π» Π·Π° ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ #2 Π²Π·Π΅ 888145 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ ΠΏΡΠ»Π° ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π±Π»ΠΎΠΊ #90 (50a)
08:14 β Π±Π»ΠΎΠΊ #90 (50a) Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ Π΄ΡΡΠ³ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅
09:04 β Π±Π»ΠΎΠΊ #90 (50a) Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°
11:23 - Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ
Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°, ΡΠ΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π±Π»ΠΎΠΊ #90 (50a) ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π° Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°Ρ 888145 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΡΡΠ²ΡΡ #3 Π²Π΅ΡΠ΅ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠ» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΎΡ Π±Π»ΠΎΠΊΠΎΠ²Π΅ #88 (d3b), #89(214)
12:11 - Π²ΡΠΈΡΠΊΠΈ Π±Π°ΡΠ΅ΠΉΠ½ΠΈ ΡΠ° ΠΏΡΠ°Π·Π½ΠΈ
13:41 β Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ Π½Π° ΡΡΡΠ²ΡΡ #3 ΡΡΠ΄ΡΡΠΆΠ°Ρ 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ
14:35 β Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ Π½Π° ΡΡΡΠ²ΡΡ #1 ΡΡΠ΄ΡΡΠΆΠ°Ρ 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ
19:24 β Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ Π½Π° ΡΡΡΠ²ΡΡ #2 ΡΡΠ΄ΡΡΠΆΠ°Ρ 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ
ΠΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΡ
ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Plasma Cash ΡΠ΅ Π½Π°ΡΡΠΊΠ½Π°Ρ ΠΌΠ΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ ΠΈ ΡΠ΅ΡΠ°Π²Π°ΠΌΠ΅:
1. ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΡΠΌ ΠΏΡΠ»Π° Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠΏΠ°Π΄ Π² ΡΠΊΠΎΡΠΎΡΡΡΠ°.
2. ΠΠ΅ Π±Π΅ΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Ρ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΏΡΠ΅Π½ΠΎΡ Π½Π° Π΄Π°Π½Π½ΠΈ.
3. ΠΠ΅ Π±Π΅ΡΠ΅ ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΠΈ ΠΊΡΠ΄Π΅ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ Π²ΠΈΡΠΎΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.
4. ΠΠ΅ Π±Π΅ΡΠ΅ ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΠΌΡΠ΅ΠΆΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈΡΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° Π±Π»ΠΎΠΊ Ρ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π°Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 100 MB.
5. Π Π°Π±ΠΎΡΠ°ΡΠ° Π² Π΅Π΄Π½ΠΎΠ½ΠΈΡΠΊΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠ΅ΠΊΡΡΠ²Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ Π΄ΡΠ»Π³ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Merkle Π΄ΡΡΠ²ΠΎ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ Ρ Π΅Ρ).
ΠΠ°ΠΊ ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ Ρ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°?
ΠΡΡΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π²ΡΠ·Π΅Π»Π° Plasma Cash Π±Π΅ΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΠΈΠ΄ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈ Π²ΡΠΈΡΠΊΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ: Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ° Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ API Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ NodeJS Π΅ ΠΈΠ·Π½Π°ΡΠ°Π»Π½ΠΎ Π΅Π΄Π½ΠΎΠ½ΠΈΡΠΊΠΎΠ², ΡΠ΅ΠΆΠΊΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½Π° Merkle Π΄ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠΈΠ΄ΡΡ ΠΌΠ΅ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ:
1. Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ NodeJS ΠΏΡΠΎΡΠ΅ΡΠ°, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
2. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ worker_threads ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ΄Π° Π² Π½ΠΈΡΠΊΠΈ.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ ΠΈ Π΄Π²Π΅ΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ: Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡ ΠΌΠ΅ Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π» Π½Π° 3 ΡΠ°ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ ΠΎΡΠ΄Π΅Π»Π½ΠΎ, Π½ΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ
1. Submission node, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΏΡΠ»Π° ΠΈ ΡΡΠ·Π΄Π°Π²Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅.
2. ΠΠ°Π»ΠΈΠ΄ΠΈΡΠ°Ρ Π²ΡΠ·Π΅Π», ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡΠ° Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅.
3. API Π²ΡΠ·Π΅Π» β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ API Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ.
Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΠΊΡΠΌ Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» ΡΡΠ΅Π· unix ΡΠΎΠΊΠ΅Ρ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ cli.
ΠΡΠ΅ΠΌΠ΅ΡΡΠΈΡ ΠΌΠ΅ ΡΠ΅ΠΆΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° Merkle, Π² ΠΎΡΠ΄Π΅Π»Π½Π° Π½ΠΈΡΠΊΠ°.
Π’Π°ΠΊΠ° ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Plasma Cash Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π±Π΅Π· ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π±Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½Π°, Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΡΠΊΠΎΡΠΎΡΡΡΠ° ΠΈ, Π·Π° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ Π½Π΅Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ: 5 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΈ Π΄ΠΎ 000 50 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π° Π±Π»ΠΎΠΊ. Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ.
ΠΠ°ΡΠΎ Π½Π°ΡΠ°Π»ΠΎ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ Ρ Plasma Cash, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΠΎ-ΡΠ°Π½ΠΎ, ΡΠ΅ Π²ΡΠ·Π΅Π»ΡΡ Plasma Cash ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° unix ΡΠΎΠΊΠ΅Ρ. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π±Π΅ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΡΠ΅ΠΊΡΡ. json ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π±ΡΡ Π° ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° `JSON.parse()` ΠΈ `JSON.stringify()`.
```json
{
"action": "sendTransaction",
"payload":{
"prevHash": "0x8a88cc4217745fd0b4eb161f6923235da10593be66b841d47da86b9cd95d93e0",
"prevBlock": 41,
"tokenId": "57570139642005649136210751546585740989890521125187435281313126554130572876445",
"newOwner": "0x200eabe5b26e547446ae5821622892291632d4f4",
"type": "pay",
"data": "",
"signature": "0xd1107d0c6df15e01e168e631a386363c72206cb75b233f8f3cf883134854967e1cd9b3306cc5c0ce58f0a7397ae9b2487501b56695fe3a3c90ec0f61c7ea4a721c"
}
}
```
ΠΠ·ΠΌΠ΅ΡΠΈΡ ΠΌΠ΅ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΡΠ°Π½ΡΡΠ΅Ρ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΠΎΡΠΊΡΠΈΡ ΠΌΠ΅ ~ 130k Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΡΠ΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ json, Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ. ΠΠ²ΠΈΠ³Π°ΡΠ΅Π»ΡΡ V8 ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΠ±ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΡΠ΅Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
Π Π°Π±ΠΎΡΠΈΡ ΠΌΠ΅ Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠΎΠΊΠ΅Π½ΠΈ ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΡΠ΅Π· ΠΊΠ»Π°ΡΠΎΠ²Π΅. ΠΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠΏΠ°Π΄Π½Π° 2 ΠΏΡΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ OOP Π½Π΅ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π½Π°Ρ. Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ° Π²ΡΠΈΡΠΊΠΎ ΠΊΡΠΌ ΡΠΈΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
ΠΠ°ΠΏΠΈΡΠ²Π°Π½Π΅ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Redis Π±Π΅ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ Π΅Π΄Π½ΠΎ ΠΎΡ Π½Π°ΠΉ-ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ: ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΠ°Π±ΠΎΡΠ° Ρ Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠΈ, Π½Π°Π±ΠΎΡΠΈ. Π‘ΡΠ°ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ redis-benchmark ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ~80 1 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π² XNUMX ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ.
ΠΠ° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π°ΡΡΡΠΎΠΈΡ ΠΌΠ΅ Redis ΠΏΠΎ-ΡΠΈΠ½ΠΎ:
- Π£ΡΡΠ°Π½ΠΎΠ²Π΅Π½Π° Π΅ Π²ΡΡΠ·ΠΊΠ° Ρ unix ΡΠΎΠΊΠ΅Ρ.
- ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Ρ ΠΌΠ΅ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊ (Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΡΡΠΎΠΈΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΠΈ Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΠΊ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ Redis).
Π Redis ΠΏΡΠ»ΡΡ Π΅ Ρ Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠ°, Π·Π°ΡΠΎΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π²Π»ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² Π΅Π΄Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΠΈ Π΄Π° ΠΈΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΅Π΄Π½Π° ΠΏΠΎ Π΅Π΄Π½Π°. ΠΠΏΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠΏΠΈΡΡΠΊ, Π½ΠΎ Π΅ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π·ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈΡ ΡΠΏΠΈΡΡΠΊ.
ΠΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ NodeJS, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π½Π° Redis ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ 18k ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. Π‘ΠΊΠΎΡΠΎΡΡΡΠ° ΠΏΠ°Π΄Π½Π° 9 ΠΏΡΡΠΈ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΡΡ Π½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ ΡΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ 5 ΠΏΡΡΠΈ ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ, Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΠΌΠ΅. ΠΡΠΎΠΌΠ΅Π½ΠΈΡ ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π° ioredis ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ 25k Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΅Π΄Π½Π° ΠΏΠΎ Π΅Π΄Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° `hset`. Π’Π°ΠΊΠ° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΡΠ²ΠΊΠΈ Π² Redis. ΠΡΠ·Π½ΠΈΠΊΠ½Π° ΠΈΠ΄Π΅ΡΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Ρ Π² ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° `hmset`. Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π΅ 32k Π² ΡΠ΅ΠΊΡΠ½Π΄Π°.
ΠΠΎΡΠ°Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎ-Π΄ΠΎΠ»Ρ, Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ `Buffer` ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π°, Π°ΠΊΠΎ Π³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΡΠ΅ Π² ΡΠ΅ΠΊΡΡ (`buffer.toString('hex')`) ΠΏΡΠ΅Π΄ΠΈ Π·Π°ΠΏΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π±Π΅ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Π΄ΠΎ 35k Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΡΠΏΡΠ΅ΠΌ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½Π°ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ.
Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ Π΄Π²ΠΎΠΈΡΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», Π·Π°ΡΠΎΡΠΎ:
1. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ΡΡΠΎ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Ρ Π΅ΡΠΎΠ²Π΅, ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈ Ρ.Π½. ΠΈ Π·Π° ΡΠ΅Π»ΡΠ° ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π² `ΠΡΡΠ΅Ρ.
2. ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ»ΡΠ³ΠΈΡΠ΅, Π΄Π²ΠΎΠΈΡΠ½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ΅ΠΆΠ°Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ ΡΠ΅ΠΊΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ Π±Π»ΠΎΠΊ Ρ 1 ΠΌΠΈΠ»ΠΈΠΎΠ½ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π·Π°Π΅ΠΌΠ°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 300 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°.
3. ΠΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π²Π»ΠΈΡΠ΅ Π²ΡΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
ΠΠ°ΡΠΎΠ²Π° Π½ΠΈΠ΅ Π²Π·Π΅Ρ ΠΌΠ΅ Π·Π° ΠΎΡΠ½ΠΎΠ²Π° Π½Π°ΡΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π΄Π²ΠΎΠΈΡΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° `binary-data`.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ:
β Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
```json
{
prevHash: BD.types.buffer(20),
prevBlock: BD.types.uint24le,
tokenId: BD.types.string(null),
type: BD.types.uint8,
newOwner: BD.types.buffer(20),
dataLength: BD.types.uint24le,
data: BD.types.buffer(({current}) => current.dataLength),
signature: BD.types.buffer(65),
hash: BD.types.buffer(32),
blockNumber: BD.types.uint24le,
timestamp: BD.types.uint48le,
}
```
β Π’ΠΎΠΊΠ΅Π½
```json
{
id: BD.types.string(null),
owner: BD.types.buffer(20),
block: BD.types.uint24le,
amount: BD.types.string(null),
}
```
β ΠΠ»ΠΎΠΊΠΈΡΠ°ΠΉ
```json
{
number: BD.types.uint24le,
merkleRootHash: BD.types.buffer(32),
signature: BD.types.buffer(65),
countTx: BD.types.uint24le,
transactions: BD.types.array(Transaction.Protocol, ({current}) => current.countTx),
timestamp: BD.types.uint48le,
}
```
Π‘ ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ `BD.encode(block, Protocol).slice();` ΠΈ `BD.decode(buffer, Protocol)` ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² `Buffer` Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π² Redis ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°Π½Π΅ ΠΊΡΠΌ Π΄ΡΡΠ³ Π²ΡΠ·Π΅Π» ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
ΠΠΌΠ°ΠΌΠ΅ ΠΈ 2 Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ»ΡΠ³ΠΈ:
β ΠΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Plasma Node ΠΏΡΠ΅Π· unix socket
```json
{
type: BD.types.uint8,
messageId: BD.types.uint24le,
error: BD.types.uint8,
length: BD.types.uint24le,
payload: BD.types.buffer(({node}) => node.length)
}
```
ΠΊΡΠ΄Π΅ΡΠΎ:
- `Type` β Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 1 β sendTransaction, 2 β getTransaction;
- `ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠΎΠ²Π°Ρ` β Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ;
- `messageId` β ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΡΡ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½.
β ΠΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈΡΠ΅
```json
{
code: BD.types.uint8,
versionProtocol: BD.types.uint24le,
seq: BD.types.uint8,
countChunk: BD.types.uint24le,
chunkNumber: BD.types.uint24le,
length: BD.types.uint24le,
payload: BD.types.buffer(({node}) => node.length)
}
```
ΠΊΡΠ΄Π΅ΡΠΎ:
- `ΠΊΠΎΠ΄` β ΠΊΠΎΠ΄ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 6 β PREPARE_NEW_BLOCK, 7 β BLOCK_VALID, 8 β BLOCK_COMMIT;
- `versionProtocol` β Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠ·Π»ΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ²Π΄ΠΈΠ³Π½Π°ΡΠΈ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½;
- `seq` β ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ;
- `countChunk` ΠΈ `ΡΠΈΡΠ»ΠΎ Π½Π° ΠΏΠ°ΡΡΠ΅` Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ;
- `Π΄ΡΠ»ΠΆΠΈΠ½Π°` ΠΈ `ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠΎΠ²Π°Ρ` Π΄ΡΠ»ΠΆΠΈΠ½Π° ΠΈ ΡΠ°ΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΠ²Π΅Π΄ΠΎΡ ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΡΠ°ΠΉΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡΡΠ·Π° ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° `rlp` Π½Π° Ethereum. ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠΌΠ΅ ΡΡΠΏΠ΅Π»ΠΈ Π΄Π° Π³ΠΎ ΠΎΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π² Π±ΡΠ΄Π΅ΡΠ΅.
ΠΠΊΠΎ ΡΡΠΏΠ΅Π΅ΠΌ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ΠΌ ΡΠΊΠΎΡΠΎΡΡΡΠ° 35 000 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°, Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π² ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊ ΠΎΡΠ½Π΅ΠΌΠ° 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΊΠ»ΡΡΠΈΠΌ Π² Π±Π»ΠΎΠΊΠ° 1 000 000 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ 100 MB Π΄Π°Π½Π½ΠΈ.
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° `ethereumjs-devp2p` Π·Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·Π»ΠΈ, Π½ΠΎ ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° `ws` ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π΄Π²ΠΎΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· websocket. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΡΠ΅ΡΠ½Π°Ρ ΠΌΠ΅ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Π³ΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΈΡ ΠΌΠ΅ Π½Π° ΡΠ°ΡΡΠΈ ΠΈ ΡΠ΅Π³Π° ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π³ΠΈ Π½ΡΠΌΠ°.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° Merkle Π΄ΡΡΠ²ΠΎ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° Ρ Π΅ΡΠ° 1 000 000 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΎΠΊΠΎΠ»ΠΎ 10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅. ΠΡΠ΅Π· ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Ρ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ ΡΡΠΏΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΊΡΡΠ½Π΅. ΠΠ΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΎΠ²Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»Π½Π° ΡΠ΅ΠΌΠ°.
ΠΠ·Π²ΠΎΠ΄ΠΈ:
ΠΡΡΡΠ½ΠΎΡΡ Π½Π°ΡΠΈΡΠ΅ ΠΎΡΠΊΡΠΈΡΠΈΡ Π½Π΅ ΡΠ° Π½ΠΎΠ²ΠΈ, Π½ΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΅ΠΊΡΠΏΠ΅ΡΡΠΈ Π·Π°Π±ΡΠ°Π²ΡΡ Π·Π° ΡΡΡ , ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
- ΠΠΎΠ½ΠΎΠ»ΠΈΡΡΡ Π΅ ΠΏΠΎ-Π»ΠΎΡ ΠΎΡ ΡΠ΅ΡΠ²ΠΈΠ·Π½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π° NodeJS ΡΠΈΡΡΠ΅ΠΌΠ°.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° `worker_threads` Π·Π° ΡΠ΅ΠΆΠΊΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΎΡΠ·ΠΈΠ²ΡΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Ρ I/O ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- unix socket Π΅ ΠΏΠΎ-ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΠΈ ΠΏΠΎ-Π±ΡΡΠ· ΠΎΡ http Π·Π°ΡΠ²ΠΊΠΈΡΠ΅.
- ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π±ΡΡΠ·ΠΎ Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ websockets ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° ΡΠ°ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ΅Π½ΠΈ, Π°ΠΊΠΎ Π½Π΅ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Ρ, ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π² Π΅Π΄Π½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°Π½ΠΈΠΌ Π²ΠΈ Π΄Π° ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ GitHub ΠΏΡΠΎΠ΅ΠΊΡ:
Π‘ΡΠ°ΡΠΈΡΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π² ΡΡΠ°Π²ΡΠΎΡΡΡΠ²ΠΎ ΠΎΡ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΠ°ΡΠΈΠ²Π°Π½, ΡΡΠ°ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com