Formulário de contato

Nome

E-mail *

Mensagem *

Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!
Imagem

Importação de Dados Bitcoin para SQLite com Validação


@CanalQb no YouTube


@CanalQb

Como Usar a Testnet Chainphon e se Preparar para o Lançamento Oficial


Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.



Importação de Dados Bitcoin para SQLite com Validação de Duplicatas

Ao trabalhar com grandes volumes de dados relacionados a endereços Bitcoin, é essencial garantir integridade e eficiência no armazenamento. Este artigo apresenta um script em Python que realiza a leitura de um arquivo .txt contendo dados binários, chaves WIF e endereços, e os importa para um banco de dados SQLite com restrições para evitar duplicações.

Objetivo do Script

O objetivo é importar dados do arquivo 19.txt para o banco de dados dados.db, garantindo que não haja duplicidade nas colunas wif e address. Essas colunas são únicas por definição no contexto de chaves privadas Bitcoin.

Etapas Realizadas

  1. Conexão com o banco SQLite (ou criação se não existir).
  2. Criação da tabela dados com campos: id, bin, wif e address.
  3. Leitura do arquivo 19.txt linha por linha.
  4. Inserção das informações no banco, ignorando duplicatas automaticamente via tratamento de exceção (sqlite3.IntegrityError).
  5. Contagem total de registros armazenados após a importação.

Estrutura Esperada do Arquivo 19.txt

O arquivo deve conter linhas no seguinte formato (separadas por ponto e vírgula):

1;1010101010101010101010;L1aW4aubDFB7yfras2S1mMEYciQCCJzib1bZgDpuG9bCTLCjFz7s;19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG

Cada linha deve conter exatamente 4 elementos:

  • ID (inteiro único)
  • Sequência binária (campo bin)
  • Chave WIF (formato Wallet Import Format)
  • Endereço Bitcoin (geralmente começando com "1" ou "3")

Código Python para Importação

import sqlite3

# Caminhos dos arquivos
caminho_txt = '19.txt'
caminho_db = 'dados.db'

# Conectar/criar o banco de dados
conn = sqlite3.connect(caminho_db)
cursor = conn.cursor()

# Criar a tabela com restrições de unicidade
cursor.execute('''
    CREATE TABLE IF NOT EXISTS dados (
        id INTEGER PRIMARY KEY,
        bin TEXT,
        wif TEXT UNIQUE,
        address TEXT UNIQUE
    )
''')

# Inserir os dados, ignorando duplicados
with open(caminho_txt, 'r', encoding='utf-8') as arquivo:
    for linha in arquivo:
        partes = linha.strip().split(';')
        if len(partes) == 4:
            try:
                cursor.execute('INSERT INTO dados (id, bin, wif, address) VALUES (?, ?, ?, ?)', partes)
            except sqlite3.IntegrityError:
                # Ignora linhas duplicadas com base nas restrições
                pass

# Salvar as alterações no banco de dados
conn.commit()

# Contar o número de linhas inseridas na tabela
cursor.execute('SELECT COUNT(*) FROM dados')
numero_de_linhas = cursor.fetchone()[0]

# Fechar a conexão com o banco de dados
conn.close()

# Exibir a quantidade de linhas inseridas
print(f"Importação concluída! Número total de linhas na tabela: {numero_de_linhas}")

Considerações Finais

Este script é bastante eficiente e pode ser adaptado para processar grandes volumes de dados gerados por ferramentas que testam ou analisam endereços Bitcoin. Ao utilizar SQLite, mantém-se a simplicidade e portabilidade dos dados.

Importante: Este artigo não representa recomendação de investimento. Sempre analise qualquer projeto ou tecnologia antes de investir tempo ou recursos financeiros. O uso de chaves privadas deve ser feito com responsabilidade e consciência dos riscos.

Link da Biblioteca SQLite

Mais informações sobre o SQLite podem ser encontradas no site oficial: https://sqlite.org

Comentários