Самый простой способ скомпилировать Solidity в браузере пользователя?

Я хотел бы скомпилировать Solidity в браузере. web3имеет устаревшие compile()функции, поэтому вы больше не можете звонить web3.eth.compile.solidity().

Я пытался, чтобы browserify require('solc') / require('solc/wrapper')попытаться получить доступ к функциям компиляции, но, похоже, у него есть проблемы.

Я нашел один проект, который делает это, называется browser-solc, но последний раз он обновлялся год назад, и я не уверен, что хочу на него полагаться.

Один из вариантов — просто создать конечную точку и выполнить ее на стороне сервера, а затем вернуть результат пользователю для использования в развертывании смарт-контракта.

Любые мысли или решения по этому вопросу приветствуются.

Если на ваш вопрос был дан ответ, не могли бы вы отметить его как отвеченный, чтобы другие пользователи знали? Спасибо :)

Ответы (2)

Для локальной разработки небольших сторонних проектов я использовал онлайн- компилятор remix .

По мере развития проекта я начал выполнять эти вычисления на стороне сервера с реализацией Ethereum, которую я использовал: EthereumJ .

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

Я бы указал вам направление solc-js . Он отлично работает для компиляции на стороне клиента imo.

Трюфель - это то, как я это делаю.

npm i truffle

И у него есть собственный движок geth, поэтому для его работы не нужно устанавливать testrpc. Подробнее здесь: https://github.com/trufflesuite/truffle

Я использовал трюфель, но он предназначен для развертывания на вашем локальном хосте/сервере, верно? Я полагаю, я мог бы написать сценарий конечной точки, который выполняет truffle на моем сервере и отправляет данные обратно пользователю.
Да, мы используем truffle в качестве регрессионного теста на основе развертывания. но он также позволяет вам использовать ваши собственные редакторы и инструменты анализа для предотвращения простых синтаксических ошибок и выполнения кода. нужно иметь полностью рабочую среду, подобную той, что дает testrpc. вы не должны развертывать код разработки в тестовой сети, туда должен идти только предварительный тест.