WeWin.RU

    • Зарегистрироваться
    • Войти
    • Поиск
    • Категории
    • Метки
    • Непрочитанные
    • Популярные
    • Пользователи
    • Группы

    Осваиваем смарт-контракты на Ethereum

    Вопросы и инструкции
    ethereum смарт-контракты
    4
    31
    1879
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • DimOK
      DimOK отредактировано

      Онлайн среда разработки
      https://remix.ethereum.org/

      Документация одного языка, попроще: https://vyper.readthedocs.io/en/stable/
      Документация другого языка, помощнее и посложнее: https://solidity.readthedocs.io/en/latest/

      Пробуем осваивать...

      1 ответ Последний ответ Ответить Цитировать 0
      • T
        T отредактировано

        Тоже давно хотел этим заняться. Составлю компанию и начну изучать Вайпер параллельно с https://eth-brownie.readthedocs.io/en/stable/

        1 ответ Последний ответ Ответить Цитировать 0
        • DimOK
          DimOK отредактировано DimOK

          https://ethfiddle.com/
          Вот тут вот играться можно, правда на старой версии Solidity, но для понимания процесса - то что нужно.

          А вот ещё лучше!
          https://studio.ethereum.org/

          1 ответ Последний ответ Ответить Цитировать 0
          • DimOK
            DimOK отредактировано

            Сложно, с этими типами, непривычно всё, конечно. И всё, вроде, понятно, а над простейшими вещами бьёшься часами.
            Плюс гавнокод же получается в любом случае, лишь смутное представление, как оно должно работать и какие проблемы могут быть... Аудит нужен в любом случае, а где его брать?

            1 ответ Последний ответ Ответить Цитировать 0
            • T
              TDG отредактировано TDG

              CertiK, OpenZeppelin, Quantstamp, PekShield, Hacken.

              DimOK 1 ответ Последний ответ Ответить Цитировать 2
              • DimOK
                DimOK отредактировано

                Так, ну что-то я задолбался, на сегодня хватит...
                Что я понял: разобрался, как там данные хранятся, методом тыка понял, как сделать настройки изменяемые и начал создавать структуру "сущностей", чтобы каталогизировать рынки...

                С помощью https://studio.ethereum.org/ даже сделал махонькое подобие dApps, то есть сразу и интерфейс будем потихонечку впиливать

                Вообще, как бы, всё очень хорошо, за полдня уже какой-никакой смарт-контракт, какой-никакой доступ к нему со странички...

                На сегодня наверное хватит, ещё вечером надо статью написать, про то, как децентрализованный каталог лучше организовать, я вроде понимаю как, но не уверен, что это оптимально.

                1 ответ Последний ответ Ответить Цитировать 0
                • DimOK
                  DimOK @TDG отредактировано

                  Пользователь @tdg написал в Осваиваем смарт-контракты на Ethereum:

                  CertiK, OpenZeppelin, Quantstamp, PekShield, Hacken.

                  Эх.. ну вот открыл я Квантстамп например... Видно, щёки надувают, всех консультируют, все дела... Сколько это будет стоить, и насколько это эффективно? Просто для того, чтобы 2-3 сообразительных паренька просмотрели код и дали рекомендация по тому, как его лучше поменять, придется оплачивать десятка два дармоедов, которые вокруг этих пареньков собрализь, то есть х5-х10 от реальной стоимости... Неэффективно :(

                  T 1 ответ Последний ответ Ответить Цитировать 0
                  • T
                    T @DimOK отредактировано

                    Пользователь @dimok написал в Осваиваем смарт-контракты на Ethereum:

                    Пользователь @tdg написал в Осваиваем смарт-контракты на Ethereum:

                    CertiK, OpenZeppelin, Quantstamp, PekShield, Hacken.

                    Эх.. ну вот открыл я Квантстамп например... Видно, щёки надувают, всех консультируют, все дела... Сколько это будет стоить, и насколько это эффективно? Просто для того, чтобы 2-3 сообразительных паренька просмотрели код и дали рекомендация по тому, как его лучше поменять, придется оплачивать десятка два дармоедов, которые вокруг этих пареньков собрализь, то есть х5-х10 от реальной стоимости... Неэффективно :(

                    На рынке катастрофически не хватает людей, которые могу сделать качественный аудит. Очередь к ним большая, цена соответствующая. Так что щеки надувают не просто так, к сожалению.

                    trailofbits.com $16,000 1 week 1 person

                    cryptomaniacs $5,000 ( two weeks, two people ~ normally $10,000, they offered some pro bono work)

                    certik.org (quote pending)

                    quantstamp.com (no response)

                    sigmaprime.io $27,500 11 days 2 people

                    openzeppelin.com (quote pending)

                    Рекомендую прочесть: https://medium.com/iearn/things-i-wish-i-knew-before-building-ethereum-defi-dapps-cd6bf0f07a16

                    1 ответ Последний ответ Ответить Цитировать 1
                    • DimOK
                      DimOK отредактировано

                      Прочитал, интересно.
                      Но большая половина не про меня, а что аудит проходить сложно - ну так найдём нормальных пацанов, контакт-лист большой.

                      1 ответ Последний ответ Ответить Цитировать 0
                      • DimOK
                        DimOK отредактировано

                        Придумал, в какое место токены прикрутить, лучших токенов я ещё не видел...

                        T 1 ответ Последний ответ Ответить Цитировать 0
                        • T
                          T отредактировано T

                          Классная инициатива от ребят из y.finance: https://gitcoin.co/blog/announcing-the-kernel-security-track/

                          1 ответ Последний ответ Ответить Цитировать 0
                          • T
                            T @DimOK отредактировано

                            Пользователь @dimok написал в Осваиваем смарт-контракты на Ethereum:

                            Придумал, в какое место токены прикрутить, лучших токенов я ещё не видел...

                            Рассказывайте!

                            1 ответ Последний ответ Ответить Цитировать 0
                            • DimOK
                              DimOK отредактировано

                              Кодить над, чего рассказывать.
                              Называться токен будет "EBES"
                              По-английски вполне благозвучно звучит, а по-русски - прикольно, бггг

                              C 1 ответ Последний ответ Ответить Цитировать 0
                              • DimOK
                                DimOK отредактировано

                                Насколько далеко состояние "ура, работает" до состояния "работает оптимально" :(

                                1 ответ Последний ответ Ответить Цитировать 0
                                • C
                                  CaseyR @DimOK отредактировано

                                  Пользователь @dimok написал в Осваиваем смарт-контракты на Ethereum:

                                  Кодить над, чего рассказывать.
                                  Называться токен будет "EBES"
                                  По-английски вполне благозвучно звучит, а по-русски - прикольно, бггг

                                  Не забудьте залистить на юнисвап с хорошей ликвидностью

                                  1 ответ Последний ответ Ответить Цитировать 0
                                  • DimOK
                                    DimOK отредактировано

                                    А у меня не будет токенов :( их надо за эфирки у смарт-контракта покупать и ему же продавать.

                                    T 1 ответ Последний ответ Ответить Цитировать 0
                                    • T
                                      T @DimOK отредактировано

                                      bonding curve?

                                      1 ответ Последний ответ Ответить Цитировать 0
                                      • DimOK
                                        DimOK отредактировано

                                        Не совсем, супплай тоже фиксированый.
                                        Просто доли от прибыли смарт-контракта. Продажа токенов считается прибылью.
                                        Очень красиво получилось, но не могу разобраться, как Пуассона прикрутить... Кешировать значения не выход, надо штук 700 значений сохранить... и не работает что-то, в общем завтра поковыряю, хотя бы понятно, в каком направлении думать.

                                        1 ответ Последний ответ Ответить Цитировать 0
                                        • DimOK
                                          DimOK отредактировано

                                          То есть я знаю, как сделать футбол/хоккей, знаю как сделать (трудно сделать) теннис, знаю как сделать баскетбол... Может правда отдельные алгоритмы под них дать, по отдельности реализовать... Или можно забить на баскетбол, например... Сложно :( Но нужно сделать, иначе ликвидность будет грустная.

                                          1 ответ Последний ответ Ответить Цитировать 0
                                          • DimOK
                                            DimOK отредактировано

                                            Читаю, читаю... Столько моментов, тонкостей, оптимизаций...
                                            Видимо надо, как обычно, сначала сделать плохо, потом увидеть, почему плохо и начать узнавать, как сделать хорошо.

                                            1 ответ Последний ответ Ответить Цитировать 0
                                            • DimOK
                                              DimOK отредактировано

                                              Какая хорошая библиотечка, можно складывать кучу циферок в плотные байт-массивы, на ассемблере.
                                              https://github.com/GNSPS/solidity-bytes-utils
                                              То что надо.

                                              1 ответ Последний ответ Ответить Цитировать 0
                                              • DimOK
                                                DimOK отредактировано

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

                                                Очень бы хотелось, чтобы кто-нибудь опытный посмотрел на мой код и указал на грубые ошибки проектирования... Но у опытных либо свои проекты, либо загруженный рабочий день, плюс они хорошо обеспечены, я не могу их заинтересовать ни деньгами, ни собственно проектом. А связываться с людьми, которые просто знают, как написать ERC20 токен не хочется.

                                                1 ответ Последний ответ Ответить Цитировать 0
                                                • DimOK
                                                  DimOK отредактировано

                                                  https://consensys.github.io/smart-contract-best-practices/recommendations/
                                                  Вот тут интересно... Какой же плохой код я пишу :(

                                                  1 ответ Последний ответ Ответить Цитировать 0
                                                  • DimOK
                                                    DimOK отредактировано

                                                    Я не люблю писать тесты. Не ленюсь, а не люблю. Покрытие тестами, зачастую, это деятельность ради деятельности, написать хороший тест, который учитывает все возможные сценарии сложно, а если у нас ещё есть какие-то внешние данные - то не всегда возможно. Не лучше ли вместо набивания килобайтов тестов сделать проверки входных данных в самой программе?

                                                    Однако есть best practices и в них нас заставляют писать модули, покрывать их тестами. Иначе это плохой код... Понятно, зачем это нужно, когда у тебя в команде 10 кодомакак, и они работают над одним проектом, ты не можешь заставить одну макаку писать эту функцию, а вторую - другую. Тебе надо выделить модуль для каждой макаки, покрыть его тестом, а дальше устраивать код-ревью, после того, как тесты прошли, чтобы убедиться, что макака действительно что-то нормальное написала.

                                                    Но если ты сам себе макака - зачем нужны тесты, ты отвечаешь за каждую функцию, что она сделана наилучшим доступным тебе способом...

                                                    Не хочу писать тесты, узнавать best practices и patterns хочу, это полезно. Тесты и разбиение на модули - пустая трата времени.

                                                    1 ответ Последний ответ Ответить Цитировать 0
                                                    • DimOK
                                                      DimOK отредактировано

                                                      К сожалению, studio.ethereum.org недостаточно для нормальной разработки, увы, было очень удобно.

                                                      Недостатки:

                                                      • я не смог разобраться, как отправлять массив значений контракту через их интерфейс, кажется это баг, а проект больше не поддерживается.
                                                      • старая версия solidity

                                                      Остальное всё было очень удобно, но видимо нужна среда разработки с большим контролем...

                                                      https://github.com/ethereum/ethereum-org-website/blob/dev/src/content/developers/docs/frameworks/index.md

                                                      Надо разобраться, какие бывают и выбрать, truffle мне не нравится...

                                                      1 ответ Последний ответ Ответить Цитировать 0
                                                      • 1
                                                      • 2
                                                      • 1 / 2
                                                      • Первое сообщение
                                                        Последнее сообщение