Один инструмент командной строки, который собирает, подписывает и отправляет любую транзакцию ZooBC: 50 команд, от простой send-zbc до мультиподписи, регистрации узлов, биржи, хранилища в блокчейне и управления. По умолчанию удобен для машин (JSON на входе, JSON на выходе), а для людей есть интерактивный режим.
01Загрузка
Скачайте сборку для Linux x86_64, распакуйте и запускайте. Без установки и без зависимостей.
⬇ Скачайте zoobc-cli (Linux x86_64)
# unpack and put it on your PATH tar xzf zoobc-cli-linux-x86_64.tar.gz sudo mv zoobc-cli /usr/local/bin/ # point it at any node or gateway (default: http://localhost:8080) # https://zoobc.network is the public TestNet gateway, not MainNet zoobc-cli list --api https://zoobc.network
Другие платформы появятся позже; пока доступна сборка для Ubuntu / Linux x86_64.
02Три способа запуска
По умолчанию: JSON на входе, JSON на выходе
Передавайте параметры позиционными аргументами и получайте результат в JSON. Этот режим используют другие приложения и скрипты. Первым параметром всегда идёт закрытый ключ отправителя.
zoobc-cli send-zbc <privkey> ZBC_4HFG43GR_… 100000000 --api $API → {"transaction_hash":"a5f1…","amount":100000000, …}
Интерактивный, --verbose
Запрашивает каждое поле по очереди, затем выводит понятный человеку результат. Удобно для разовых операций.
zoobc-cli issue-token --verbose --api $API Sender private key: … · Symbol: … · Name: … · Decimals: …
JSON через конвейер, --json-input
Читает параметры как JSON-объект из stdin; ключи в точности те, что выводит help <cmd>.
echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
| zoobc-cli send-zbc --json-input --api $API
03Что отправлять
Две встроенные команды расскажут всё, читать исходный код не нужно.
zoobc-cli list # every command, grouped by category zoobc-cli help multisig # the JSON fields for ONE command
help <cmd> выводит ключ каждого поля, признак обязательности, значение по умолчанию и готовый к правке пример JSON-объекта:
multisig, N-of-M multisig SendZBC (inner tx + participant signatures) (tx type 5)
sender_privkey (required) Sender private key (64 hex)
participants (required) comma-separated participant ZBC addresses
min_signatures (required) required signatures (N of M)
nonce (optional) multisig account nonce [default: 0]
signer_privkeys (required) participant keys that sign now
recipient (required) inner SendZBC recipient address
amount (required) inner SendZBC amount (atomic units)
inner_fee (optional) inner SendZBC fee (atomic) [default: 10000000]
Sample: {"sender_privkey":"…","participants":"…", …}
04Общие флаги и соглашения
| --api <url> | Эндпоинт узла или шлюза. По умолчанию http://localhost:8080. Для публичного TestNet укажите https://zoobc.network. Это действующая тестовая сеть, а не MainNet. |
| --fee <n> | Переопределяет комиссию за транзакцию (в атомарных единицах ZBC). Если не указан, используется значение по умолчанию или минимум с учётом размера. |
| --verbose | Интерактивные запросы + понятный человеку вывод (см. режим 2). |
| --json-input | Читает параметры как JSON-объект из stdin (режим 3). |
Все суммы и цены задаются атомарными целыми числами (ZBC ×1e8; суммы токенов ×10^decimals; цены ордеров ×1e8). Адрес можно указать полной строкой ZBC_… или в hex. При некорректном вводе инструмент никогда не падает, а возвращает JSON-объект ошибки (или текстовую ошибку в режиме --verbose).
05Разобранные примеры
# transfer a colored token zoobc-cli transfer-token $KEY ZBC_6FINNB6J_… <token_id> 500 --api $API # register a validator node (owner signs; node key supplies the pubkey; PoOwnership is built for you) zoobc-cli register-node $OWNER_KEY $NODE_KEY 100000000000 --api $API # open an N-of-M multisig and sign with your key (others co-sign later) zoobc-cli multisig $KEY "ZBC_A…,ZBC_B…,ZBC_C…" 2 0 "$KEY" ZBC_A… 100000000 5000000 --api $API # schedule a vesting/recurring payment: 1 ZBC per fire, 12 fires, monthly zoobc-cli scheduled-transfer $KEY ZBC_… 0 100000000 2592000 12 0 0 0 0 --api $API
06Все 50 команд
Точная побайтовая структура тела каждой транзакции приведена в Руководстве по транзакциям. Чтобы узнать поля команды, выполните zoobc-cli help <cmd>.
| send-zbc | Отправить ZBC на адрес |
| liquid-payment | Постепенная выплата ZBC во времени (вестинг) |
| liquid-payment-stop | Остановить ликвидный платёж (пропорциональный расчёт) |
| transfer-token | Перевести имеющийся цветной токен |
| issue-token | Выпустить токен цветной монеты |
| mint-token | Довыпустить токен с возможностью эмиссии |
| burn-token | Сжечь токен (с погашением обеспечения, если это предусмотрено) |
| finance-token | Пополнить финансирование существования токена |
| market-create | Открыть рынок с книгой ордеров (base,quote) |
| order-place | Разместить лимитный/рыночный ордер |
| order-cancel | Отменить ожидающий ордер |
| swap-create | Создать предложение атомарного обмена |
| swap-accept | Принять (исполнить) предложение обмена |
| swap-cancel | Отменить открытое предложение обмена |
| app-create | Создать приложение (на 2 игроков или соло против казино) |
| app-join | Присоединиться к открытому приложению |
| app-move | Отправить ход |
| app-resign | Сдаться в приложении |
| app-claim | Заявить требование по просроченному приложению |
| app-settle | Рассчитать приложение канала состояния (воспроизведение ваучеров) |
| store-file | Закрепить файл в децентрализованном хранилище (манифест + аренда) |
| add-prepaid-storage | Оплатить аренду хранилища для аккаунта |
| setup-dataset | Задать свойство→значение в наборе данных аккаунта |
| remove-dataset | Удалить свойство из набора данных аккаунта |
| delete-dataset | Удалить объект набора данных (с возвратом депозита) |
| set-dataset-policy | Задать политику управления объектом набора данных |
| transfer-dataset | Предложить передачу объекта набора данных |
| accept-dataset | Принять ожидающую передачу набора данных |
| multisig | SendZBC с мультиподписью N из M (внутренняя транзакция + подписи) |
| escrow-request | Создать запрос эскроу по инициативе получателя |
| approve-escrow | Одобрить / отклонить / завершить по сроку эскроу |
| scheduled-transfer | Вестинг / регулярные переводы по таймеру |
| cancel-schedule | Отменить ожидающий запланированный перевод |
| reassign-schedule | Перенаправить расписание новому получателю |
| create-trigger | Запланировать будущий SendZBC (keeper/оракул) |
| cancel-trigger | Отменить ожидающий триггер (с возвратом) |
| attest-event | Подтвердить внешнее событие (узел-оракул) |
| fee-vote-commit | Фаза фиксации голосования о шкале комиссий |
| fee-vote-reveal | Фаза раскрытия голосования о шкале комиссий |
| register-node | Зарегистрировать узел-валидатор (подписывает владелец; формирует ProofOfOwnership) |
| update-node | Обновить заблокированный баланс / регистрацию узла |
| remove-node | Исключить узел из набора валидаторов |
| claim-node | Вернуть ранее удалённую регистрацию |
| register-gateway | Зарегистрировать шлюз (ключ + домен + url, блокирует стейк) |
| unregister-gateway | Отозвать шлюз; вернуть стейк |
| gateway-heartbeat | Подтвердить работу шлюза: подписывается ключом самого ШЛЮЗА, но передать может любой отправитель |
| register-release | Опубликовать подписанный бинарный релиз |
| revoke-release | Отозвать опубликованный релиз |
| release-authority-propose | Предложить нового издателя релизов |
| release-authority-accept | Принять передачу полномочий издателя релизов |