Вы можете обнаружить, что оно сохраняется, если вы попробуете его, но оно будет сохранено только в памяти. Если цепной код перезапускается, или если перезапускает узел, то данные будут потеряны. Так что это не рекомендуемый подход.
Цепной код имеет доступ к различным хранилищам - состоянию мира (аналогично состоянию мира в Ethereum) и коллекциям личных данных. Данные, хранящиеся в состоянии мира, используются всеми участниками канала.
Вы можете перевести данные в состояние мира с помощью stub.PutState(key, value)
и получить данные из состояния мира с помощью stub.GetState(key)
. Ваша функция Init
должна хранить данные в состоянии мира, а затем ваша функция Invoke
может выводить данные из состояния мира при обработке любых транзакций.
Я рекомендую вам ознакомиться с примером FabCar если вы еще этого не сделали: https://github.com/hyperledger/fabric-samples/blob/release-1.4/chaincode/fabcar/go/fabcar.go
Транзакция initLedger
добавляет 10 автомобилей в мировое государство. Транзакция queryCar
считывает автомобиль из мирового государства. Существуют и другие транзакции для запроса всех автомобилей или обновления владельца автомобиля.