Введение
Хотя существует общий контракт с несколькими подписями, который позволяет кворуму подписывающих лиц утверждать произвольные команды Майкельсона в блокчейне. Контракт ведет себя больше как пользователь, за произвольное действие которого голосуют, чем как охранник.
Что подразумевается под «арбитражным действием»? Этот универсальный контракт с несколькими подписями принимает произвольный код Майкельсона в качестве основного входа: подписавшие должны знать, что делает этот код, чтобы знать, за что они голосуют.
Мы используем другой подход: контракт с несколькими подписями специализируется на конкретном типе контракта, который вы хотите использовать с ним. То есть параметры контракта с несколькими подписями должны соответствовать параметрам контракта, которым он управляет.
Он будет выполнять только те действия, которые ожидает ваш контракт. Это предотвращает выполнение любых действий, которые не поддерживает базовый контракт.
Чтобы настроить специализированный контракт с несколькими подписями и взаимодействовать с ним:
- Используйте инструмент командной строки
lorentz-contract-mulitsig
для создания вашего контракта с функцией мультиподписи со специализированным типом целевого параметра - Отправьте подписанные байты транзакции с помощью
tezos-client
всем участвующим администраторам
Следуйте инструкциям в настройке клиента, чтобы настроить
tezos-client
и создать тестовый сетевой кошелек.Клонируйте репозиторий
lorentz-contract-multisig
и следуйте инструкциям в README, чтобы установить зависимости, необходимые для использования lorentz-contract-multisig
.Не забудьте настроить
ALICE_ADDRESS
и BOB_ADDRESS
в тестовой сети, как описано здесь; мы будем использовать эти переменные в этом руководстве.Мы хотим, чтобы наши публичные / приватные ключи работали с клиентом:
Вот удобный способ получить их, если
tezos-client
зарегистрировал / активировал вашу учетную запись:get_public_key(){ tezos-client show address $1 2>/dev/null | tail -n 1 | cut -d " " -f 3;}
get_secret_key(){ tezos-client show address $1 -S 2>/dev/null | tail -n 1 | cut -d ":" -f 3;}
$ get_public_key alice
edpkvCHgVArnZo9RTP4P6euLTyhE89u73CYjBgsP4wEJbj4quao9oR