• Создатель форума

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

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

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


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

  • Создатель форума

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

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

  • Создатель форума

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


  • CertiK, OpenZeppelin, Quantstamp, PekShield, Hacken.

  • Создатель форума

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

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

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

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

  • Создатель форума

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

    CertiK, OpenZeppelin, Quantstamp, PekShield, Hacken.

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


  • Пользователь @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

  • Создатель форума

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

  • Создатель форума

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


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


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

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

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

  • Создатель форума

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

  • Создатель форума

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


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

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

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

  • Создатель форума

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


  • bonding curve?

  • Создатель форума

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

  • Создатель форума

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

  • Создатель форума

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

  • Создатель форума

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

  • Создатель форума

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

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

  • Создатель форума

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

  • Создатель форума

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

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

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

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

  • Создатель форума

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

    Недостатки:

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

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

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

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