Noções básicas BRLN Bolt
Torne-se eficiente ao navegar pelo seu node lightning
O BRLN Bolt é uma plataforma projetada especialmente para o público brasileiro, oferecendo uma infraestrutura completa para operar um node na rede Lightning. Este node permite que os usuários aproveitem ao máximo a segunda camada do Bitcoin, a Lightning Network, com uma interface amigável e robusta. No coração do BRLN Bolt, você encontra alguns programas essenciais para seu funcionamento:
O Bitcoin Core é o coração do Bitcoin, onde todas as transações on-chain (na primeira camada) são validadas, verificadas e transmitidas para a rede. Ele é a base de qualquer node Bitcoin e garante que o BRLN Bolt mantenha uma cópia atualizada do blockchain, sendo responsável pela segurança e descentralização da rede.
O Lightning Daemon (LND) é o cérebro do seu node Lightning. Ele gerencia canais de pagamento, o balanceamento de fundos e toda a interação com a Lightning Network. Com o LND, você pode enviar, receber e rotear pagamentos pela rede Lightning, tornando seu node um ponto de apoio para transações rápidas e de baixo custo.
O Balance of Satoshis (BOS) é uma ferramenta avançada de monitoramento e gestão do seu node Lightning. O BOS não só monitora seus canais e saldo, mas também oferece funcionalidades para rebalancear canais e otimizar o funcionamento do node, garantindo uma operação eficiente.
O Thunderhub é um painel gráfico que facilita o gerenciamento do seu node Lightning. Com o Thunderhub, você pode abrir e fechar canais, verificar transações e configurar seu node de forma visual e intuitiva, sem a necessidade de comandos no terminal.
Comandos Básicos no Linux para Gerenciar o BRLN Bolt
Agora que você conhece os principais programas instalados no BRLN Bolt, é importante aprender os comandos básicos para navegar e gerenciar o sistema.
O comando cd (change directory) é usado para mudar de diretório no sistema. Por exemplo, para acessar os diretórios onde o Bitcoin Core está armazenado, você pode digitar: cd /data/bitcoin/. Isso mudará o diretório de trabalho atual para a pasta do Bitcoin Core.
O comando ls (list) lista os arquivos e pastas no diretório atual. Se quiser ver mais detalhes, como arquivos ocultos ou permissões, pode utilizar uma flag como -la, resultando em ls -la, que mostra uma lista mais completa dos arquivos.
O sudo (super user do) permite que você execute comandos como administrador (ou "root"). Isso é essencial para realizar tarefas que exigem privilégios elevados, como reiniciar um serviço. Por exemplo, para reiniciar o daemon LND, você pode usar sudo systemctl restart lnd. O sudo garante que você tenha as permissões necessárias para realizar essa ação.
Para aprender comandos que vão te permitir navegar e controlar seu computador via terminal, veja:
Gerenciamento de Processos no Linux com systemctl
O systemctl é uma ferramenta essencial no Linux, responsável por gerenciar e controlar os serviços que rodam em segundo plano, chamados de "daemons". Esses serviços são fundamentais para o funcionamento contínuo do sistema, incluindo o daemon LND, que gerencia o node Lightning. Com o systemctl, você pode iniciar, parar, reiniciar, verificar o status e até habilitar ou desabilitar serviços para que sejam iniciados automaticamente ao reiniciar o sistema.
Aqui estão alguns comandos essenciais do systemctl e suas funções:
Verificar o status de um serviço:
Para verificar se um serviço está rodando corretamente ou se encontrou algum erro, você pode usar:sudo systemctl status lndEsse comando mostrará se o daemon LND está ativo, inativo ou se ocorreu algum erro. Ele também exibe informações detalhadas sobre o serviço, como o tempo de atividade e os logs mais recentes.
Iniciar um serviço:
Se o daemon LND não estiver rodando, você pode iniciá-lo manualmente com o comando:sudo systemctl start lndIsso colocará o serviço em execução, mas ele não será iniciado automaticamente na próxima vez que o sistema for reiniciado, a menos que você o habilite.
Parar um serviço:
Caso precise parar o LND (por exemplo, para manutenção ou atualização), utilize o comando:sudo systemctl stop lndIsso encerrará a execução do serviço LND de forma segura, interrompendo todas as suas atividades.
Reiniciar um serviço:
Se o daemon LND estiver com problemas, você pode reiniciá-lo para tentar corrigir sem a necessidade de parar e iniciar manualmente:sudo systemctl restart lndIsso fará com que o serviço seja interrompido e imediatamente iniciado novamente.
Habilitar um serviço para iniciar automaticamente no boot:
Se você quer garantir que o daemon LND seja iniciado automaticamente toda vez que o sistema for reiniciado, use:sudo systemctl enable lndEsse comando garante que o serviço seja iniciado automaticamente durante o processo de boot do sistema.
Desabilitar a inicialização automática de um serviço:
Se você não quer que o LND inicie automaticamente no boot, pode desabilitar essa funcionalidade com:sudo systemctl disable lndVer logs de um serviço:
Se precisar depurar um problema ou visualizar eventos recentes, pode acessar os logs do serviço com o comando:sudo journalctl -fu lndIsso exibirá os logs gerados pelo serviço LND, incluindo mensagens de erro, informações de inicialização e outros eventos relevantes.
*Este exemplo usou o “lnd”, mas isso também funciona com “bitcoind” para o daemon do bitcoin e “thunderhub” para o gerenciador thunderhub.
Esses comandos formam a base do gerenciamento de serviços no Linux, permitindo total controle sobre os processos que mantêm seu sistema rodando. Usar o systemctl de maneira eficiente garante que seu node Lightning esteja sempre funcionando corretamente, e que você possa rapidamente identificar e resolver problemas quando eles surgirem.
Esses comandos e ferramentas são fundamentais para o bom funcionamento do BRLN Bolt. Ao dominar essas funcionalidades, você terá controle total do seu node Lightning, podendo realizar manutenções, monitorar o desempenho e garantir a operação contínua tanto na camada base do Bitcoin quanto na Lightning Network.
Arquivos de configuração do BRLN Bolt
Para mudar configurações do seu node lightning, como por exemplo o nome do seu node, é necessário mudar um arquivo que contém tais configurações. Este arquivo se encontra no diretório /data/lnd/ ou apenas /.lnd, que é um atalho para o diretório anterior. Agora que sabe onde ele está. Você pode mudar as configurações que precisar para deixar seu node como você quer.
MiniBolt: Configuração do LND (/data/admin/lnd.conf)
[Application Options]
alias=Mynode | BR⚡️LN: Define o alias do node na Lightning Network. Ele pode ter até 32 caracteres UTF-8, incluindo emojis. Esse alias será visível na rede e pode ser personalizado com ícones e cores.color=#ff9900: Define a cor que aparecerá ao lado do nome do seu node em ferramentas de monitoramento da rede, como exploradores de nodes. Você pode escolher qualquer cor hexadecimal.wallet-unlock-password-file=/data/lnd/password.txt: O caminho para o arquivo que contém a senha da carteira. Isso automatiza o desbloqueio da carteira, evitando a necessidade de digitar a senha sempre que o node for reiniciado.tlsautorefresh=true: Regenera automaticamente o certificado TLS quando ele estiver próximo da expiração. Isso garante que o node continue funcionando sem interrupções.tlsdisableautofill=true: Evita que os IPs de interface e o hostname do sistema sejam incluídos no certificado TLS, aumentando a privacidade.
Configurações de Canais
minchansize=20000(opcional): Define o tamanho mínimo dos canais que podem ser abertos com o node. Aqui, o valor padrão é 20.000 satoshis, mas você pode ajustá-lo conforme necessário.max-commit-fee-rate-anchors=10emax-channel-fee-allocation=0.5(opcional): Usados em ambientes de alta taxa, prevenindo custos excessivos.
Comunicação
accept-keysend=true: Ativa a função de keysend, permitindo que o node receba pagamentos sem invoice, usados em transações sem a necessidade de gerar uma fatura.accept-amp=true: Habilita os "Atomic Multipath Payments" (AMP), que permitem pagamentos serem divididos em várias partes, tornando as transações mais robustas e flexíveis.
Rebalanceamento
allow-circular-route=true: Permite que o node reenvie transações de rebalanceamento por seus próprios canais, o que pode ser útil para manter os canais equilibrados.
Desempenho
gc-canceled-invoices-on-startup=trueegc-canceled-invoices-on-the-fly=true: Ativam a coleta de lixo para faturas canceladas, otimizando a performance do node ao limpar faturas inválidas automaticamente.ignore-historical-gossip-filters=true: Melhora o desempenho ao ignorar dados antigos de "fofocas" (gossip) da rede, concentrando-se apenas nas informações mais recentes.restlisten=0.0.0.0:8080: Define o endereço e a porta para o serviço REST do LND. Neste caso, o serviço REST está disponível em todas as interfaces na porta 8080.rpclisten=127.0.0.1:10009: Configura o endereço e a porta onde o serviço RPC do LND escuta, aqui limitado ao localhost na porta 10009.
[Bitcoin]
bitcoin.mainnet=true: Define que o node está operando na rede principal do Bitcoin (mainnet).bitcoin.node=bitcoind: Configura o LND para se conectar ao daemon do Bitcoin (bitcoind), o cliente oficial do Bitcoin.Configurações de taxas:
bitcoin.basefee=1000ebitcoin.feerate=1(opcional): Define a taxa base e a taxa percentual por milhão para as transações de roteamento. Você pode ajustá-las para otimizar suas taxas de roteamento.
Configuração de tempo de bloqueio (CLTV delta):
bitcoin.timelockdelta=80(opcional): Define o valor delta CLTV, ou seja, o tempo de bloqueio adicional que é subtraído de um HTLC antes de ser encaminhado. O valor padrão é 80 blocos.
[Bitcoind]
bitcoind.rpchost=bitcoin.br-ln.com:8085: Configura o host e a porta RPC onde o LND se conecta ao seu bitcoind remoto.bitcoind.rpcuser=ebitcoind.rpcpass=: Essas opções são usadas para configurar as credenciais de autenticação RPC para conectar ao bitcoind.bitcoind.zmqpubrawblock=tcp://bitcoin.br-ln.com:28332ebitcoind.zmqpubrawtx=tcp://bitcoin.br-ln.com:28333: Configura as portas ZMQ para o LND receber notificações de novos blocos e transações diretamente do bitcoind.
[protocol]
protocol.wumbo-channels=false: Destiva canais Wumbo, permitindo que seu node crie ou aceite canais acima do limite padrão de 16.777.216 satoshis.protocol.option-scid-alias=true: Habilita o uso de SCID (Short Channel ID) alias, melhorando a flexibilidade e segurança na identificação de canais.protocol.simple-taproot-chans=true: Permite a criação de canais simplificados com Taproot, uma nova melhoria no protocolo Bitcoin.
[wtclient]
wtclient.active=true: Ativa o cliente Watchtower, que protege seu node contra tentativas de roubo em canais, garantindo que você seja compensado se uma contraparte tentar trapacear.wtclient.sweep-fee-rate=10(opcional): Especifica a taxa de sweep para as transações de justiça quando o Watchtower detecta uma violação.
[watchtower]
watchtower.active=true: Ativa o Watchtower, que é um serviço de monitoramento para proteger seus canais de possíveis tentativas de roubo. Outros nodes podem se conectar ao seu Watchtower para se protegerem também.
[routing]
routing.strictgraphpruning=true: Garante que o graph de roteamento seja estritamente podado, removendo canais inativos ou offline, otimizando o graph de roteamento para melhorar a eficiência.
[bolt]
db.bolt.auto-compact=true: Habilita a compactação automática do banco de dados, o que otimiza o uso de espaço e melhora a velocidade de inicialização.db.bolt.auto-compact-min-age=0h: Define o tempo mínimo para que o banco de dados seja compactado. Neste caso, o valor "0h" significa que o banco será compactado toda vez que o LND for reiniciado.
[tor]
tor.active=true: Ativa o uso de Tor, garantindo que o node seja acessível anonimamente, aumentando a privacidade.tor.v3=true: Garante que o node opere usando serviços Tor de terceira geração (v3), que são mais seguros.tor.streamisolation=true: Habilita o isolamento de fluxos Tor, o que impede que múltiplas conexões sejam correlacionadas entre si, reforçando a privacidade.
[rpcmiddleware]
rpcmiddleware.enable=true: Ativa o middleware RPC, permitindo que ferramentas adicionais interajam com o node e modifiquem ou filtrem as respostas das chamadas RPC.
Interagindo com o Node Lightning via lncli
O lncli é a principal ferramenta para interagir com seu node Lightning através da linha de comando. Ele permite que você realize diversas operações, como abrir canais, enviar moedas, consultar informações e muito mais. A seguir, exemplificaremos alguns dos comandos mais úteis e explicaremos suas flags e funcionalidades.
Para fazer o uso você precisa dos comandos, como exemplificado abaixo “lncli sendcoins” mas você pode adicionar especificadores elencando-os após o comando inicial, como o comando --sweepall, sempre com 2 traços antes. Este comando “lncli sendcoins --<endereço> --sweepall” por exemplo manda todos os seus fundos para o mesmo endereço de bitcoin.
Envio de Transações com lncli sendcoins
O comando sendcoins permite que você envie bitcoins on-chain (na primeira camada) do seu node Lightning para um endereço Bitcoin. Veja um exemplo básico:
lncli sendcoins --addr=bc1qendereco --amt=500000
Aqui você está enviando 500.000 satoshis para o endereço especificado. Algumas flags importantes para esse comando são:
--addr: Define o endereço Bitcoin para onde os fundos serão enviados. No exemplo, "bc1q1sa72f5eg…" é o destinatário.--amt: Define a quantidade de satoshis que serão enviados. No exemplo, 500.000 satoshis.--conf_target: Esta flag permite que você defina em quantos blocos deseja que a transação seja confirmada. Por exemplo: lncli sendcoins --addr=bc1q1sa72f5eg46d5g13fg4df5g4d3r5g --amt=50000 --conf_target=6 Aqui, a transação deve ser confirmada em até 6 blocos, usando um sistema para tentar prever a taxa do próximo bloco.--sat_per_byte: Define a taxa de transação manualmente, em satoshis por byte. Exemplo: lncli sendcoins --addr=bc1qendereco --amt=50000 --sat_per_byte=2
Abertura de Canais com lncli openchannel
Para abrir um canal com outro node, use o comando openchannel. Aqui está um exemplo de como abrir um canal com 1.000.000 satoshis:
lncli openchannel --node_key=<public_key_do_node> --local_amt=1000000
Algumas flags importantes para o comando:
--node_key: A chave pública do node com o qual você deseja abrir o canal.--local_amt: Define a quantidade de satoshis que você está aportando no canal. No exemplo, 1.000.000 satoshis.--private: Se você deseja abrir um canal privado (não visível na rede pública Lightning), utilize esta flag: lncli openchannel --node_key=<public_key_do_node> --local_amt=1000000 --private
Fechamento de Canais com lncli closechannel
O comando closechannel é usado para fechar canais Lightning. Para fechar um canal, você precisará do ID ou da transação de abertura (funding_txid). Exemplo:
lncli closechannel --funding_txid=<txid_do_canal> --output_index=<índice_do_canal>
Flags importantes:
--funding_txid: A transação de financiamento (UTXO) do canal que você deseja fechar.--output_index: O índice de saída da transação, que identifica o canal exato.--force: Força o fechamento do canal caso ele não possa ser fechado normalmente, como em situações de HTLCs pendentes. Exemplo: lncli closechannel --funding_txid=<txid_do_canal> --output_index=<índice_do_canal> --forceAs informações para usar este código podem ser encontradas com o código asseguir e se parece com: bkf58s6d249f2dff6e5e9f422d4f1fs65dgsq(funding txid):1(index, pode ser 0 ou 1)
Consulta de Canais com lncli listchannels
Se você quiser visualizar os canais abertos do seu node, use o comando listchannels. Ele retorna uma lista de todos os canais ativos. Exemplo:
lncli listchannels
Este comando fornece informações sobre o saldo local, saldo remoto, taxas, ID do canal, entre outros. Para listar apenas canais inativos, você pode usar a flag --inactive_only:
lncli listchannels --inactive_only
Obtenção de Informações Gerais do Node com lncli getinfo
O comando getinfo exibe informações gerais sobre o seu node Lightning, como o alias, a chave pública, o número de canais abertos, entre outros detalhes importantes. Exemplo de uso:
lncli getinfo
A saída desse comando fornece uma visão geral do estado do seu node, incluindo:
Chave pública (identity_pubkey): A chave pública do seu node na Lightning Network.
Alias: O nome do seu node, conforme configurado no arquivo lnd.conf.
Número de canais abertos: Quantos canais ativos o seu node possui.
Saldo total: O saldo total disponível no node.
Endereços de IP: O(s) endereço(s) de IP pelos quais seu node pode ser acessado.
Versão do LND: A versão do daemon LND que está rodando no seu node.
Essas informações são extremamente úteis para monitorar o estado do seu node e verificar sua conectividade e operabilidade na Lightning Network.
Pedindo Ajuda com lncli help e lncli <comando> -h
Se você tiver dúvidas sobre algum comando específico, o lncli oferece uma função de ajuda. Para ver uma lista completa dos comandos disponíveis, basta digitar:
lncli help
Caso precise de ajuda sobre um comando específico, como o sendcoins, você pode usar a flag -h após o comando desejado:
lncli sendcoins -h
Isso mostrará todas as opções e flags disponíveis para o comando sendcoins, ajudando a entender melhor como usá-lo de forma eficaz.
O lncli é uma ferramenta poderosa que oferece controle total sobre seu node Lightning via linha de comando. Dominar o uso desses comandos permite que você gerencie transações, canais e informações do node de forma eficiente e direta.
Com estas informações e ferramentas você já tem tudo que você precisa para assumir as rédeas do seu node lightning. Em caso de dúvidas você pode nos contatar pelo grupo do telegram ou pelo email do suporte, que você encontra na nossa pagina https://br-ln.com/.



