WavesKit β€” PHP Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΎΠΌ Waves

МнС нравится PHP Π·Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ°Ρ€ΠΌΠ°Π½Π΅ всСгда имССтся Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ инструмСнт.

Π‘Ρ‹Π»ΠΎ довольно ΠΎΠ±ΠΈΠ΄Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ знакомствС с отСчСствСнным Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΎΠΌ Waves Platform Π² Π΅Π³ΠΎ арсСналС Π½Π΅ оказалось Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ SDK Π½Π° PHP. Π§Ρ‚ΠΎ ΠΆ, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ.

ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ΄Ρ‹ для подписи Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π’Π°ΠΊ, для управлСния трСмя адрСсами ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ ноды… Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΆΠ°Π»ΠΊΠΎΠ΅ Π·Ρ€Π΅Π»ΠΈΡ‰Π΅, хотя ΠΈ Ρ€Π΅ΡˆΠ°Π»ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Π”ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ΄Ρ‹ β€” это Ρ‚ΡƒΠΏΠΈΠΊ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° API, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΈΠ·-Π·Π° скорости (Π² Ρ‚Π΅ Π΄Π½ΠΈ Π½ΠΎΠ΄Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌΠΈ).

Π― Π½Π°Ρ‡Π°Π» Π΄Π²Π΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Одна β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ быстрый ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСзависимый ΠΎΡ‚ API Π½ΠΎΠ΄. Вторая β€” ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Waves Platform Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Π’Π°ΠΊ появились ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ w8io ΠΈ WavesKit.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π·Π° кулисы Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Waves стал ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ w8io. Π‘Ρ‹Π»ΠΎ Π½Π΅ просто, Π½ΠΎ всё ΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ нСзависимый расчёт всСх балансов ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°ΠΉΡ‚ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² расчётах Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΎΠ΄Π°Ρ… (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° bug-bounty кстати Ρƒ Π½ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π·Π° Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ ошибки платят). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» обозрСватСля w8io Π² этой Ρ‚Π΅ΠΌΠ΅: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ w8io Ρƒ мСня ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ сомнСния, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π° подошла ΠΊ логичСскому ΠΊΠΎΠ½Ρ†Ρƒ ΠΈ я приступил ΠΊ созданию SDK, сомнСния ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΈΡΡŒ. Π― Π½ΠΈΠ³Π΄Π΅ Π½Π΅ смог Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС ΠΈ самых Π²Π°ΠΆΠ½Ρ‹Ρ…, криптографичСских. Π’ΠΎΠ³Π΄Π° я Π½Π°Ρ‡Π°Π» с создания своих ΠΊΠΈΡ€ΠΏΠΈΡ‡Π΅ΠΉ для Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°. Π’Π°ΠΊ Ρ€ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ: ABCode для кодирования Π² base58 (Π½Π° самом Π΄Π΅Π»Π΅ для кодирования любого Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° Π² любой), Curve25519 для создания ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ совмСстимых подписСй (с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ Π½Π° стСроидах), Blake2b для расчёта ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ…ΡΡˆΠ΅ΠΉ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ начиная с PHP 7.2) ΠΈ Ρ‚.Π΄.

Π—Π΄Π΅ΡΡŒ я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ Инала ΠšΠ°Ρ€Π΄Π°Π½ΠΎΠ²Π° Π·Π° нСсколько Ρ†Π΅Π½Π½Ρ‹Ρ… совСтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ мСня Π² сторону composer вмСсто ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… для мСня, Π½ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ…, include Ρ„Π°ΠΉΠ»ΠΎΠ².

Бпустя ΠΏΠ°Ρ€Ρƒ мСсяцСв WavesKit ΡƒΠ²ΠΈΠ΄Π΅Π» свСт, Π²Ρ‹ΡˆΠ΅Π» ΠΈΠ· Π±Π΅Ρ‚Π°-вСрсии ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ со всСм стандартным Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Waves. ВсС доступныС Π² основной сСти Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ созданы, подписаны ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ силами всСго ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π° всСх 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… вСрсия PHP ΠΎΡ‚ 5.6 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ WavesKit Π² свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

composer require deemru/waveskit

ΠŸΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ:

use deemruWavesKit;
$wk = new WavesKit( 'T' );
$wk->setSeed( 'manage manual recall harvest series desert melt police rose hollow moral pledge kitten position add' );
$tx = $wk->txBroadcast( $wk->txSign( $wk->txTransfer( 'test', 1 ) ) );
$tx = $wk->ensure( $tx );

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ WavesKit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² тСстовой сСти «T». УстанавливаСм сид Ρ„Ρ€Π°Π·Ρƒ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ автоматичСски Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ адрСс Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Π½Π° основС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ создаём Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ трансфСра 0.00000001 Waves с автоматичСски вычислСнного ΠΏΠΎ сид Ρ„Ρ€Π°Π·Π΅ адрСса Π½Π° адрСс алиаса «test», ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π΅Ρ‘ Π½Π° подпись Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΈ отправляСм Π² ΡΠ΅Ρ‚ΡŒ. ПослС этого убСТдаСмся, Ρ‡Ρ‚ΠΎ транзакция ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π° ΡΠ΅Ρ‚ΡŒΡŽ.

Π Π°Π±ΠΎΡ‚Π° с транзакциями сосрСдоточСна Π² функциях Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с tx. Для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ с транзакциями Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ WavesKit ΠΈΠ»ΠΈ сразу ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ наглядным ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ Π² тСстах Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.

Π’Π°ΠΊ ΠΊΠ°ΠΊ WavesKit развивался Π² условиях Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования, Ρƒ Π½Π΅Π³ΠΎ ΡƒΠΆΠ΅ появились ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠΈΠ»Π»Π΅Ρ€ Ρ„ΠΈΡ‡Π° β€” это функция ensure, которая ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ достиТСниС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ уровня увСрСнности, Ρ‡Ρ‚ΠΎ транзакция Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΠ»Π°ΡΡŒ, Π° Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², Π±Ρ‹Π»Π° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π° ΠΈ достигла Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ количСства ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² сСти.

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡƒΠ»Π΅Π½Π΅ΠΏΡ€ΠΎΠ±ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ β€” ΠΊΠ°ΠΊ WavesKit общаСтся с Π½ΠΎΠ΄Π°ΠΌΠΈ. Π’ Ρ‚Π΅ΠΏΠ»ΠΈΡ‡Π½Ρ‹Ρ… условиях Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с основной Π½ΠΎΠ΄ΠΎΠΉ, поддСрТивая с Π½Π΅ΠΉ постоянноС соСдинСниС, Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅. Если Π²Ρ‹ устанавливаСтС массив Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… Π½ΠΎΠ΄, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ setBestNode для опрСдСлСния Π»ΡƒΡ‡ΡˆΠ΅ΠΉ Π½ΠΎΠ΄Ρ‹ Π² качСствС основной ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ высоты ΠΈ скорости ΠΎΡ‚Π²Π΅Ρ‚Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ этому Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ кэш запросов ΠΈ почувствуйтС Π·Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°ΠΊ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ…, Ρ‚Π°ΠΊ ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°Ρ… Π½ΠΎΠ΄.

Один ΠΈΠ· послСдних ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² β€” функция txMonitor. Она появилась Π² связи с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° входящиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Данная функция ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ всС Π½ΡŽΠ°Π½ΡΡ‹ связанныС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π΅. Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π±ΠΎΠ»ΠΈ, просто устанавливаСтС свою callback Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΌΠΈ опциями ΠΈ ΠΆΠ΄Ρ‘Ρ‚Π΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ запустят ваши процСссы. НапримСр, Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ VECRO ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ построСн Π²ΠΎΠΊΡ€ΡƒΠ³ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹ спокойно ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ прямо Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

МнС нравится open source, это ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²Π΅Π»ΠΈΡ‡Π°ΠΉΡˆΠΈΡ… достиТСний чСловСчСства. Π’Π°ΠΊ ΠΊΠ°ΠΊ я СдинствСнный Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ достиг состояния, Ρ‡Ρ‚ΠΎ всС ΠΌΠΎΠΈ потрСбности Ρ€Π΅ΡˆΠ΅Π½Ρ‹, я ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°ΡŽ вас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π²ΠΊΠ»Π°Π΄ Π² WavesKit.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com