Команда configtxlator¶
Команда configtxlator
позволяет пользователям конвертировать структуры данных Fabric из формата protobuf в JSON и обратно,
а также создавать обновления конфигурации. Команда может либо запускаться как REST-сервер для предоставления своих функций
через HTTP, либо может использоваться непосредственно как инструмента командной строки.
Синтаксис¶
Команда configtxlator
включает следующие пять подкоманд:
- start
- proto_encode
- proto_decode
- compute_update
- version
Команда configtxlator start¶
usage: configtxlator start [<flags>]
Start the configtxlator REST server
Flags:
--help Show context-sensitive help (also try --help-long and
--help-man).
--hostname="0.0.0.0" The hostname or IP on which the REST server will listen
--port=7059 The port on which the REST server will listen
--CORS=CORS ... Allowable CORS domains, e.g. '*' or 'www.example.com'
(may be repeated).
Команда configtxlator proto_encode¶
usage: configtxlator proto_encode --type=TYPE [<flags>]
Converts a JSON document to protobuf.
Flags:
--help Show context-sensitive help (also try --help-long and
--help-man).
--type=TYPE The type of protobuf structure to encode to. For
example, 'common.Config'.
--input=/dev/stdin A file containing the JSON document.
--output=/dev/stdout A file to write the output to.
Команда configtxlator proto_decode¶
usage: configtxlator proto_decode --type=TYPE [<flags>]
Converts a proto message to JSON.
Flags:
--help Show context-sensitive help (also try --help-long and
--help-man).
--type=TYPE The type of protobuf structure to decode from. For
example, 'common.Config'.
--input=/dev/stdin A file containing the proto message.
--output=/dev/stdout A file to write the JSON document to.
Команда configtxlator compute_update¶
usage: configtxlator compute_update --channel_id=CHANNEL_ID [<flags>]
Takes two marshaled common.Config messages and computes the config update which
transitions between the two.
Flags:
--help Show context-sensitive help (also try --help-long and
--help-man).
--original=ORIGINAL The original config message.
--updated=UPDATED The updated config message.
--channel_id=CHANNEL_ID The name of the channel for this update.
--output=/dev/stdout A file to write the JSON document to.
Команда configtxlator version¶
usage: configtxlator version
Show version information
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
Примеры использования¶
Декодирование¶
Декодирование блока, хранящегося в файле fabric_block.pb
, в формат JSON и его вывод в stdout.
configtxlator proto_decode --input fabric_block.pb --type common.Block
Также, после запуска REST-сервера, можно воспользоваться следующей командой curl для выполнения этой же операции через REST API.
curl -X POST --data-binary @fabric_block.pb "${CONFIGTXLATOR_URL}/protolator/decode/common.Block"
Кодирование¶
Преобразование политики, полученной в формате JSON из stdin, в файл с названием policy.pb
.
configtxlator proto_encode --type common.Policy --output policy.pb
Также, после запуска REST-сервера, можно воспользоваться следующей командой curl для выполнения этой же операции через REST API.
curl -X POST --data-binary /dev/stdin "${CONFIGTXLATOR_URL}/protolator/encode/common.Policy" > policy.pb
Использование в процессе разработки¶
Вычисление разницы между файлами с конфигурацией канала original_config.pb
и modified_config.pb
, декодирование ее в формат JSON и вывод в stdout.
configtxlator compute_update --channel_id testchan --original original_config.pb --updated modified_config.pb | configtxlator proto_decode --type common.ConfigUpdate
Также, после запуска REST-сервера, можно воспользоваться следующей командой curl для выполнения этой же операции через REST API.
curl -X POST -F channel=testchan -F "original=@original_config.pb" -F "updated=@modified_config.pb" "${CONFIGTXLATOR_URL}/configtxlator/compute/update-from-configs" | curl -X POST --data-binary /dev/stdin "${CONFIGTXLATOR_URL}/protolator/decode/common.ConfigUpdate"
Дополнительная информация¶
Название инструмента строится из двух слов — configtx и translator, и это означает, что инструмент предназначен для преобразования данных в различные представления. Инструмент не генерирует конфигурацию. Он не отправляет и не получает конфигурацию. Также он не изменяет саму конфигурацию, а просто предоставляет некоторые взаимно-однозначные операции для различных представлений формата configtx.
REST-сервер не предусматривает ни конфигурационного файла configtxlator
, ни каких-либо средств аутентификации и
авторизации. Инструмент configtxlator
не имеет доступа к данным, криптографическим ключам или другой конфиденциальной
информации, поэтому не создает риска незащищенности данных для владельца сервера перед другими клиентами. Однако,
поскольку данные, отправляемые пользователем на сервер REST, могут быть конфиденциальными, пользователь должен доверять
администратору сервера, либо использовать сервер локально или работать через интерфейс командной строки.