В моем контракте есть тип структуры:
struct Claim{
address healthcareProvider;
uint amount;
bool patientSig;
bool paid;
uint item;
}
И функция инициализации:
function MakeClaim(uint _amount, uint _item, uint num) {
Claim memory c;
c.healthcareProvider = tx.origin;
c.patientSig = false;
c.paid = false;
c.amount=_amount;
c.item=_item;
}
Когда я вызываю эту функцию для создания нового типа претензии, я вижу, что цена составляет 2,687 ETH (не газ). Это намного больше, чем стоимость развертывания всего контракта! Я тестирую его в тестовой сети Morden. Где моя проблема?
Поскольку в блокчейне хранилище данных является дефицитным ресурсом, оно довольно дорогое. Хранение данных — самая затратная операция в любом смарт-контракте.
sstore 100 Paid for a normal SSTORE operation (doubled or waived sometimes).
Вы можете увидеть весь список: https://www.cryptocompare.com/coins/guides/what-is-the-gas-in-ethereum/
Так что, если вы используете сложные конструкции, стоимость умножается.
Дэниел Патрик
КанекиДев
альпер
КанекиДев