Генерируем себе ключи для GOLOS или очередной баг в golos-python
Скоро 4 апреля, ХФ17 и питоновские ботоводы испытывают на себе определенное разочарование, так как скрипты, которые были написаны с неким творчеством перестают работать, а при переписывании кода начинают появляться баги при тестировании официальной библиотеки golos-python.
Итак, я испытываю желание при наличии логина и придуманного пароля самостоятельно сгенерировать как приватные так и публичные ключи. Для этого даже не надо подключаться к нодам. К примеру кто-то решит идентифицировать свою личность и подписаться приватным постинг ключом, а как мне проверить, что сочетание логин+WIF действительно принадлежит перцу.
Для этого в пистоне нужно было подключить библиотеку так:
from pistonbase.account import PasswordKey
В официальной же версии если использовать такой вызов, то будет ошибка circular dependency
from steembase.account import PasswordKey
Тыкать в место уже не хочется, поэтому решил поступить проще и скопировал папки graphene с пистона в голос-питон. И тогда переправил вызов модуля на
from graphenebase.account import PasswordKey
а далее пишем такую функцию
def get_keys(account, password, prefix = "GLS",
roles = ["posting", "active", "memo", "owner"]):
keys = {}
for role in roles:
new_key = PasswordKey(account, password, role = role, prefix = prefix)
private_key = new_key.get_private()
public_key = private_key.pubkey
keys[role] = {"private": str(private_key), "public": str(public_key)}
return(keys)
Имея логин, имея придуманный пароль и перебирая роль самого ключа... постинг ключ (который чтобы апать и постить), активный ключ (чтобы снимать токены) и прочее можно заполучить список необходимого в словаре, чтобы потом разбираться по мере необходимости работы скрипта.
Итак, тестируем... воспользуюсь своим логином и очень сложным паролем - 12345
from pprint import pprint
account, password = "ksantoprotein", "12345"
print('account', account)
print('password', password)
keys = get_keys(account, password)
pprint(keys)
Другими словами, если у вас есть логин и есть пароль, то не нужно куда-то лезть и смотреть свои публичные и приватные ключи - все генерируется локально.
Так понимаю многие бы хотели подключиться к Робин Худу и изменить ход его работы. Ну что же, давайте сгенерируем ключи и для него.
Смотрим на полученные публичные ключи и сравниваем с его текущими публичными ключами...
https://golosdb.com/@robingood/data
Эх... неее, не подходит, но не отчаиваемся... у вас еще http://www.wolframalpha.com/input/?i=2%5E256 вариантов для перебора, говорят же, что если каждый китаец попробует по паролю, то можно взломать даже Пентагон. А тут всего лишь на три порядка меньше, чем атомов во Вселенной.
Оставшиеся ликвидные токены от этого поста пойдут на финансирование заключительного урока по стихосложению от профессора.