У вас две проблемы. Один довольно мягкий, другой более серьезный:
- Все типы данных, которые должны храниться в цепочке, должны иметь две границы:
Encode
и Decode
из [parity-scale-codec
]. Включите это в свой ящик (с функцией «получить») и просто:
#[derive(Encode, Decode)]
pub struct Post<A> {
id:u8,
content:String,
tipAmount:u8,
author:A,
}
Для примера посмотрите на любой другой поддон в Библиотеке кадров четности . Обратите внимание, что чаще всего (если только ваше значение не равно Option
), ваш тип также должен предоставлять Default
, который вы можете снова получить.
Вы не можете и, вероятно, не хотите хранить строку в цепочке. Чаще всего это (распространенная и справедливая) ошибка, которую совершают люди, только начинающие изучать блокчейны. Блокчейн не должен действовать как хранилище данных для хранения потенциально длинных, динамически размещаемых строк.
В цепочке должны храниться только согласованные критически важные данные. Как я понял из вашей структуры, вы, похоже, держите в блоге некоторые посты. Это абсолютно не нужно. Вы можете просто сохранить ха sh содержимого в цепочке (с другими небольшими метаданными, если хотите) и сохранить фактическое содержимое публикации в другом месте, например, в IPFS. Ха sh достаточно для того, чтобы каждый мог понять, что содержание действительно правильное.