Bitcoin Forum
November 13, 2024, 03:16:32 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Вопрос по смарт-контрактам  (Read 1060 times)
yaroslav195 (OP)
Full Member
***
Offline Offline

Activity: 448
Merit: 109


View Profile
October 11, 2017, 07:31:21 PM
 #1

Каким образом происходит ввод информации в смарт-контракт? (Только начал изучать их)
Вот как они работают - я понял, а вот как в них вводить информацию (например в mapping) - не понял, объясните, пожалуйста Huh
ferumflex
Full Member
***
Offline Offline

Activity: 256
Merit: 102


View Profile WWW
October 12, 2017, 12:53:04 PM
 #2

Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
yaroslav195 (OP)
Full Member
***
Offline Offline

Activity: 448
Merit: 109


View Profile
October 12, 2017, 02:39:45 PM
 #3

Вы вызываете функцию смартконтракта, и передаете туда параметры(данные). Смартконтракт их как то записывает в mapping или еще куда то.
Окей, а такой вопрос: Могу ли я вызывать из смарт-контракта только 1 фунцкию? (Если их там несколько)
aleks_raiden
Full Member
***
Offline Offline

Activity: 138
Merit: 101


View Profile
October 13, 2017, 08:54:58 AM
 #4

Да, вы вызиваете только ту функцию, что вам нужно
yaroslav195 (OP)
Full Member
***
Offline Offline

Activity: 448
Merit: 109


View Profile
October 13, 2017, 01:08:14 PM
 #5

Да, вы вызиваете только ту функцию, что вам нужно

ОКе,  спасибо за ответы!
Jaga-Jaga
Sr. Member
****
Offline Offline

Activity: 613
Merit: 256



View Profile
October 17, 2017, 09:08:24 PM
 #6

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

           ▀██▄ ▄██▀
            ▐█████▌
           ▄███▀███▄
         ▄████▄  ▀███▄
       ▄███▀ ▀██▄  ▀███▄
     ▄███▀  ▄█████▄  ▀███▄
   ▄███▀  ▄███▀ ▀███▄  ▀███▄
  ███▀  ▄████▌   ▐████▄  ▀███
 ███   ██▀  ██▄ ▄██  ▀██   ███
███   ███  ███   ███  ███   ███
███   ███   ███████   ███   ███
 ███   ███▄▄       ▄▄███   ███
  ███▄   ▀▀█████████▀▀   ▄███
   ▀████▄▄           ▄▄████▀
      ▀▀███████████████▀▀
DeepOnion
███
███
███
███
███
███
███
███
███
███
   Anonymity Guaranteed
   Anonymous and Untraceable
   Guard Your Privacy
      ▄▄██████████▄▄
    ▄███▀▀      ▀▀█▀   ▄▄
   ███▀              ▄███
  ███              ▄███▀   ▄▄
 ███▌  ▄▄▄▄      ▄███▀   ▄███
▐███  ██████   ▄███▀   ▄███▀
███▌ ███  ███▄███▀   ▄███▀
███▌ ███   ████▀   ▄███▀
███▌  ███   █▀   ▄███▀  ███
▐███   ███     ▄███▀   ███
 ███▌   ███  ▄███▀     ███
  ███    ██████▀      ███
   ███▄             ▄███
    ▀███▄▄       ▄▄███▀
      ▀▀███████████▀▀
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
October 18, 2017, 05:26:35 AM
 #7

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

не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет.
Jaga-Jaga
Sr. Member
****
Offline Offline

Activity: 613
Merit: 256



View Profile
October 24, 2017, 07:08:00 PM
 #8

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

не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет.
А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.

           ▀██▄ ▄██▀
            ▐█████▌
           ▄███▀███▄
         ▄████▄  ▀███▄
       ▄███▀ ▀██▄  ▀███▄
     ▄███▀  ▄█████▄  ▀███▄
   ▄███▀  ▄███▀ ▀███▄  ▀███▄
  ███▀  ▄████▌   ▐████▄  ▀███
 ███   ██▀  ██▄ ▄██  ▀██   ███
███   ███  ███   ███  ███   ███
███   ███   ███████   ███   ███
 ███   ███▄▄       ▄▄███   ███
  ███▄   ▀▀█████████▀▀   ▄███
   ▀████▄▄           ▄▄████▀
      ▀▀███████████████▀▀
DeepOnion
███
███
███
███
███
███
███
███
███
███
   Anonymity Guaranteed
   Anonymous and Untraceable
   Guard Your Privacy
      ▄▄██████████▄▄
    ▄███▀▀      ▀▀█▀   ▄▄
   ███▀              ▄███
  ███              ▄███▀   ▄▄
 ███▌  ▄▄▄▄      ▄███▀   ▄███
▐███  ██████   ▄███▀   ▄███▀
███▌ ███  ███▄███▀   ▄███▀
███▌ ███   ████▀   ▄███▀
███▌  ███   █▀   ▄███▀  ███
▐███   ███     ▄███▀   ███
 ███▌   ███  ▄███▀     ███
  ███    ██████▀      ███
   ███▄             ▄███
    ▀███▄▄       ▄▄███▀
      ▀▀███████████▀▀
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
October 25, 2017, 06:11:33 AM
 #9

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

не за все! если функция меняет состояние блокчейна, то да, нужно платить. Если просто считывает информацию (constant), то платить не нужно будет.
А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.
Функции чтения не синхронизируются и максимум можгут похоронить одну ноду, на которой запускались. Но, думаю, что защита от такого должна быть предусмотрена, просто не в курсе о ней. Может, при заливке смартконтракта в сеть все констант функции запускаются и evm будет ругаться превышением по газу размера блока. Может ещё что.
mushroomalert
Newbie
*
Offline Offline

Activity: 76
Merit: 0


View Profile
October 25, 2017, 11:14:16 AM
 #10

А как же борьба с бесконечными циклами? Если будет возможность бесплатно вызывать функции с бесконечными циклами то эфир можно будет очень быстро похоронить.

Вызова функции не происходит. Просто происходит чтение состояния контракта в блокчейне
Jaga-Jaga
Sr. Member
****
Offline Offline

Activity: 613
Merit: 256



View Profile
October 25, 2017, 07:34:32 PM
 #11

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

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

           ▀██▄ ▄██▀
            ▐█████▌
           ▄███▀███▄
         ▄████▄  ▀███▄
       ▄███▀ ▀██▄  ▀███▄
     ▄███▀  ▄█████▄  ▀███▄
   ▄███▀  ▄███▀ ▀███▄  ▀███▄
  ███▀  ▄████▌   ▐████▄  ▀███
 ███   ██▀  ██▄ ▄██  ▀██   ███
███   ███  ███   ███  ███   ███
███   ███   ███████   ███   ███
 ███   ███▄▄       ▄▄███   ███
  ███▄   ▀▀█████████▀▀   ▄███
   ▀████▄▄           ▄▄████▀
      ▀▀███████████████▀▀
DeepOnion
███
███
███
███
███
███
███
███
███
███
   Anonymity Guaranteed
   Anonymous and Untraceable
   Guard Your Privacy
      ▄▄██████████▄▄
    ▄███▀▀      ▀▀█▀   ▄▄
   ███▀              ▄███
  ███              ▄███▀   ▄▄
 ███▌  ▄▄▄▄      ▄███▀   ▄███
▐███  ██████   ▄███▀   ▄███▀
███▌ ███  ███▄███▀   ▄███▀
███▌ ███   ████▀   ▄███▀
███▌  ███   █▀   ▄███▀  ███
▐███   ███     ▄███▀   ███
 ███▌   ███  ▄███▀     ███
  ███    ██████▀      ███
   ███▄             ▄███
    ▀███▄▄       ▄▄███▀
      ▀▀███████████▀▀
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
October 26, 2017, 10:04:34 AM
 #12

не, вы не поняли. Такой контракт скорее всего просто не получится задеплоить в ноду из-за превышения по газу. Если же он задеплоен уже, то вызывайте функции чтения сколько хотите, они бесплатны. При деплое контрактов скорее всего gaz за функции чтения также учитывается. После деплоя, при вызове - нет.
Jaga-Jaga
Sr. Member
****
Offline Offline

Activity: 613
Merit: 256



View Profile
October 26, 2017, 07:05:20 PM
 #13

не, вы не поняли. Такой контракт скорее всего просто не получится задеплоить в ноду из-за превышения по газу. Если же он задеплоен уже, то вызывайте функции чтения сколько хотите, они бесплатны. При деплое контрактов скорее всего gaz за функции чтения также учитывается. После деплоя, при вызове - нет.
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.

           ▀██▄ ▄██▀
            ▐█████▌
           ▄███▀███▄
         ▄████▄  ▀███▄
       ▄███▀ ▀██▄  ▀███▄
     ▄███▀  ▄█████▄  ▀███▄
   ▄███▀  ▄███▀ ▀███▄  ▀███▄
  ███▀  ▄████▌   ▐████▄  ▀███
 ███   ██▀  ██▄ ▄██  ▀██   ███
███   ███  ███   ███  ███   ███
███   ███   ███████   ███   ███
 ███   ███▄▄       ▄▄███   ███
  ███▄   ▀▀█████████▀▀   ▄███
   ▀████▄▄           ▄▄████▀
      ▀▀███████████████▀▀
DeepOnion
███
███
███
███
███
███
███
███
███
███
   Anonymity Guaranteed
   Anonymous and Untraceable
   Guard Your Privacy
      ▄▄██████████▄▄
    ▄███▀▀      ▀▀█▀   ▄▄
   ███▀              ▄███
  ███              ▄███▀   ▄▄
 ███▌  ▄▄▄▄      ▄███▀   ▄███
▐███  ██████   ▄███▀   ▄███▀
███▌ ███  ███▄███▀   ▄███▀
███▌ ███   ████▀   ▄███▀
███▌  ███   █▀   ▄███▀  ███
▐███   ███     ▄███▀   ███
 ███▌   ███  ▄███▀     ███
  ███    ██████▀      ███
   ███▄             ▄███
    ▀███▄▄       ▄▄███▀
      ▀▀███████████▀▀
KAMANDOS
Member
**
Offline Offline

Activity: 110
Merit: 10


View Profile
October 27, 2017, 05:53:06 AM
 #14

ребят у меня на сайте МЕВ не отображаются токены я ввожу правильно адрес и колли-во запятых,но результата нет,что мне делатЬ? сумма большая
IrinaBTC
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
October 27, 2017, 05:54:54 AM
 #15

ребят у меня на сайте МЕВ не отображаются токены я ввожу правильно адрес и колли-во запятых,но результата нет,что мне делатЬ? сумма большая
2-3 дня подождите,у меня оторбразились
Mishman
Newbie
*
Offline Offline

Activity: 21
Merit: 0


View Profile
October 30, 2017, 12:04:33 PM
 #16

Quote
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.

Дороговизна здесь понятие скорее относительное, но видимо это некоторый простой механизм ограничения кол-ва деплоимых контрактов.
Jaga-Jaga
Sr. Member
****
Offline Offline

Activity: 613
Merit: 256



View Profile
October 30, 2017, 09:16:34 PM
 #17

Quote
Я считал что при деплое контракта берут столько газа сколько надо заплатить за байты которые будет занимать контракт, а при вызове контракта уже будут брать газ за каждую операцию. Кстати за деплой контракта много эфира берут, в эфире это около 0.2 ETH за контракт я ожидал что это гораздо дешевле обходится.

Дороговизна здесь понятие скорее относительное, но видимо это некоторый простой механизм ограничения кол-ва деплоимых контрактов.
Мне кажется что тут все гораздо проще - место в блоке стоит денег а майнерам без разницы транзакции на это место записывать или смарт контракт вот и получается такая дороговизна деплоя контракта в блокчейн, не думаю что майнеры берут за контракт больше чем если бы они на это место сохраняли транзакции в блоке.

           ▀██▄ ▄██▀
            ▐█████▌
           ▄███▀███▄
         ▄████▄  ▀███▄
       ▄███▀ ▀██▄  ▀███▄
     ▄███▀  ▄█████▄  ▀███▄
   ▄███▀  ▄███▀ ▀███▄  ▀███▄
  ███▀  ▄████▌   ▐████▄  ▀███
 ███   ██▀  ██▄ ▄██  ▀██   ███
███   ███  ███   ███  ███   ███
███   ███   ███████   ███   ███
 ███   ███▄▄       ▄▄███   ███
  ███▄   ▀▀█████████▀▀   ▄███
   ▀████▄▄           ▄▄████▀
      ▀▀███████████████▀▀
DeepOnion
███
███
███
███
███
███
███
███
███
███
   Anonymity Guaranteed
   Anonymous and Untraceable
   Guard Your Privacy
      ▄▄██████████▄▄
    ▄███▀▀      ▀▀█▀   ▄▄
   ███▀              ▄███
  ███              ▄███▀   ▄▄
 ███▌  ▄▄▄▄      ▄███▀   ▄███
▐███  ██████   ▄███▀   ▄███▀
███▌ ███  ███▄███▀   ▄███▀
███▌ ███   ████▀   ▄███▀
███▌  ███   █▀   ▄███▀  ███
▐███   ███     ▄███▀   ███
 ███▌   ███  ▄███▀     ███
  ███    ██████▀      ███
   ███▄             ▄███
    ▀███▄▄       ▄▄███▀
      ▀▀███████████▀▀
aleks_raiden
Full Member
***
Offline Offline

Activity: 138
Merit: 101


View Profile
October 31, 2017, 05:31:35 AM
 #18

Вы еще учтите, что контракт при деплое надо выполнить, и иногда функция инита достаточно вычислимо трудоемкая, ведь она готовит весь контракт. Так что это стоит майнерам намного больше мощности, чем простая транзакция, отсюда и стоимость
Jaga-Jaga
Sr. Member
****
Offline Offline

Activity: 613
Merit: 256



View Profile
October 31, 2017, 10:05:15 PM
 #19

Вы еще учтите, что контракт при деплое надо выполнить, и иногда функция инита достаточно вычислимо трудоемкая
Вы имеете ввиду вызов конструктора? Да, конструктор вызывается при деплое, но в большинстве контрактов конструктор достаточно простой, где только сохраняется адрес владельца контракта,  нечто вроде: owner = msg.sender.

           ▀██▄ ▄██▀
            ▐█████▌
           ▄███▀███▄
         ▄████▄  ▀███▄
       ▄███▀ ▀██▄  ▀███▄
     ▄███▀  ▄█████▄  ▀███▄
   ▄███▀  ▄███▀ ▀███▄  ▀███▄
  ███▀  ▄████▌   ▐████▄  ▀███
 ███   ██▀  ██▄ ▄██  ▀██   ███
███   ███  ███   ███  ███   ███
███   ███   ███████   ███   ███
 ███   ███▄▄       ▄▄███   ███
  ███▄   ▀▀█████████▀▀   ▄███
   ▀████▄▄           ▄▄████▀
      ▀▀███████████████▀▀
DeepOnion
███
███
███
███
███
███
███
███
███
███
   Anonymity Guaranteed
   Anonymous and Untraceable
   Guard Your Privacy
      ▄▄██████████▄▄
    ▄███▀▀      ▀▀█▀   ▄▄
   ███▀              ▄███
  ███              ▄███▀   ▄▄
 ███▌  ▄▄▄▄      ▄███▀   ▄███
▐███  ██████   ▄███▀   ▄███▀
███▌ ███  ███▄███▀   ▄███▀
███▌ ███   ████▀   ▄███▀
███▌  ███   █▀   ▄███▀  ███
▐███   ███     ▄███▀   ███
 ███▌   ███  ▄███▀     ███
  ███    ██████▀      ███
   ███▄             ▄███
    ▀███▄▄       ▄▄███▀
      ▀▀███████████▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!