Генерация Кошельков | 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-Канале