почему браузерный компилятор солидности падает, когда код слишком длинный?

Я считаю, что компилятор Solidity на основе браузера сломается, когда длина кода достигнет определенного значения, которое составляет около 230 строк. Я не знаю, почему, и я уверен, что здесь нет синтаксической ошибки. Случалась ли с вами эта проблема?

Ответы (4)

Компиляция кода требует много вычислительной мощности, особенно когда вы перекомпилируете каждый раз, когда редактируете. Просто существует ограничение на то, сколько вы можете сделать в браузере.

Если вы пишете много кода, я настоятельно рекомендую использовать фреймворк или компилятор командной строки.

ты имеешь в виду смесь?
когда я развертываю его с помощью тумана, туман также давит

Вы пробовали в среде CLI?

solc --bin --abi yourcode.sol

и сначала проверьте результат.

--- установить CLI Ethereum. В случае с MIST у них уже есть geth. Я думаю, 230-строчный код не проблема. Потому что существует более 230 кодов. Итак, сначала попробуйте скомпилировать в командной строке.

вы можете скачать пакет CLI ethereum https://build.ethereum.org/cpp-binaries-data/release-1.2.2/Ethereum.exe

единственный способ, которым я могу развернуть контракт, - это использовать туман, вы можете научить меня, как это сделать?
Я думаю, что 230-строчный код — это не проблема.

Javascript solcбыл автоматически сгенерирован из кода C++, что делает его крайне неэффективным.

Компилятор solcочень медленный . Компиляция нескольких сотен строк займет больше минуты. Для сравнения, solcпакет, включенный в cpp-ethereum, занимает около 1 секунды.

Я считаю, что solcпакет Javascript на самом деле был автоматически сгенерирован из solcреализации на С++ (возможно, с использованием чего-то вроде этого ). На самом деле вы можете просмотреть исходный код JS здесь . Как видите, компилятор JS безумно сложен и, вероятно, крайне неэффективен. Если вы гуру компиляторов, было бы здорово помочь сообществу, если бы вы переписали этот JS-компилятор.

Пробовали ли вы Ethereum Studio на live.ether.camp в качестве полнофункциональной веб-среды разработки, она должна поддерживать все ваши требования.