Bitcoin Forum
July 04, 2024, 08:26:04 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Функциональный язык для смарт контрактов  (Read 276 times)
Slava79 (OP)
Member
**
Offline Offline

Activity: 182
Merit: 17

¯\_(ツ)_/¯


View Profile
April 18, 2018, 05:10:58 PM
 #1

Читал в последнее время о катастрофах, произошедших из за того, что смарт контракты были недостаточно хорошо протестированы, содержали баги итп.

Стало интересно, есть ли такая криптовалюта, в которой смарт контракты пишутся на функцинальном языке программирования, с использованием чистых функций? Что то типа Haskell, OCaml, F#?

Мне кажется это бы сильно уменьшило стоимость разработки и количество ошибок, тестировать было бы легче.

Немного погугулил, нашел только https://www.fstar-lang.org/ - его вроде как потенциально планируют для этих целей, но это не совсем то.

Building a JavaScript Smart Contracts Engine
Github | Site | Chat
MuaddibCo
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
April 18, 2018, 08:14:00 PM
 #2

Как архитектор с 20-ти летним стажем в программировании - количество багов никогда не определяется средствами программирования, но всегда прослойкой между стулом и монитором. Даже на самом лучшем языке люди совершают грубые ошибки, и во многом из-за уверенности, что среда разработки за них все подправит.
Slava79 (OP)
Member
**
Offline Offline

Activity: 182
Merit: 17

¯\_(ツ)_/¯


View Profile
April 19, 2018, 08:29:08 AM
 #3

Как архитектор с 20-ти летним стажем в программировании - количество багов никогда не определяется средствами программирования, но всегда прослойкой между стулом и монитором. Даже на самом лучшем языке люди совершают грубые ошибки, и во многом из-за уверенности, что среда разработки за них все подправит.

Конечно, согласен полностью.

Здесь речь идет о лучшей статистике. При среднем уровне разработки и ресурсов, я считаю что определенные подходы могут в целом улучшить конечный результат. А когда речь идет о смарт контрактах и банковской сфере, даже незначительное улучшение может стоить миллионы.




Building a JavaScript Smart Contracts Engine
Github | Site | Chat
Slava79 (OP)
Member
**
Offline Offline

Activity: 182
Merit: 17

¯\_(ツ)_/¯


View Profile
April 27, 2018, 08:39:38 AM
 #4

В дополнение, как иллюстрация реальности проблемы https://support.okex.com/hc/en-us/articles/360003019292-ERC-20-Tokens-Deposit-Suspended

Building a JavaScript Smart Contracts Engine
Github | Site | Chat
unixty
Jr. Member
*
Offline Offline

Activity: 168
Merit: 1

ImmVRse | Disrupting the VR industry


View Profile WWW
April 29, 2018, 03:25:23 PM
 #5

Как архитектор с 20-ти летним стажем в программировании - количество багов никогда не определяется средствами программирования, но всегда прослойкой между стулом и монитором. Даже на самом лучшем языке люди совершают грубые ошибки, и во многом из-за уверенности, что среда разработки за них все подправит.

Поэтому всегда нужен тот, кто сможет подправить тебя, устранить ошибки.
Не нужно надеяться только на себя, лучше подключить знающих людей, но и это конечно же не даст 100% реультата, но 99% все таки сможет дать.

●  ❱❱  IMMVRSE | Disrupting the VR Industry  ❱❱  ●
Proud Sponsor of Blockchain 360 at London Tech Week
rumkin
Jr. Member
*
Offline Offline

Activity: 54
Merit: 1


View Profile WWW
May 02, 2018, 04:50:04 PM
 #6

Забавно только начал делать нечто подобное, правда язык выбрал не такой низкоуровневый. Стало интересно что из этого может получиться. Все-таки функциональные языки содержат меньше абстракций и более предсказуемы.

Blockchain Developer | https://rumk.in
Slava79 (OP)
Member
**
Offline Offline

Activity: 182
Merit: 17

¯\_(ツ)_/¯


View Profile
May 02, 2018, 09:11:14 PM
 #7

Забавно только начал делать нечто подобное, правда язык выбрал не такой низкоуровневый. Стало интересно что из этого может получиться. Все-таки функциональные языки содержат меньше абстракций и более предсказуемы.

Согласен, я думаю что язык разумнее выбрать более распространенный. Я сейчас использую в своем прототипе JavaScript но придерживаюсь подхода чистых функций.

Building a JavaScript Smart Contracts Engine
Github | Site | Chat
JasonLeavers
Newbie
*
Offline Offline

Activity: 86
Merit: 0


View Profile
May 02, 2018, 10:06:58 PM
 #8

Кардана обещают будет на Хаскелеподобном языке.
rumkin
Jr. Member
*
Offline Offline

Activity: 54
Merit: 1


View Profile WWW
May 03, 2018, 01:48:57 AM
Last edit: May 03, 2018, 02:15:40 AM by rumkin
 #9

Согласен, я думаю что язык разумнее выбрать более распространенный. Я сейчас использую в своем прототипе JavaScript но придерживаюсь подхода чистых функций.

Я выбрал elm. Советую присмотреться: очень лаконичный, минимум конструкций и сущностей. Помимо стандартных для js типов есть кортежи.

Blockchain Developer | https://rumk.in
Slava79 (OP)
Member
**
Offline Offline

Activity: 182
Merit: 17

¯\_(ツ)_/¯


View Profile
May 03, 2018, 06:05:54 AM
 #10

Согласен, я думаю что язык разумнее выбрать более распространенный. Я сейчас использую в своем прототипе JavaScript но придерживаюсь подхода чистых функций.

Я выбрал elm. Советую присмотреться: очень лаконичный, минимум конструкций и сущностей. Помимо стандартных для js типов есть кортежи.

Мне нравится Elm, но с ним есть проблема, он поддерживается одним человеком. Как вариант рассматриваю PureScript.

Building a JavaScript Smart Contracts Engine
Github | Site | Chat
rumkin
Jr. Member
*
Offline Offline

Activity: 54
Merit: 1


View Profile WWW
May 03, 2018, 01:42:10 PM
 #11

Мне нравится Elm, но с ним есть проблема, он поддерживается одним человеком. Как вариант рассматриваю PureScript.

Сам язык достаточно взрослый и уже не нуждается в регулярных исправлениях. А хороший проект может дать толчок к развитию сообщества. Для меня самым большим плюсом в нем является легкость создания песочницы.

Blockchain Developer | https://rumk.in
Slava79 (OP)
Member
**
Offline Offline

Activity: 182
Merit: 17

¯\_(ツ)_/¯


View Profile
May 03, 2018, 02:20:18 PM
 #12


Сам язык достаточно взрослый и уже не нуждается в регулярных исправлениях. А хороший проект может дать толчок к развитию сообщества. Для меня самым большим плюсом в нем является легкость создания песочницы.

Насчет сообщества согласен пожалуй. Целевая группа пользователей Elm может заинтересоваться проектом.  Хм... Но с Elm еще одна загвоздка, там интерфейс взаимодействия с JavaScript не очень прозрачный.

По поводу песочницы - если использовать Nashorn из  JDK 10,  там есть возможность сандбоксинга. Можно подключить любые языки, которые компилируются в JavaScript.

Building a JavaScript Smart Contracts Engine
Github | Site | Chat
rumkin
Jr. Member
*
Offline Offline

Activity: 54
Merit: 1


View Profile WWW
May 03, 2018, 06:50:16 PM
 #13

Хм... Но с Elm еще одна загвоздка, там интерфейс взаимодействия с JavaScript не очень прозрачный.

А мне как раз-таки нравится его способ взаимодействия с JS ) Что именно вы имеете в виду и какие задачи плохо ложатся на его модель?

По поводу песочницы - если использовать Nashorn из  JDK 10,  там есть возможность сандбоксинга. Можно подключить любые языки, которые компилируются в JavaScript.

У меня вызывает сомнение целесообразность вложения труда/ресурсов в Java-проекты в виду а) проприетарности, б) назревающей конкуренции с WASM и грядущей войне VM, в которой я ставлю на последнего )). Но это если говорить о самой Java, не сравнивая ее с Elm.

Blockchain Developer | https://rumk.in
Slava79 (OP)
Member
**
Offline Offline

Activity: 182
Merit: 17

¯\_(ツ)_/¯


View Profile
May 03, 2018, 09:00:24 PM
 #14

Quote
А мне как раз-таки нравится его способ взаимодействия с JS ) Что именно вы имеете в виду и какие задачи плохо ложатся на его модель?

Да не то чтобы плохо ложатся, но дополнительная работа по интеграции из-за портов. В PureScript практически просто вызывается функция.

Спорно конечно.

Quote
У меня вызывает сомнение целесообразность вложения труда/ресурсов в Java-проекты в виду а) проприетарности, б) назревающей конкуренции с WASM и грядущей войне VM, в которой я ставлю на последнего )). Но это если говорить о самой Java, не сравнивая ее с Elm.

а) Кроме Oracle у  Java есть еще пара  коммерческих реализаций и одна open source - OpenJDK.
б) Популярные языки имеют обыкновение жить долго и умирать медленно. Грядущие войны, катастрофы, кто знает что произойдет. Да и привычно как то. Старая добрая Java.

Building a JavaScript Smart Contracts Engine
Github | Site | Chat
rumkin
Jr. Member
*
Offline Offline

Activity: 54
Merit: 1


View Profile WWW
May 04, 2018, 11:59:34 AM
Last edit: May 04, 2018, 03:16:25 PM by rumkin
 #15


Да не то чтобы плохо ложатся, но дополнительная работа по интеграции из-за портов. В PureScript практически просто вызывается функция.


Но насколько я понял из PureScript легко вызвать JS, а для песочницы это ненужное поведение и это небходимо как-то отключать. А у Elm по-умолчанию внешний мир недоступен. Или я ошибаюсь насчет PS?




Blockchain Developer | https://rumk.in
Slava79 (OP)
Member
**
Offline Offline

Activity: 182
Merit: 17

¯\_(ツ)_/¯


View Profile
May 04, 2018, 08:47:49 PM
 #16


Но насколько я понял из PureScript легко вызвать JS, а для песочницы это ненужное поведение и это небходимо как-то отключать. А у Elm по-умолчанию внешний мир недоступен. Или я ошибаюсь насчет PS?


Все правильно, но мне это как раз подходит. Я же делаю сандбуксинг из Java.

Building a JavaScript Smart Contracts Engine
Github | Site | Chat
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!