Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
ksantoprotein
6 лет назад

Генерируем себе ключи для 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)

03.jpg

Другими словами, если у вас есть логин и есть пароль, то не нужно куда-то лезть и смотреть свои публичные и приватные ключи - все генерируется локально.


Так понимаю многие бы хотели подключиться к Робин Худу и изменить ход его работы. Ну что же, давайте сгенерируем ключи и для него.

04.jpg

Смотрим на полученные публичные ключи и сравниваем с его текущими публичными ключами...
https://golosdb.com/@robingood/data

05.jpg

Эх... неее, не подходит, но не отчаиваемся... у вас еще http://www.wolframalpha.com/input/?i=2%5E256 вариантов для перебора, говорят же, что если каждый китаец попробует по паролю, то можно взломать даже Пентагон. А тут всего лишь на три порядка меньше, чем атомов во Вселенной.


Оставшиеся ликвидные токены от этого поста пойдут на финансирование заключительного урока по стихосложению от профессора.

0
326.131 GOLOS
На Golos с July 2017
Комментарии (7)
Сортировать по:
Сначала старые