Title: solidity, разбираюсь со смартконтрактами Post by: Jaga-Jaga on September 11, 2017, 10:29:09 PM Я собираюсь начать разбираться со смартконтрактами, немного погуглив заметил что в большинстве примеров использовался линукс, первый вопрос какую ОС лучше использовать для разработки смартконтрактов? (Если большинство примеров идет с командной строкой линукса то я могу и линукс поставить, если есть удобная среда разработки под мастдай то его могу оставить)
второй вопрос это посоветуйте подробную документацию по solidity , я пока нашел лучшую эту: http://solidity.readthedocs.io/en/develop/installing-solidity.html , но хочется еще более емкую и еще хочется чтобы как в любом языке программирования был бы список reserved words языка, для solidity я пока не нашел такого списка. Как можно из solidity(смартконтракта узнать текущую дату и время)? Как можно использовать ГСЧ? (если в solidity есть такая возможность) Есть ли какая IDE поддерживающая solidity или может плагин под Eclipse есть? Ну вобщем с чего посоветуете начать изучение solidity? Title: Re: solidity, разбираюсь со смартконтрактами Post by: quantum on September 12, 2017, 06:12:47 AM Лучше да, линукс. Если у вас windows просто поставьте ubuntu server на виртуалку.
Официальная документация очень хорошая, прочитайте полностью. Quote Как можно из solidity(смартконтракта узнать текущую дату и время)? nowQuote Как можно использовать ГСЧ? (если в solidity есть такая возможность) Некритичные вещи можно сделать с помощью песевдослучайных чисел на основе информации из блока, критичные не сделать никак, т.к. майнеры до момента заключения в транзакцию уже знают сгенерированное число и могут не включить эту транзакцию в блок, если это число их не устраивает (т.е. если у вас казино, они просто не будут включать в блок свои проигрышные ставки)Quote Есть ли какая IDE поддерживающая solidity или может плагин под Eclipse есть? онлайн редактор, можно запусать и дебажить https://ethereum.github.io/browser-solidity/ Плагин для атома (сам не смотрел) https://atom.io/packages/language-ethereum Quote Ну вобщем с чего посоветуете начать изучение solidity? Чтобы не городить велосипеды, посмотрите эти видюшки, в них описаны лучшие практики https://m.youtube.com/playlist?list=PLoQp1VPBv3SmVjFlXR7EIPFTri6yjrvtE Title: Re: solidity, разбираюсь со смартконтрактами Post by: YuriDnl on September 12, 2017, 06:25:50 PM Лучше да, линукс. Если у вас windows просто поставьте ubuntu server на виртуалку. Официальная документация очень хорошая, прочитайте полностью. Quote Как можно из solidity(смартконтракта узнать текущую дату и время)? nowQuote Как можно использовать ГСЧ? (если в solidity есть такая возможность) Некритичные вещи можно сделать с помощью песевдослучайных чисел на основе информации из блока, критичные не сделать никак, т.к. майнеры до момента заключения в транзакцию уже знают сгенерированное число и могут не включить эту транзакцию в блок, если это число их не устраивает (т.е. если у вас казино, они просто не будут включать в блок свои проигрышные ставки)Quote Есть ли какая IDE поддерживающая solidity или может плагин под Eclipse есть? онлайн редактор, можно запусать и дебажить https://ethereum.github.io/browser-solidity/ Плагин для атома (сам не смотрел) https://atom.io/packages/language-ethereum Quote Ну вобщем с чего посоветуете начать изучение solidity? Чтобы не городить велосипеды, посмотрите эти видюшки, в них описаны лучшие практики https://m.youtube.com/playlist?list=PLoQp1VPBv3SmVjFlXR7EIPFTri6yjrvtE Спасибо, как раз тоже искал инфу по этому вопросу. Кстати, на Маке надеюсь не придется ставить убунту Title: Re: solidity, разбираюсь со смартконтрактами Post by: quantum on September 13, 2017, 03:34:41 AM Кстати, на Маке надеюсь не придется ставить убунту На маке не придется Title: Re: solidity, разбираюсь со смартконтрактами Post by: aleks_raiden on September 14, 2017, 02:02:46 PM Можно поставить кошелек Mist, там будут интегрированные инструменты (Remix) сразу. Много ссылок есть здесь (https://solidity.readthedocs.io/en/develop/ (https://solidity.readthedocs.io/en/develop/)), можно подобрать под платформу.
По поводу ГСЧ - придется писать сервис-оракула, который будет отсылать вашему контракту числа, можно даже сразу генерировать блоками, например, 10 и хранить их, используя сколько надо. Другой вариант генерации, без оракула, на базе данных из самой транзакции, описан здесь - https://habrahabr.ru/post/325988/ (https://habrahabr.ru/post/325988/) Title: Re: solidity, разбираюсь со смартконтрактами Post by: quantum on September 14, 2017, 09:28:46 PM Другой вариант генерации, без оракула, на базе данных из самой транзакции, описан здесь - https://habrahabr.ru/post/325988/ (https://habrahabr.ru/post/325988/) Любой ГСЧ на эфире уязвим. Сам майнер во время включения транзакций в блок уже знает результат вычислений и может не включить транзакцию http://martin.swende.se/blog/Breaking_the_house.html Title: Re: solidity, разбираюсь со смартконтрактами Post by: aleks_raiden on September 15, 2017, 12:25:57 PM Но с одной стороны, вы правы. Но это должен быть сговор майнеров и, как минимум, модификация ПО чтобы отвергать/изменять конкретные транзакции контрактов - пока, как минимум, из того что известно, такого нет. Но вектор атаки вообще - интересен, да.
Title: Re: solidity, разбираюсь со смартконтрактами Post by: Jaga-Jaga on September 15, 2017, 09:33:50 PM Другой вариант генерации, без оракула, на базе данных из самой транзакции, описан здесь - https://habrahabr.ru/post/325988/ (https://habrahabr.ru/post/325988/) Любой ГСЧ на эфире уязвим. Сам майнер во время включения транзакций в блок уже знает результат вычислений и может не включить транзакцию http://martin.swende.se/blog/Breaking_the_house.html А что если делать ГСЧ на основе нескольких последних блоков? Title: Re: solidity, разбираюсь со смартконтрактами Post by: amaclin1 on September 19, 2017, 08:58:51 PM А что если делать ГСЧ на основе нескольких последних блоков? Это ничем не отличается от генератора на основе последнего блока.Последний майнер видит контракт, вычисляющий случайное число, вычисляет его сам перед публикацией блока в сеть и таким образом может "подкручивать" ваш генератор в выгодную для себя сторону (разумеется, если на кону серьёзная ставка) Пример для понятности. Допустим, ваш ГСЧ выдает рандомно 0 или 1. Если выдалась 1 - то игрок получает от вас миллион рублей. Если выдался 0 - ставка игрока в миллион рублей идёт вам. Майнер ставит на кон миллион и майнит блок. Если блок смайнил кто-то другой - в этом случае вероятность выигрыша и проигрыша 50:50 Если блок смайнил сам майнер - он сперва проверяет - если выиграл - то публикует блок. Если проиграл - он его выбрасывает в /dev/nul и продолжает майнить. Таким образом, он, конечно, наказывает себя на награду от блока, но зато его шансы выиграть у вас в долгосроке увеличиваются. А вы лично будете на этом только терять деньги. Причем чем больше будет таких хитрожопых майнеров, тем больше вы будете терять. В случае если все просекут эту фишку - то ваш генератор будет выдавать последовательность 1-1-1-1-1-1... Title: Re: solidity, разбираюсь со смартконтрактами Post by: websalamander on September 30, 2017, 11:09:46 AM Я собираюсь начать разбираться со смартконтрактами, немного погуглив заметил что в большинстве примеров использовался линукс, первый вопрос какую ОС лучше использовать для разработки смартконтрактов? На винде тоже можно работать. Набор -> Git/ Truffle/testrpc/MetaMask - компилируй и тестируй спокойно контракты... Ну вобщем с чего посоветуете начать изучение solidity? |