yaroslav195 (OP)
|
|
October 11, 2017, 07:31:21 PM |
|
Каким образом происходит ввод информации в смарт-контракт? (Только начал изучать их) Вот как они работают - я понял, а вот как в них вводить информацию (например в mapping) - не понял, объясните, пожалуйста
|
|
|
|
ferumflex
|
|
October 12, 2017, 12:53:04 PM |
|
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
|
|
|
|
yaroslav195 (OP)
|
|
October 12, 2017, 02:39:45 PM |
|
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько)
|
|
|
|
aleks_raiden
|
|
October 13, 2017, 08:54:58 AM |
|
Да, вы вызиваете только ту функцию, что вам нужно
|
|
|
|
yaroslav195 (OP)
|
|
October 13, 2017, 01:08:14 PM |
|
Да, вы вызиваете только ту функцию, что вам нужно
ОКе, спасибо за ответы!
|
|
|
|
Jaga-Jaga
|
|
October 17, 2017, 09:08:24 PM |
|
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько) Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает.
|
|
|
|
ShDenis
|
|
October 18, 2017, 05:26:35 AM |
|
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько) Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает. не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет.
|
|
|
|
Jaga-Jaga
|
|
October 24, 2017, 07:08:00 PM |
|
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько) Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает. не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет. А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.
|
|
|
|
ShDenis
|
|
October 25, 2017, 06:11:33 AM |
|
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько) Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает. не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет. А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить. Функции чтения не синхронизируются и максимум можгут похоронить одну ноду, на которой запускались. Но, думаю, что защита от такого должна быть предусмотрена, просто не в курсе о ней. Может, при заливке смартконтракта в сеть все констант функции запускаются и evm будет ругаться превышением по газу размера блока. Может ещё что.
|
|
|
|
mushroomalert
Newbie
Offline
Activity: 76
Merit: 0
|
|
October 25, 2017, 11:14:16 AM |
|
А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.
Вызова функции не происходит. Просто происходит чтение состояния контракта в блокчейне
|
|
|
|
Jaga-Jaga
|
|
October 25, 2017, 07:34:32 PM |
|
Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько) Из смартк контракта можно вызвать любую public функцию сколько угодно раз, только за вызов функции прийдется заплатить. Еще есть момент что уже внутри самой функции может стоять проверка на то кто ее вызывает и если у вас нет права вызывать эту функцию то она не отработает. не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет. А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить. Функции чтения не синхронизируются и максимум можгут похоронить одну ноду, на которой запускались. Но, думаю, что защита от такого должна быть предусмотрена, просто не в курсе о ней. Может, при заливке смартконтракта в сеть все констант функции запускаются и evm будет ругаться превышением по газу размера блока. Может ещё что. Я и говорю про это, что если бы вызов функции был бы бесплатным то можно было бы 1 контрактом хоронить 1 ноду и если в это дело вложить денег, кстати не очень больших, то можно было бы хоронить всю сеть постоянно.
|
|
|
|
ShDenis
|
|
October 26, 2017, 10:04:34 AM |
|
не, вы не поняли. Такой контракт скорее всего просто не получится задеплоить в ноду из-за превышения по газу. Если же он задеплоен уже, то вызывайте функции чтения сколько хотите, они бесплатны. При деплое контрактов скорее всего gaz за функции чтения также учитывается. После деплоя, при вызове - нет.
|
|
|
|
Jaga-Jaga
|
|
October 26, 2017, 07:05:20 PM |
|
не, вы не поняли. Такой контракт скорее всего просто не получится задеплоить в ноду из-за превышения по газу. Если же он задеплоен уже, то вызывайте функции чтения сколько хотите, они бесплатны. При деплое контрактов скорее всего gaz за функции чтения также учитывается. После деплоя, при вызове - нет.
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.
|
|
|
|
KAMANDOS
Member
Offline
Activity: 110
Merit: 10
|
|
October 27, 2017, 05:53:06 AM |
|
ребят у меня на сайте МЕВ не отображаются токены я ввожу правильно адрес и колли-во запятых,но результата нет,что мне делатЬ? сумма большая
|
|
|
|
IrinaBTC
Newbie
Offline
Activity: 28
Merit: 0
|
|
October 27, 2017, 05:54:54 AM |
|
ребят у меня на сайте МЕВ не отображаются токены я ввожу правильно адрес и колли-во запятых,но результата нет,что мне делатЬ? сумма большая
2-3 дня подождите,у меня оторбразились
|
|
|
|
Mishman
Newbie
Offline
Activity: 21
Merit: 0
|
|
October 30, 2017, 12:04:33 PM |
|
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.
Дороговизна здесь понятие скорее относительное, но видимо это некоторый простой механизм ограничения кол-ва деплоимых контрактов.
|
|
|
|
Jaga-Jaga
|
|
October 30, 2017, 09:16:34 PM |
|
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.
Дороговизна здесь понятие скорее относительное, но видимо это некоторый простой механизм ограничения кол-ва деплоимых контрактов. Мне кажется что тут все гораздо проще - место в блоке стоит денег а майнерам без разницы транзакции на это место записывать или смарт контракт вот и получается такая дороговизна деплоя контракта в блокчейн, не думаю что майнеры берут за контракт больше чем если бы они на это место сохраняли транзакции в блоке.
|
|
|
|
aleks_raiden
|
|
October 31, 2017, 05:31:35 AM |
|
Вы еще учтите, что контракт при деплое надо выполнить, и иногда функция инита достаточно вычислимо трудоемкая, ведь она готовит весь контракт. Так что это стоит майнерам намного больше мощности, чем простая транзакция, отсюда и стоимость
|
|
|
|
Jaga-Jaga
|
|
October 31, 2017, 10:05:15 PM |
|
Вы еще учтите, что контракт при деплое надо выполнить, и иногда функция инита достаточно вычислимо трудоемкая
Вы имеете ввиду вызов конструктора? Да, конструктор вызывается при деплое, но в большинстве контрактов конструктор достаточно простой, где только сохраняется адрес владельца контракта, нечто вроде: owner = msg.sender.
|
|
|
|
|