[ликбез] Опять про BitShares, про мультиподписи и про то как делать не надо
Опустим сразу вопросы зачем и почему, примем за данность, задач, где могут потребоваться коллективное управление аккаунтом - много, а особенно тогда, когда комиссия за их обслуживание понижена в ~13 раз (раньше, за каждую сделку нужно было платить больше 1 bts), может в другой раз что напишу.
Очень неплохо, в качестве примера, было показано в этой статье, нет нужды дублировать все сказанное в ней, но добавить одну очень важную особенность нужно - а именно:
текущий аккаунт, который собственно является держателем средств, рекомендуется лишать голоса и вообще удалить его приватные ключи.
Причина очень простая - bitshares-ui мешает в одну кучу в качестве идентификатора аккаунта собственно идентификатор и публичный ключ (для аккаунта владельца), после чего он же сам не сможет подписать транзакцию, не найдя в списке имеющих доступ на аккаунт нужного идентификатора, выдавая ошибку:
Failed to broadcast the transaction:
3030001 tx_missing_active_auth: missing required active authority
Примерно на эту удочку попался и я, так как мне нужен был только один контролер, я добавил к аккаунту его и указал суммарный вес 2, к сожалению установив эти значения на обоих закладках настройки прав доступа - Active и Owner (последние определяют права внесения изменений в настройки прав), заблокировав аккаунт на использование, как я уже позже понял, только из bitshares-ui. В сочетании с глюком работы с несколькими аккаунтами (bitshares ui может по разным причинам неожиданно сделать текущим аккаунт любой другой, например только что удаленный из настроек - это следствие смешения интерфейса эксплорера и собственно аккаунта, из-за этого у людей много неожиданностей возникает) я перевел на этот аккаунт bitcoin, и было очень весело это осознавать, что эти деньги могли могли стать для меня потерянными.
Если вдруг вы окажетесь в похожей ситуации, не беда, если у вас все необходимые приватные ключи сохранились, доступ вы не потеряли - это просто недоработка bitshares-ui (мой тикет был закрыт - типа проблемы нет, вы просто неправильно держите ваш iphone), достаточно написать примитивное приложение по переводу средств на python-bitshares и совершить перевод без особых проблем:
from bitshares.instance import set_shared_bitshares_instance
from bitshares import BitShares
# тут указать список приватных ключей (кликнуть на ключ на закладке Active)
bs=BitShares(keys=['5KZy...','5JZ8N...'])
set_shared_bitshares_instance(bs)
print(bs.transer(
to='имя_аккаунта_куда_перевести',
amount='количество',
aset='имя_токена_большими_буквами',
account='имя_аккаунта_откуда_перевести'))
Огромное спасибо @avral за консультацию.