Pull to refresh

Comments 11

Какой объем хранилища занимает маппинг надо смотреть в исходниках клиента, который вы используете geth или parity. Конкретно изучать trie деревья, кодирование в RLP и код записи и чтения базы данных.
UFO just landed and posted this here
Плюс, любой массив, не ограниченный сверху — это потенциальная дыра. Если количество элементов дорастет до некоторого большого значения, а внутри цикла будут потребляться вычислительные ресурсы, можно упереться в лимит по газу (больше определенного числа вычислений нельзя выполнить в транзакции). Запись значения в storage стоит десятки тысяч газа, hardlimit — вроде сейчас 8млн, так что особо много циклами не сделаешь. Только в вычислительных задачах, причем довольно простых. Поэтому смарт-контракт — это набор крайне легковесных функций
Виртуальная машина Solidity крайне неэффективна — на этом можно закончить. Вообще любой юзкейс отлично кодируется внутри кода блокчейна, смысла в виртуальной машине кодить что либо внутри своего приватном permissioned чейна ноль. Оверхед у ВМ адовый же.
Возможно, кто-нибудь из читателей сможет подсказать свой вариант.

Миллион дадите?
А что если использовать массив вот так:
contract TesterBoolArray {
  bool[2 ** (32 * 8)] StoragedArray;
 
  function Storing(bytes32 data) {
    uint256 i = uint256(data);
    if (!StoragedArray[i])
      StoragedArray[i] = true;
    }
  }
}

?
Странный тест — поведение маппингов и массивов подробно описано в доке. Зачем статью из этого делать — неясно

Ну, собственно тесты и предназначены для того, чтобы проверить соответствие того, что написано в доке тому, что получилось в жизни. Ведь оно не всегда совпадает...

А я вот никогда эти биткойны и блокчены не понимал.

В школе учили нас закону сохранения энергии — если где-то что-то прибывает, значит это где-то убывает. Если у меня появились 100 евро. значит они где-то пропали. Если я намыл золото в реке. значит его в ней стало меньше. А биткойны из воздуха майнятся? У кого они пропадают?

Не, думаю, Райффайзен и тут народ дурит…

image
Sign up to leave a comment.