Развертывание контракта вызывает ошибку лимита газа в блоке

Я пытаюсь развернуть смарт-контракт в тестовой сети с помощью [meteor DApp][1]. У меня есть эти параметры для блока генезиса:

gasLimit: "0x1388"

Однако каждый раз, когда я пытаюсь развернуть любой отдельный контракт, я получаю следующую ошибку:

Error: Exceeds block gas limit

Любая идея о том, что я могу сделать здесь?

Ответы (2)

Поскольку вы делаете это в тестовой сети, вы можете изменить свой блок генезиса, чтобы иметь предел газа 0x2fefd8, такой же, как и в основной сети (3 141 592 газа). Вам также нужно будет сбросить эту тестовую цепочку, так как вы будете изменять блок генезиса.

Во время развертывания некоторых контрактов можно столкнуться с ограничением по блочному газу в миллионах PI.

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

  1. Попытка быстрого исправления заключается в использовании --optimize флага Solidity .
  2. Если необходимы дальнейшие исследования, попытайтесь определить, насколько превышено ограничение по блочному газу в вашем развертывании. Начните с комментирования частей контракта и проверьте, можно ли удалить какие-либо части.
  3. Если есть какая-либо общая логика, обязательно реорганизуйте ее как функцию, так как это уменьшит размер байт-кода и будет означать более низкую стоимость газа во время развертывания.
  4. Если в договоре слишком много логики, то необходимо разделить договор. Разделение на библиотеки может помочь. Также может потребоваться разделение на несколько контрактов, где каждый контракт имеет только пару функций.
Я получаю эту ошибку с любым контрактом, независимо от его сложности. Я только что настроил эту сеть, поэтому я мог сделать что-то не так при настройке