Author

Topic: Как развернуть контракт в реальную сеть? (Read 821 times)

newbie
Activity: 54
Merit: 0
Quote
Вы забыли порядки - вот и пишет, что "недостаточно средств" -  почитайте What is Gas?

Geth не давал менять больше 5000, пробовал различные значения.

С Parity вроде завелось, транзакция прошла, но с газом так до конца и не разобрался.
full member
Activity: 313
Merit: 103
Тоже поимел большую проблему с газом при разворачивании конрактов. Вот это вот: exceeds block gas limit может означать, что вы пытаетесь заливая контракты превысить газ, который нужен для всего блока транзакций. Т.е. код большой к заливке.

По-другому, есть стандартный размер блока (можно настраивать, но этого делать не стоит, поскольку будут нестыковки потом с реальной сетью) и он потребляет определённое количество газа (примерно 4 700 000) на своё заполнение.  Я так понял, что (если всё компилируется нормально) выгружая контракт получается только одна транзакция с размером, превышающим по газу возможности блока. Однако, это всё мои догадки, поскольку на подобные вопросы в этой же ветке форума, мне детального разъяснения никто не дал.

п.с.
Мне, в моём случае, например, сейчас придётся не то что бы оптимизировать контракты для уменьшения потребления, а скорее всего придётся отказываться от единоразовой выгрузки всех контрактов при создании основного контракта. Отказываться в пользу ручного создания доп. контрактов системы с их последующим подключением к системе. Т.е. разбивать код на части. Что есть не совсем удобно. Т.е. плохо.
newbie
Activity: 88
Merit: 0
Поставьте после network_id: '1' какой-либо лимит(4500000-5000000) gas: - может подхватит...

Code:
module.exports = {
    networks: {
        live: {
            from: '0xADDR',
            host: 'localhost',
            port: 8545,
            network_id: 1,
            gas:  5000
        }
    }
};

С таким конфигом другая ошибка:

Code:

Error: insufficient funds for gas * price + value
Вы забыли порядки - вот и пишет, что "недостаточно средств" -  почитайте What is Gas?
newbie
Activity: 54
Merit: 0
Поставьте после network_id: '1' какой-либо лимит(4500000-5000000) gas: - может подхватит...

Code:
module.exports = {
    networks: {
        live: {
            from: '0xADDR',
            host: 'localhost',
            port: 8545,
            network_id: 1,
            gas:  5000
        }
    }
};

С таким конфигом другая ошибка:

Code:
Error: insufficient funds for gas * price + value
newbie
Activity: 88
Merit: 0
Пробовал поднять ноду на geth, но тоже потерпел фиаско.

Code:
geth --unlock 0xADDR

Конфиг truffle:

Code:
module.exports = {
    networks: {
        live: {
            from: '0xADDR',
            host: 'localhost',
            port: 8545,
            network_id: '1'
        }
    }
};



Ошибка:

Code:
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: exceeds block gas limit
Поставьте после network_id: '1' какой-либо лимит(4500000-5000000) gas: - может подхватит...
newbie
Activity: 54
Merit: 0
Пробовал поднять ноду на geth, но тоже потерпел фиаско.

Code:
geth --unlock 0xADDR

Конфиг truffle:

Code:
module.exports = {
    networks: {
        live: {
            from: '0xADDR',
            host: 'localhost',
            port: 8545,
            network_id: '1'
        }
    }
};

Ошибка:

Code:
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: exceeds block gas limit
newbie
Activity: 54
Merit: 0
Настроил truffle на сервер infura, но при разворачивании получаю ошибку:

Code:
Error encountered, bailing. Network state unknown. Review successful transactions manually.
insufficient funds for gas * price + value

Конфиг truffle:

Code:
module.exports = {
    networks: {
        live: {
            provider: new HDWalletProvider('', 'https://mainnet.infura.io/'),
            network_id: 1
        }
    }
};

Разворачиваю командой:

Code:
truffle migration --reset --network=live

Мнемоническая фраза проверена, на адресе есть баланс.
newbie
Activity: 54
Merit: 0
Разрабатываем смарт-контракты на заказ.

Опытная команда. Аудит безопасности. Консультации по техническому запуску ICO.

Связь: slava(точка)brall(собака)gmail(точка)com

Судя по вашему статусу на форуме, очень сомнительно, что команда опытная  Smiley

Разработать и сами можем, вопрос был с разверткой через truffle.
newbie
Activity: 31
Merit: 0
Разрабатываем смарт-контракты на заказ.

Опытная команда. Аудит безопасности. Консультации по техническому запуску ICO.

Связь: slava(точка)brall(собака)gmail(точка)com

full member
Activity: 313
Merit: 103
migrations.sol не деплоить не пробовал, но вроде как читал что можно. Просто лишитесь части функционала по управлению версиями, вроде как (могу ошибаться). Внутри контракта-создателя обычно сохраняют адрес в параметр (переменную). Далее, если нужно, можно сделать переменную публичной или добавить getter (только для владельца). А ещё в логах можно попробовать поискать (опять таки, по логам сам  не пробовал искать).
newbie
Activity: 54
Merit: 0
Спасибо за ответы, понемногу проясняется.

Quote
скрипты деплоя, это те что в папке migrations?

Да

Quote
в них первым деплоится migrations.sol (стандартный для трюфеля)

Можно его не деплоить вообще?

Как мне узнать адрес токена который деплоился краудсейлом?
full member
Activity: 313
Merit: 103
Правильно ли я понимаю, что мне нужно просто поднять ноду, сконфигурировать на неё truffle и как обычно запустить truffle migrate?
да

Или я могу не поднимать ноду а отправить контракт на ноду infura?

не знаю что за infura, но наверное да, если на ней запущен RPC и у вас есть хост и порт и не будет проблем достучаться.

Я взял для примера 2 контракта, пример токена и пример краудсейла. Контракт краудсейла внутри себя разворачивает токен через new MyToken(). Если смотреть скрипты деплоя truffle то видно что он первым разворачивает стандартный контракт Migrations, затем краудсейл. Токена я в логах деплоя не увидел, но он видимо разворачивается из краудсейла.

скрипты деплоя, это те что в папке migrations? в них первым деплоится migrations.sol (стандартный для трюфеля) и затем деплоятся все необходимые самописные контракты. Что вы там должны были увидеть в деплоях, зависит от того, что у вас было изначально (создано трюфелем покоманде truffle init). Необходимо лишнее убрать и оставить только то, что вам нужно. Если вы деплоите контракт, а он в свою очередь создаёт в конструкторе второй контракт, то второй контракт вам деплоить не нужно (по теории, сам сейчас проверять буду, но кажется что так), поскольку в этом случае в блокчейне вторых контрактов у вас должно оказаться два, один из которых нужный, созданный по new MyToken() со ссылкой внутри краудсейла, а второй ненужный, который ни к чему привязан не будет.
newbie
Activity: 54
Merit: 0
Всем привет, подскажите как правильно равзвернуть контракт в реальную сеть? Использую фреймворк truffle.
https://golos.io/ru--blokcheijn/@ferumflex/kak-zapustit-ico-na-ethereum-s-pomoshyu-smart-kontrakta
Я использую фреймворк truffle, если использовать команду truffle migrate, то мне не понятно как развернуть контракт на реальную сеть. По ссылке выше можно развернуть контракт имея исходный код, truffle компилирует все в папку build, например один контракт внутри может разворачивать другой.

по теории, вопрос к какой сети подключен truffle. Т.е. сперва нужно поднять локальную ноду с реальным блокчейном и потом указать её трюфелю для выгрузки. Либо, можно попробовать указать чужую с открытым RPC, если есть адрес и порт... Это что касается разворачивания а реальную сеть. А вот с контрактами, которые один другого разворачивает вопрос как-то непонятно задан.
Правильно ли я понимаю, что мне нужно просто поднять ноду, сконфигурировать на неё truffle и как обычно запустить truffle migrate? Или я могу не поднимать ноду а отправить контракт на ноду infura? Я взял для примера 2 контракта, пример токена и пример краудсейла. Контракт краудсейла внутри себя разворачивает токен через new MyToken(). Если смотреть скрипты деплоя truffle то видно что он первым разворачивает стандартный контракт Migrations, затем краудсейл. Токена я в логах деплоя не увидел, но он видимо разворачивается из краудсейла.
full member
Activity: 313
Merit: 103
Всем привет, подскажите как правильно равзвернуть контракт в реальную сеть? Использую фреймворк truffle.
https://golos.io/ru--blokcheijn/@ferumflex/kak-zapustit-ico-na-ethereum-s-pomoshyu-smart-kontrakta
Я использую фреймворк truffle, если использовать команду truffle migrate, то мне не понятно как развернуть контракт на реальную сеть. По ссылке выше можно развернуть контракт имея исходный код, truffle компилирует все в папку build, например один контракт внутри может разворачивать другой.

по теории, вопрос к какой сети подключен truffle. Т.е. сперва нужно поднять локальную ноду с реальным блокчейном и потом указать её трюфелю для выгрузки. Либо, можно попробовать указать чужую с открытым RPC, если есть адрес и порт... Это что касается разворачивания а реальную сеть. А вот с контрактами, которые один другого разворачивает вопрос как-то непонятно задан.
newbie
Activity: 54
Merit: 0
Всем привет, подскажите как правильно равзвернуть контракт в реальную сеть? Использую фреймворк truffle.
https://golos.io/ru--blokcheijn/@ferumflex/kak-zapustit-ico-na-ethereum-s-pomoshyu-smart-kontrakta
Я использую фреймворк truffle, если использовать команду truffle migrate, то мне не понятно как развернуть контракт на реальную сеть. По ссылке выше можно развернуть контракт имея исходный код, truffle компилирует все в папку build, например один контракт внутри может разворачивать другой.
member
Activity: 112
Merit: 10
Всем привет, подскажите как правильно равзвернуть контракт в реальную сеть? Использую фреймворк truffle.
https://golos.io/ru--blokcheijn/@ferumflex/kak-zapustit-ico-na-ethereum-s-pomoshyu-smart-kontrakta
newbie
Activity: 54
Merit: 0
Всем привет, подскажите как правильно развернуть контракт в реальную сеть? Использую фреймворк truffle.
Jump to: