Цепной код (или более известный термин «умный контракт») определяет набор бизнес-моделей, определений транзакций и логики, которые приложение (SDK) может использовать для создания транзакций.Для предложения, которое вы показываете выше, это не относится к определению кода цепи.Я полагаю, что это просто передает идею, что список редисок (в паре ключ и значение) уже определен в коде цепочки, поэтому, как только он будет создан (или вызывается функция initRadish, если она существует в коде цепочки),Список редисок станет частью мирового состояния в Главной книге.
Как регистр и цепной код связаны в Fabric?
ГК состоит из двух компонентов, а именно, состояния мира и блокчейна.Состояние мира хранит последние значения ключа, тогда как блокчейн хранит весь журнал транзакций, который ведет к состоянию мира.
Как я уже говорил выше, цепной код определяет логику транзакции в терминах функций, так что приложение может вызывать для создания транзакции, которая инициирует переход состояния или получение состояния.
Например, у вас есть функция с именем buyRadish(radishID, newOwner)
, определенная в коде цепи.Предположим, есть редиска с ключом R1001
со значением {"owner": FarmerA, "status": OnSale}
.Это пара ключ-значение перед любой транзакцией.Как только функция в коде цепи вызывается с аргументом radishID = R1001, newOwner = Ken
, создается транзакция, и состояние редьки с ключом R1001
станет {"owner": Ken, "status": Sold}
.Обратите внимание, что это последнее состояние редьки будет видно на мировом уровне.
В приведенном выше примере вы можете думать следующим образом: регистр хранит последние пары ключ-значение (или, если быть точным, последнее значение ключа).Цепной код может иметь несколько пар ключ-значение для целей инициализации;однако дело в том, что мы передаем новый набор пар ключ-значение (radishID = R1001, newOwner = Ken
) в качестве аргумента функции в коде цепочки, чтобы обновить значения того же ключа (radishID = R1001
) в состоянии мирабухгалтерская книга
Надеюсь, это поможет.