Author

Topic: Вопрос по смарт-контрактам (Read 1063 times)

sr. member
Activity: 613
Merit: 256
Вы еще учтите, что контракт при деплое надо выполнить, и иногда функция инита достаточно вычислимо трудоемкая
Вы имеете ввиду вызов конструктора? Да, конструктор вызывается при деплое, но в большинстве контрактов конструктор достаточно простой, где только сохраняется адрес владельца контракта,  нечто вроде: owner = msg.sender.
full member
Activity: 138
Merit: 101
Вы еще учтите, что контракт при деплое надо выполнить, и иногда функция инита достаточно вычислимо трудоемкая, ведь она готовит весь контракт. Так что это стоит майнерам намного больше мощности, чем простая транзакция, отсюда и стоимость
sr. member
Activity: 613
Merit: 256
Quote
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.

Дороговизна здесь понятие скорее относительное, но видимо это некоторый простой механизм ограничения кол-ва деплоимых контрактов.
Мне кажется что тут все гораздо проще - место в блоке стоит денег а майнерам без разницы транзакции на это место записывать или смарт контракт вот и получается такая дороговизна деплоя контракта в блокчейн, не думаю что майнеры берут за контракт больше чем если бы они на это место сохраняли транзакции в блоке.
newbie
Activity: 21
Merit: 0
Quote
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.

Дороговизна здесь понятие скорее относительное, но видимо это некоторый простой механизм ограничения кол-ва деплоимых контрактов.
newbie
Activity: 28
Merit: 0
ребят у меня на сайте МЕВ не отображаются токены я ввожу правильно адрес и колли-во запятых,но результата нет,что мне делатЬ? сумма большая
2-3 дня подождите,у меня оторбразились
member
Activity: 110
Merit: 10
ребят у меня на сайте МЕВ не отображаются токены я ввожу правильно адрес и колли-во запятых,но результата нет,что мне делатЬ? сумма большая
sr. member
Activity: 613
Merit: 256
не, вы не поняли. Такой контракт скорее всего просто не получится задеплоить в ноду из-за превышения по газу. Если же он задеплоен уже, то вызывайте функции чтения сколько хотите, они бесплатны. При деплое контрактов скорее всего gaz за функции чтения также учитывается. После деплоя, при вызове - нет.
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.
full member
Activity: 313
Merit: 103
не, вы не поняли. Такой контракт скорее всего просто не получится задеплоить в ноду из-за превышения по газу. Если же он задеплоен уже, то вызывайте функции чтения сколько хотите, они бесплатны. При деплое контрактов скорее всего gaz за функции чтения также учитывается. После деплоя, при вызове - нет.
sr. member
Activity: 613
Merit: 256
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько)
Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает.

не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет.
А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.
Функции чтения не синхронизируются и максимум можгут похоронить одну ноду, на которой запускались. Но, думаю, что защита от такого должна быть предусмотрена, просто не в курсе о ней. Может, при заливке смартконтракта в сеть все констант функции запускаются и evm будет ругаться превышением по газу размера блока. Может ещё что.
Я и говорю про это, что если бы вызов функции был бы бесплатным то можно было бы 1 контрактом хоронить 1 ноду и если в это дело вложить денег, кстати не очень больших, то можно было бы хоронить всю сеть постоянно.
newbie
Activity: 76
Merit: 0
А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.

Вызова функции не происходит. Просто происходит чтение состояния контракта в блокчейне
full member
Activity: 313
Merit: 103
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько)
Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает.

не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет.
А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.
Функции чтения не синхронизируются и максимум можгут похоронить одну ноду, на которой запускались. Но, думаю, что защита от такого должна быть предусмотрена, просто не в курсе о ней. Может, при заливке смартконтракта в сеть все констант функции запускаются и evm будет ругаться превышением по газу размера блока. Может ещё что.
sr. member
Activity: 613
Merit: 256
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько)
Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает.

не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет.
А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.
full member
Activity: 313
Merit: 103
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько)
Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает.

не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет.
sr. member
Activity: 613
Merit: 256
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько)
Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает.
full member
Activity: 448
Merit: 109
Да, вы вызиваете только ту функцию, что вам нужно

ОКе,  спасибо за ответы!
full member
Activity: 138
Merit: 101
Да, вы вызиваете только ту функцию, что вам нужно
full member
Activity: 448
Merit: 109
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько)
full member
Activity: 256
Merit: 102
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
full member
Activity: 448
Merit: 109
Каким образом происходит ввод информации в смарт-контракт? (Только начал изучать их)
Вот как они работают - я понял, а вот как в них вводить информацию (например в mapping) - не понял, объясните, пожалуйста Huh
Jump to: