Author

Topic: GAZ за функционал в эфире (Read 316 times)

full member
Activity: 313
Merit: 103
October 02, 2017, 10:45:55 AM
#7
если функция "порождает транзакцию", то плата берется за ВСЕ вызовы по ВСЕМ цепочкам


Тогда, хорошо что спросил. Спасибо.
jr. member
Activity: 34
Merit: 3
October 02, 2017, 06:49:39 AM
#6
если функция "порождает транзакцию", то плата берется за ВСЕ вызовы по ВСЕМ цепочкам
full member
Activity: 313
Merit: 103
October 02, 2017, 06:07:38 AM
#5
тогда должно быть так, что мы читаем из одного СК, этот СК читает из второго СК и мы ничего не платим.

Или чуть сложнее. Мы вызываем в СК1 функцию, которая порождает транзакцию (что-то меняет), но при этом читает предварительно настройку из СК2. Так вот, за бесплатное чтение настройки из СК2 мы будем платить или нет - транзакция же будет при вызове СК1. Т.е. будет ли нам такой вызов функции СК1 дороже, чем если бы мы не обращались за чтением параметра из СК1 в СК2, а читали бы такой же (синхронизированный ранее) параметр из СК1?
jr. member
Activity: 34
Merit: 3
October 02, 2017, 05:23:08 AM
#4
все операции с блокчейном делятся на 1 типа

1. просто читаем информацию (функции const), в этом случае мы нагружаем только свою ноду и ни за что не платим

2. мы проводим транзакцию, в это случае мы нагружаем все ноды в сети, включая майнеров и просто юзеров, и платим за все, в том числе и за функции const
full member
Activity: 313
Merit: 103
October 02, 2017, 02:16:54 AM
#3
Что-то я запутался. Так а чтение из блокчейна EVM не должно быть бесплатным? Если мы добавим constant вот сюда:
StorageContract -> function getVar() public returns (uint256 a)
и вот сюда:
ClientContract -> function getVar() public returns (uint256 a)

не получится избежать платы за обращение к контрату хранилища?
member
Activity: 108
Merit: 250
October 01, 2017, 01:05:06 PM
#2
Плата взимается. Вот пример двух контрактов https://gist.github.com/anonymous/32321c46134c8edc6e8f4bc0bd63f760
В первом чтение из своей переменной (373 gas), во втором из переменной первого контракта (2362 gas)

full member
Activity: 313
Merit: 103
October 01, 2017, 06:02:06 AM
#1
Есть 2 смарт контракта (далее СК), в одном есть параметр, во втором значение этого параметра часто используется. Как лучше в плане стоимости выполнения:
 1) постоянно обращаться к первому контракту за чтением значения через функцию get в СК1
 2) завести копию параметра во втором СК и организовать синхронизацию.
 Если плата за чтение параметра не из своего контракта не взимается, то хотелось бы оставить пункт 1) чтобы не усложнять СК2 (таких параметров много). Если взимается - то 1) неприемлемо.
Jump to: