При разработке во время выполнения итерация списка, вообще говоря, является злом.
Если явно не защищено, это добавит неограниченную сложность O (N) к операции, которая будет взимать только O (1) сборов.В результате ваша цепочка становится уязвимой.
Кроме того, если списки становятся такими большими, и вы выполняете итерации по всем элементам, процесс может занять больше времени, чем время блока, и, таким образом, узел никогда не произведет блок.
Вы найдете ограниченные циклы в определенных модулях времени выполнения, но вам нужно помнить о сложности времени / вычислений этих циклов.
Вы можете легко "смоделировать" перечислимый список с двумяпредметы хранения:
decl_storage! {
trait Store for Module<T: Trait> as Example {
AllPeopleArray get(person): map u32 => T::AccountId;
AllPeopleCount get(num_of_people): u32;
}
}
Но я считаю, что цель состоит в том, чтобы вам было немного сложнее делать плохие вещи в ваших модулях.