πŸ“ ΠŸΠΎΡ‡Π΅ΠΌΡƒ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Wren для смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ @dantheman)

ПослС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ поста ΠΎ Π‘ΠΌΠ°Ρ€Ρ‚-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°Ρ… нСсколько Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ оставили ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΠΌΠΎΠ΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° языка программирования. Wren – это малоизвСстный нСвСроятно Π½Π΅Π·Ρ€Π΅Π»Ρ‹ΠΉ, ΠΈΠ³Ρ€ΡƒΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ, практичСски Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ язык программирования. Π‘ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π½Π° этой Π½Π΅Π΄Π΅Π»Π΅ я Π±Ρ‹Π» Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос Π½Π° внСсСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ (pull request), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ВСорСтичСски, благодаря новаторскому Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ нСобходимости Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ вычислСния β€œΠ³Π°Π·Π°β€ (ΠΏΡ€ΠΈΠΌ. Π³Π°Π· – Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния Π² Ethereum, которая позволяСт ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ объСм Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ устанавливаСт Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ комиссионных сборов Π·Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ), ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ любой язык программирования. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ JavaScript, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности языков Lua ΠΈ Python.

ΠŸΠ΅ΡΠΎΡ‡Π½ΠΈΡ†Π° (Sandboxing) – это слоТно

ΠŸΠ΅Ρ€Π²ΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ языка программирования являСтся удобство пСсочницы. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ скомпилированный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ рСсурсов процСссора ΠΈ памяти. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ являСтся простота обСспСчСния взаимодСйствия с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ C++ /ChainBase.

Π”ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° Wren Π±Ρ‹Π» рассмотрСн Duktape – быстрый встроСнный Π΄Π²ΠΈΠΆΠΎΠΊ JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ я Π΄ΡƒΠΌΠ°Π», Π±Ρ‹Π» вСсьма ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠΌ. Π― ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ пСсочницу Π² Duktape, Π½ΠΎ Π±Π΅Π· особого успСха.

JavaScript – прСкрасный язык программирования, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для быстродСйствия, хотя соврСмСнныС Π΄Π²ΠΈΠΆΠΊΠΈ JavaScript ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈ! Но Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΡ‚ JavaScript, трСбуСтся нСвСроятно слоТная Just-In-Time компиляция.

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

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

Wren ΠΆΠ΅, Π΄Π°ΠΆΠ΅ Π² Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π½Π΅Π·Ρ€Π΅Π»ΠΎΠΌ состоянии, оказался нСвСроятно быстрым ΠΈ эффСктивным, ΠΏΡ€ΠΈ этом Π±Π΅Π· нСобходимости использования Just-In-Time компиляции. Π― ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Wren с Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ компилятором ΠΌΠΎΠ³ Π±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ Π½Π° порядок быстрСС. БыстрСС, Ρ‡Π΅ΠΌ Lua ΠΈΠ»ΠΈ JavaScript JIT благодаря самой структурС этого языка программирования.

Π―Π·Ρ‹ΠΊ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΌΠΎΠ³Ρƒ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ

Wren Π½Π΅ являСтся ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ языком программирования, это всСго лишь отправная Ρ‚ΠΎΡ‡ΠΊΠ°. Π­Ρ‚ΠΎ нСбольшая, Ρ…ΠΎΡ€ΠΎΡˆΠΎ организованная Π±Π°Π·Π° исходного ΠΊΠΎΠ΄Π°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° для удовлСтворСния потрСбностСй Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°. На самом Π΄Π΅Π»Π΅, я, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹Ρ€Π΅Π·Π°Π» Π±Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности Wren (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Fibers), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅.

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Lua, JavaScript ΠΈ Python Π±Ρ‹Π»Π° Π±Ρ‹ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π° ошибкам.

C++ -ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ язык программирования

Π― Π±Ρ‹ Π΄Π°ΠΆΠ΅ сказал, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ язык программирования Π±ΡƒΠ΄Π΅Ρ‚ простой подсистСмой C/C. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Ρ‹ΠΉ язык программирования C/C ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΏΡ€ΠΈ этом обладая прСимущСствами запросто ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² β€œΠΏΠ΅ΡΠΎΡ‡Π½ΠΈΡ†Ρƒβ€ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. НСнадСТныС скрипты Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ смогут Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ любой ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ скрипт с Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

БнятиС Π²ΠΎΠ·Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ @anonymint

Когда Π½Π° Steem Π±Ρ‹Π»Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π° DOS Π°Ρ‚Π°ΠΊΠ°, Ρ…Π°ΠΊΠ΅Ρ€ транслировал ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, сколько ΠΌΠΎΠ³. ВсС ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π½Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½. ΠžΡ‚ΠΊΠ°Π· Π² обслуТивании (DOS) Π±Ρ‹Π» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½, Π° Π½Π΅ сСтСвым ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ.

@anonymint, ΠΏΠΎΡ…ΠΎΠΆΠ΅, считаСт, Ρ‡Ρ‚ΠΎ я Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° разобрался, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ГАЗ Π² Ethereum. Π’ΠΎΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я "знаю" с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ². Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ платят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, Ρ‚ΠΎ всСм Π½ΠΎΠ΄Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚.

Если Π°Π²Ρ‚ΠΎΡ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π» β€œΡ‚ΠΎΡ‡Π½ΠΎΠ΅β€ количСство Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ГАЗа, Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ допустимости ΠΌΠΎΠΆΠ΅Ρ‚ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это число, Π½ΠΎ Π½Π°ΠΌ извСстно, Ρ‡Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅, сколько ΠΈΠΌΠ΅Π½Π½ΠΎ ГАЗа потрСбуСтся для провСдСния сдСлки. (Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ подписаниСм сдСлки ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Π±Π»ΠΎΠΊΠ΅).

Π§Ρ‚ΠΎ касаСтся Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ (The Proof of Work) для Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Π― Π±Ρ‹ рассчитывал Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» 10X процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для выполнСния POW Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ для ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ допустимости, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ сцСнарий Π½Π° Ρ‚Π°ΠΊΠΎΠΌ ΠΆΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. Запуск Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠ³ΠΎ сцСнария Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 1 мс, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ POW Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 мс Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΈ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ привСсти ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности.

Π”ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ASIC ΠΈΠ»ΠΈ GPU ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ произвСсти большСС количСство Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, это Π±Ρ‹Π»ΠΎ Π±Ρ‹ бСссмыслСнно. ЦСль POW – Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ° ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ срСдств, Ρ‡Π΅ΠΌ сСрвСр. ASIC ΠΈΠ»ΠΈ GPU Π² состоянии произвСсти эти вычислСния быстрСС, Ρ‡Π΅ΠΌ сСрвСр смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сцСнарий, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ этом Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большСС количСство рСсурсов для Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π°Ρ‚Π°ΠΊΠΈ.

МоТно Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ POW для Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ являСтся цСлСсообразным, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΡƒΠΆΠ΅ ΠΎΡ†Π΅Π½ΠΈΠ» ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, пропускной способности ΠΈ памяти Π²Π·Π»ΠΎΠΌΡ‰ΠΈΠΊΠΎΠ². ЦСлью Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π½ΠΎΠ΄Ρ‹ ΠΎΡ‚ врСдоносного ΠΏΠΈΡ€Π°. КаТдая Π½ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ большС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ обСспСчСно.

ЀактичСски, 99% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ прСдоставляСмой пропускной способности Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ сбои Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ сцСнарий с интСнсивной Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ процСссор. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Proof-of-work являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ срСдством "запроса" фактичСского Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π’Π°ΡˆΠ΅Π³ΠΎ сцСнария ΠΈ опрСдСлСния ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ вознаграТдСния производитСля Π±Π»ΠΎΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π’Π°Ρˆ скрипт.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

Π― Ρ‚Π²Π΅Ρ€Π΄ΠΎ ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ C/ C++ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌΡƒ языку программирования, ΠΈ Ρ‡Ρ‚ΠΎ смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простыС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π΄Π°ΠΆΠ΅ Ссли Ρ‚Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ. Если Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€ языка программирования Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ особого значСния, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π² достаточной стСпСни ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ языкам.


ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ пост ΠΈ Π΅Π³ΠΎ обсуТдСниС Π—Π”Π•Π‘Π¬


Π”Π°Π½Π½Ρ‹ΠΉ пост ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π±Π΅Ρ‚Π° тСстирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° RuSteemitBlog


ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ осущСствлСн: @uuuhha, всС SBD, собранныС Π΄Π°Π½Π½Ρ‹ΠΌ постом, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для Power Up ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ #spreadthepower

ΠšΡ€ΠΈΡ‚ΠΈΠΊΠ°, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ прСдлоТСния ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ.


30 second exposure

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
3 Comments