Смарт-контракт «Оракул»Смарт-контракт «Оракул» выполняет следующие функции: авторизация запросов от сервиса «Оракул»; приём структур данных (в виде справочников 1с: Валюты, Банки, Курсы) передаваемых от сервиса "Оракул"; проверка целостности данных передаваемых сервисом "Оракул"; проверка обновления данных полученных от сервиса "Оракул" и уже хранящихся в блокчейне. В случае наличия обновлений, сохранять обновления в блокчейне. В случае отсутствия обновлений ничего не делать. Методы смарт-контракта «Оракул»: AddBanks(ctx contractapi.TransactionContextInterface, banks []*Bank) error — добавление банков в блокчейн. GetOrgBanks(ctx contractapi.TransactionContextInterface, orgMSP string) ([]*Bank, error) — получения списка банков, добавленных организацией orgMSP. AddCurrencies(ctx contractapi.TransactionContextInterface, currencies []*Currency) error – добавление валюты в блокчейн. GetOrgCurrencies(ctx contractapi.TransactionContextInterface, orgMSP string) ([]*Currency, error) — получение списка валют, добавленных организацией. AddCourses(ctx contractapi.TransactionContextInterface, courses []*Course) error — добавление курсов валют. GetCurrencyCoursesByDate(ctx contractapi.TransactionContextInterface, orgMSP, currencyCode, date string) ([]*Course, error) — получение курсов валют за определенную дату. При использовании методов для работы с блокчейн параметр contractapi.TransactionContextInterface передавать не нужно! Предпочтительный формат времени - 2006-01-02T15:04:05 Структуры получаемых данных:
Сборка и тестированиеВАЖНО! Для того чтобы использовать инструкции ниже необходимо склонировать репозиторию https://github.com/hyperledger/fabric-samples с исходниками и инструментами hyperledger. СборкаСначала требуется установить переменную окружения FABRIC_CFG_PATH. Она указывает на конфигурационные файлы гиперледжера которые находятся по пути <path to fabric-samples sources>/config далее требуется запустить команду ./scripts/build.sh из корневой папки проекта ТестированиеЗапустить команду В блоке chaincodeEnvs файла run_tests.sh следует переопределить значения переменных CHAINCODE_NAME и CHAINCODE_PATH если они отличаются от установленных ВАЖНО! советуется скопировать файл run_tests.sh в папку fabric-samples/test-network |