Генерация Кошельков | Python
Кратко разбираем как создавать новые Ethereum кошельки с помощью python скриптов
План:
1. Подготовка окружения
Покажи мне свое окружение и я покажу тебе твое будущее
1. Среда Разработки
Я выбираю JetBrains Продукты, пишу в PyCharm (Professional Версия), для старта спокойно подойдет ее беспатный вариант Community Edition
jetbrains.com/pycharm/download
Основые Отличия - Поддержка веб-разработки, баз даных, удаленных сред (Docker, Ssh) и тестирования
Также отлично подойдет VS Code - code.visualstudio.com/
2. Установка компонентов
Установка Python - python.org/downloads
(устанавливаем последнюю версию)
проверяем установку в терминале
python3 --version
pip3 --version
если не работает, проверяем без 3
если pip не установлен - добавляем его самостоятельно
bootstrap.pypa.io/get-pip.py
Устанавливаем в любую папку доступную из командной строки - Downloads например
3. Создание проекта
PyCharm - New Project - Указываем Путь к Папке Проекта
Далее создаем файл любое_название.py
открываем терминал Alt + f12 / cmd + option + t переходим в папку нашего проекта pip install web3 или pip3 install web3
Также для нашего скрипта нам понадобится еще одна библиотека - eth_account
pip install eth-account
2. Код
from web3 import Web3 from eth_account import Account infuraURL = "https://mainnet.infura.io/v3/InfuraКлюч" web3 = Web3(Web3.HTTPProvider(infuraURL)) if web3.is_connected: print("Connected to the Ethereum network ✅ ") print("Current block number:", web3.eth.block_number)ž Account.enable_unaudited_hdwallet_features() # let's create a wallet account, mnemonic_phrase = Account.create_with_mnemonic() address = account.address private_key = account.key.hex() print(f"NEW WALLET CREATED ☑") print(f"Address: {address}") print(f"Private key: {private_key}") print(f"Mnemonic phrase: {mnemonic_phrase}") else: print("Failed to connect to the Ethereum network ❌ ")
3. Анализ
Процесс Выполнения Скрипта:
- Подключение web3py библиотеки
- Подключение eth_account библиотеки и импорт класса Account для управления аккаунтами
- Получение и подключение к Ethereum Ноде через API Infura
- Включает функции для работы с HD (Hierarchical Deterministic) кошельками, которые используют мнемонические фразы для генерации адресов и ключей. (Account.enable_unaudited_hdwallet_features())
- Создаем новый Ethereum-аккаунт и возвращаем кортеж, содержащий объект аккаунта и сид-фразу, используемую для его создания. - account, mnemonic_phrase = Account.create_with_mnemonic()
- Возвращаем адрес Ethereum-аккаунта в виде строки (address = account.address)
- Возвращаем закрытый ключ аккаунта в виде байтов (private_key = account.key.hex())
- Финал - вывод address, private_key & mnemonic_phrase в консоль
p.s - https://eth-account.readthedocs.io/en/stable/eth_account.html
метод create_with_mnemonic()
является экспериментальным и не прошёл аудита
используем его с осторожностью и только в целях разработки или тестирования
Для создания кошелька библиотека web3.py не обязательна.
Мы можем использовать только библиотеку eth_account.
Однако, если необходимо взаимодействовать с сетью Ethereum (проверять баланс или отправлять транзакции), тут web3.py необходим
Все обновления по блокчейн-разработке в моем Telegram-Канале