Ultimas do CanalQb

Python - Incluindo banco de dados de WIF em uma wallet.dat - Bitcoin Core 0.21

@CanalQb


Python - Incluindo banco de dados de WIF em uma wallet.dat



CanalQb



Sempre crie uma frase de segurança única para jogos, Airdrops e qualquer outra coisa de origem desconhecida, em vez de usar sua carteira principal.



Como Configurar e Usar Bitcoin Core no Windows


Este tutorial mostra o passo a passo para configurar e usar o Bitcoin Core 0.21.0 em uma máquina Windows. Ao final, você terá sua carteira configurada e pronta para interagir com a rede Bitcoin.

Passo 1: Instalação do Bitcoin Core

Baixe a versão bitcoin-0.21.0-win64-setup-unsigned.exe diretamente do site oficial:

Siga o assistente de instalação e instale o Bitcoin Core no seu computador. O caminho padrão de instalação será algo como:
D:\Program Files\Bitcoin

Insira no PATH exatamente o caminho de instalação do Bitcoin Care\daemon




Passo 2: Configuração do Arquivo bitcoin.conf

Após a instalação, você precisará criar o arquivo de configuração bitcoin.conf. Este arquivo define várias configurações da sua instância Bitcoin Core.

Crie o arquivo bitcoin.conf na pasta de dados, que pode ser em D:\Bitcoin ou em outro diretório de sua preferência. Lembre-se de ajustar o caminho para onde você deseja armazenar seus dados.

O conteúdo básico do arquivo bitcoin.conf deve ser o seguinte (lembre-se de substituir seuusuario e suasenha com credenciais de sua escolha):
 
server=1
rpcuser=seuusuario
rpcpassword=suasenha
rpcallowip=127.0.0.1
rpcport=8332
datadir=D:\Bitcoin

server=1: Habilita o servidor RPC.
rpcuser e rpcpassword: Credenciais para acesso RPC.
rpcallowip=127.0.0.1: Permite conexões apenas da máquina local.
rpcport=8332: Porta padrão para RPC.
datadir=D:\Bitcoin: Caminho para o diretório de dados (ajuste conforme necessário).

Passo 3: Sincronização da Blockchain

Abra o Prompt de Comando (CMD) no Windows e execute o seguinte comando para iniciar a sincronização da blockchain. Isso pode levar um tempo considerável dependendo da velocidade da sua conexão e do seu hardware:

bitcoind.exe -datadir="D:\Bitcoin" -rpcuser=seuusuario -rpcpassword=suasenha -reindex

O Bitcoin Core começará a reindexar a blockchain e você verá o progresso no CMD. Espere até que a sincronização atinja 100%.

Passo 4: Criação de Uma Nova Carteira

Abra um novo Prompt de Comando (CMD) para não interromper o processo de sincronização que está em execução no primeiro.

Para criar uma nova carteira no Bitcoin Core, execute o seguinte comando:

bitcoin-cli.exe -datadir="D:\Bitcoin" -rpcuser=seuusuario -rpcpassword=suasenha createwallet "Wallet"

O comando cria uma nova carteira chamada "Wallet". Você pode nomeá-la como quiser.

Passo 5: Iniciar o Daemon do Bitcoin Core

Em seguida, no CMD (pode ser o mesmo ou um novo), execute o daemon do Bitcoin Core para mantê-lo funcionando e permitindo interações RPC:
 
bitcoind.exe -datadir="D:\Bitcoin" -rpcuser=seuusuario -rpcpassword=suasenha

Agora o Bitcoin Core está rodando e você pode interagir com a rede.

Passo 6: Importando uma Chave Privada (WIF)

Para importar uma chave privada para a sua carteira, execute o comando a seguir em um novo Prompt de Comando (CMD):
 
bitcoin-cli.exe -datadir="D:\Bitcoin" -rpcuser=seuusuario -rpcpassword=suasenha -rpcwallet=wallet importprivkey "KxsYggu53EcEqrXqTb5AgJDv4Mne3jWN4SQEZs9DApeSrB7EkzaZ" "Wallet" false

importprivkey: Comando para importar a chave privada no formato WIF (Wallet Import Format).
"KxsYggu53EcEqrXqTb5AgJDv4Mne3jWN4SQEZs9DApeSrB7EkzaZ": Substitua pela sua chave privada.

"Wallet": Nome da carteira que você criou anteriormente.

 

Script Python


import sqlite3
import subprocess
import time
import os

# Caminho para o banco de dados SQLite
DB_PATH = "controle1.db"

# Função para executar comandos no terminal (cmd) com subprocess.Popen
def executar_comando_em_terminal(comando, manter_aberto=False):
    """
    Executa o comando passado em um terminal CMD.
    Se manter_aberto for True, o terminal permanecerá aberto após a execução.
    Caso contrário, o terminal será fechado.
    """
    # Se manter_aberto for True, usa "cmd /k", caso contrário, "cmd /c"
    comando_terminal = 'cmd /k' if manter_aberto else 'cmd /c'
    
    # Criar o comando completo para executar no terminal
    comando_completo = f'{comando_terminal} start "" {comando}' if manter_aberto else comando
    
    # Executar o comando em uma nova janela de terminal se for o caso
    subprocess.Popen(comando_completo, creationflags=subprocess.CREATE_NEW_CONSOLE, shell=True)
    print(f"Comando executado: {comando_completo}")

# Função para executar o comando bitcoind.exe com reindexação
def iniciar_bitcoind():
    comando_bitcoind = [
        'bitcoind.exe', 
        '-datadir=D:\\Bitcoin', 
        '-rpcuser=seuusuario', 
        '-rpcpassword=suasenha', 
        '-reindex'
    ]
    print("Iniciando bitcoind com reindexação...")
    # Executa o comando e mantém o terminal aberto
    executar_comando_em_terminal(" ".join(comando_bitcoind), manter_aberto=True)

# Função para importar as chaves privadas (WIFs) no wallet
def importar_chaves_privadas():
    try:
        with sqlite3.connect(DB_PATH) as conn:
            cursor = conn.cursor()

            # Executar consulta SQL para recuperar todos os WIFs
            cursor.execute("SELECT wif FROM mnemonics")

            # Recuperar todos os resultados da consulta
            wifs = cursor.fetchall()

            # Verificar e processar WIFs
            if wifs:
                for wif in wifs:
                    #time.sleep(1)  # Atraso de 1 segundo entre as importações de chaves
                    chave_privada = wif[0]  # O WIF é o primeiro (e único) elemento da tupla
                    comando_bitcoin_cli = [
                        'bitcoin-cli.exe', 
                        '-datadir=D:\\Bitcoin', 
                        '-rpcuser=seuusuario', 
                        '-rpcpassword=suasenha', 
                        '-rpcwallet=Wallet', 
                        'importprivkey', 
                        chave_privada, 
                        'Wallet', 
                        'false'
                    ]
                    # Executar o comando de importação da chave privada no mesmo terminal
                    executar_comando_em_terminal(" ".join(comando_bitcoin_cli), manter_aberto=False)
                    print(f"Chave privada importada com sucesso! WIF: {chave_privada}")
            else:
                print("Nenhum WIF encontrado.")
    except sqlite3.Error as e:
        print(f"Erro ao acessar o banco de dados: {e}")

# Função principal que orquestra todo o processo
def main():
    # Inicia o bitcoind.exe com a opção de reindexação
    iniciar_bitcoind()

    # Aguardar 4 segundos antes de iniciar a importação das chaves
    print("Aguardando 4 segundos antes de importar as chaves privadas...")
    time.sleep(4)

    # Importar as chaves privadas
    importar_chaves_privadas()

if __name__ == "__main__":
    main()


Nenhum comentário

Comente só assim vamos crescer juntos!

Observação: somente um membro deste blog pode postar um comentário.