Guia BR⚡LN
Laboratório Lightning: treine com três nodes sem arriscar um satoshi
Antes de pôr sats de verdade num node, dá para treinar tudo num laboratório: três nodes Lightning conversando entre si, com moedas que não valem nada. Este guia mostra como instalar e faz com você cada operação, com as telas reais do LightningOS.
O que é o laboratório regtest
Regtest é uma blockchain do Bitcoin que roda só no seu computador. Ela funciona como a de verdade, com endereços, transações, blocos e canais Lightning, mas as moedas não valem nada e ninguém de fora participa. É o lugar certo para errar: abrir canal, fechar, pagar, rebalancear e ver o que acontece, sem arriscar um satoshi.
O instalador de laboratório do LightningOS monta tudo sozinho: o Bitcoin Core 31.2, três nodes LND chamados Alice, Bob e Charlie, e um painel do LightningOS para cada um. Ele também põe saldo nas três carteiras e abre um triângulo de canais: Alice → Bob → Charlie → Alice, três canais de 1.000.000 sats com metade do saldo de cada lado. Com isso já dá para pagar de um node para outro, passar por um node no meio do caminho e testar rebalance circular.
Laboratório não é node. Nada do que acontece aqui vai para a rede de verdade: carteiras, canais e saldos não migram para produção. Para ter um node na mainnet, você faz uma instalação separada, num computador só para isso. Nunca instale o laboratório num node com fundos reais nem importe uma carteira de verdade nele.
O que você precisa
- Ubuntu 24.04 (amd64) novo e só para o laboratório: uma máquina virtual (VirtualBox, VMware, Proxmox) ou o Ubuntu integrado ao Windows 11 pelo WSL2.
- 4 GiB de memória e 20 GiB livres no disco do Linux, com
systemdligado. - Internet durante a instalação, para baixar os pacotes e compilar o LightningOS.
1. Instale com um comando
Numa VM Ubuntu, dê ao computador o nome que o instalador espera e rode o bootstrap:
sudo hostnamectl set-hostname los-regtest
sudo apt-get update
sudo apt-get install -y ca-certificates curl
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/jvxis/brln-os-light/agent/0.5.50-release/lo_regtest_bootstrap.sh | sudo bash -s -- --disposable-host
O bootstrap baixa uma cópia limpa do código, roda o install_regtest.sh e apaga só a cópia temporária no fim. A instalação leva alguns minutos, porque compila o LightningOS. Rodar de novo não zera nada: as carteiras, os canais e as senhas do laboratório são mantidos.
O instalador recusa máquinas que já tenham um node: se ele encontrar dados de LND ou serviços de produção, ele para. É de propósito.
No Windows 11, pelo WSL2
Sem VM, dá para usar o Ubuntu integrado ao Windows. Reserve uma distribuição só para o laboratório:
- No PowerShell, instale:
wsl --install -d Ubuntu-24.04. Confira emwsl --list --verboseque a versão é a 2. - Dentro do Ubuntu, abra o arquivo de configuração com
sudo nano /etc/wsl.confe acrescente:[boot] systemd=true [network] hostname=los-regtest - Feche os terminais do Ubuntu e, no PowerShell, reinicie só essa distribuição:
wsl --terminate Ubuntu-24.04e depoiswsl -d Ubuntu-24.04. - Confira:
ps -p 1 -o comm=deve respondersystemd, ehostnamedeve responderlos-regtest. Então rode os comandos deapt-getecurlacima.
Mantenha o laboratório no disco do Linux, fora de /mnt/c, e deixe o WSL aberto enquanto usa: com ele fechado, os nodes param.
2. Abra os três painéis
No WSL2, os painéis abrem direto no navegador do Windows: https://alice.localhost:8443, https://bob.localhost:8543 e https://charlie.localhost:8643.
Numa VM, os painéis só escutam dentro dela. Do seu computador, abra um túnel SSH e deixe esse terminal aberto (no Windows, o PowerShell já tem o ssh):
ssh -N -L 127.0.0.1:19043:127.0.0.1:8443 -L 127.0.0.1:19053:127.0.0.1:8543 -L 127.0.0.1:19063:127.0.0.1:8643 usuario@ip-da-vm
Depois abra https://alice.localhost:19043, https://bob.localhost:19053 e https://charlie.localhost:19063. Os nomes diferentes servem para o navegador não misturar o login dos três.
Os painéis usam um certificado do próprio laboratório. Para o navegador confiar nele, copie a autoridade pública do laboratório (scp usuario@ip-da-vm:/etc/los-regtest/ca.crt .) e importe o arquivo nas autoridades do navegador que você usa para testes. No Firefox: Configurações › Privacidade e Segurança › Ver certificados › Autoridades › Importar.
A senha de cada painel fica na VM. Para ver a da Alice (troque pelo nome do node para os outros):
sudo cat /etc/los-regtest/alice/ui-password
3. Conheça o painel
Entre como Alice e troque o idioma para PT no topo. O painel é o mesmo do LightningOS de produção: à esquerda, os menus; no centro, o Node Pulse, os números de roteamento e a liquidez; embaixo, os cartões do LND e do Bitcoin.
Clique na faixa REGTEST do rodapé (O que funciona). Abre o Guia do laboratório regtest, com o estado de cada operação: Validado (testado e funcionando aqui), Não validado (ainda não testado, o que não quer dizer que falha) e Fora de escopo (depende de coisas que só existem em produção). Consulte antes de usar um menu.
4. Os blocos: o relógio do laboratório
Na rede de verdade, os mineradores do mundo fazem um bloco a cada 10 minutos, em média. Sem bloco, nada que vai para a blockchain confirma: depósitos ficam esperando, canais ficam pendentes e fechamentos não terminam. No laboratório, o instalador liga um minerador automático que faz um bloco a cada 60 segundos, com moedas sem valor. Você não precisa fazer nada: depois de mandar uma transação, é só esperar alguns minutos. Seis confirmações, que bastam para qualquer exercício deste guia, levam uns 6 minutos.
Para conferir o minerador e os três nodes, rode na VM (ou no Ubuntu do WSL):
sudo python3 /opt/los-regtest/automine.py status
sudo python3 /opt/los-regtest/control.py status
Se quiser controlar a altura dos blocos, ou não quiser esperar, pause o minerador e minere na mão. O intervalo também pode mudar, de 10 a 3600 segundos, e a escolha continua valendo depois de reiniciar ou reinstalar:
sudo python3 /opt/los-regtest/automine.py pause
sudo python3 /opt/los-regtest/control.py mine 6
sudo python3 /opt/los-regtest/automine.py resume
sudo python3 /opt/los-regtest/automine.py interval 30
O minerador só trabalha com a máquina ligada e não compensa o tempo desligado. Se a VM ficou desligada ou o minerador ficou pausado por muito tempo, o LND acha que perdeu a sincronia (a CADEIA fica amarela no painel): espere o próximo bloco, ou minere 1 com control.py mine 1, e só teste quando ela voltar ao verde.
Pagamentos Lightning por canais já abertos não precisam de bloco: eles andam dentro dos canais, sem tocar na blockchain. É exatamente a graça da Lightning, e o laboratório deixa isso visível.
5. A carteira
Abra Carteira. O cartão On-chain mostra os sats na blockchain (o instalador deixa quase 2 BTC fictícios em cada node) e o cartão Lightning mostra o saldo dentro dos canais: o saldo local é o que você pode enviar; o lado remoto é o espaço que você tem para receber.
6. Exercício: o primeiro pagamento Lightning
- No painel do Bob, em Carteira › Criar invoice, escreva o valor (25000) e um memo, e clique em Gerar invoice. Aparece o QR code e o texto da invoice, que começa com
lnbcrt(o rt é de regtest). Clique em Copiar invoice. - No painel da Alice, em Carteira › Pagar invoice, cole a invoice. O painel mostra o valor e o memo. Clique em Pagar invoice.
- O LightningOS pede a senha de administrador antes de mover dinheiro, mostrando o destino, o valor e o limite de taxa. Confira, digite a senha e clique em Confirmar esta operação.
lnbc.
Pronto: em segundos, os 25.000 sats saem do saldo local da Alice e entram no do Bob, sem nenhum bloco. A Atividade recente do Bob mostra a invoice como SETTLED, com o memo e o node que pagou.
7. Exercício: pagar passando por outro node
A Lightning é uma rede: o pagamento pode atravessar nodes no caminho. A Alice tem canal direto com o Charlie, mas dá para forçar o caminho pelo Bob:
- No painel do Charlie, gere uma invoice de 10000 sats.
- Na Alice, cole a invoice em Pagar invoice, abra Canais de saída (opcional) e marque só o canal com o LOS-Regtest-Bob. Assim o primeiro salto é obrigatoriamente o Bob.
- Clique em Preview de rota. O painel testa o caminho antes de pagar e mostra a rota: 2 hops, o Bob no meio cobrando a taxa dele, e o Charlie no fim. A Taxa máxima é preenchida com a sugestão.
- Clique em Pagar invoice e confirme com a senha.
É assim que um node que roteia ganha taxas: o Bob encaminhou o pagamento e ficou com 2 sats. O guia Taxas do node em ppm explica como essas taxas são calculadas.
8. Exercício: enviar e receber on-chain
- No painel do Charlie, em Carteira, clique em Adicionar fundos e copie o endereço (no regtest ele começa com
bcrt1). - Na Alice, clique em Enviar fundos, cole o endereço, escreva o valor (100000) e, em Fee rate (sat/vB), digite 2. O laboratório não tem histórico de taxas, então a sugestão automática fica indisponível: use sempre uma taxa manual. Confira a Prévia do custo e clique em Enviar on-chain.
- Confirme com a senha. O painel mostra o Txid da transação transmitida.
- Na Atividade recente do Charlie, ainda não aparece nada: a transação está esperando um bloco. Espere uns 6 minutos, o tempo de o minerador fazer seis blocos, e atualize a carteira do Charlie.
9. Exercício: abrir um canal
Abrir canal é uma transação on-chain: o saldo sai da carteira e fica travado no canal. Vamos abrir um segundo canal da Alice para o Charlie, de 300.000 sats.
- Na Alice, abra Lightning › Operações Lightning e, no quadro Peers, clique em Abrir. Copie a Pubkey do LOS-Regtest-Charlie.
- No quadro Lightning Tools, clique em Abrir canal. No primeiro campo, cole a pubkey no formato
pubkey@127.0.0.1:9935(as portas dos nodes são 9735 para a Alice, 9835 para o Bob e 9935 para o Charlie). - Em Funding amount, escreva 300000. Em Fee rate, escolha Manual e digite 2. A Prévia da abertura mostra quanto vai sobrar on-chain e se há saldo confirmado suficiente.
- Clique em Abrir canal e confirme com a senha.
No quadro Canais, aparece a faixa Canais pendentes. O canal só fica ativo depois que a transação confirma: espere alguns minutos e clique em Atualizar. O contador muda para 3 canais ativos.
Repare que o canal novo nasce com 100% do saldo do lado da Alice: ela pode enviar por ele, mas ainda não pode receber. É o mesmo que acontece com o primeiro canal de um node de verdade.
10. Exercício: ajustar as taxas de um canal
Em Operações Lightning › Atualizar fees, clique em Aplicar a um, escolha o canal novo e preencha a taxa em ppm (250) e a base fee (0). Clique em Atualizar fees. A mensagem Fees atualizadas. confirma, e o cartão do canal passa a mostrar Out rate: 250 ppm.
11. Exercício: rebalance manual
O canal novo tem saldo demais do lado da Alice, e o canal com o Bob tem de menos (45% local). O rebalance move saldo de um para o outro pagando a si mesma pelo triângulo: Alice → Charlie → Bob → Alice.
- Abra Lightning › Rebalance Center e desça até o Workbench de Canais.
- Na linha do LOS-Regtest-Bob, em Alvo outbound, escreva 50. O painel calcula a Liquidez local a adicionar.
- O botão Rebal In pode ficar desabilitado. Logo abaixo dele, o painel diz o motivo: o saldo já está perto do alvo, ou o orçamento padrão de 1 ppm (a taxa do próprio canal) não cobre o que o caminho cobra. Para fazer o teste mesmo assim, clique no botão de opções ao lado de Rebal In para abrir o Probe manual de liquidez. Escreva o valor (50000) e uma Taxa máxima de 100 ppm. O painel avisa que a taxa máxima supera a do canal e pode dar prejuízo: no laboratório, tudo bem.
- Clique em Iniciar custom e acompanhe em Histórico recente.
Em Operações Lightning, o cartão do canal com o Bob passa a mostrar o custo do rebalance em ppm, o lucro negativo e o selo Deficitário: ele gastou sats para se equilibrar e ainda não ganhou nada roteando. Na vida real, o rebalance só vale a pena quando o canal ganha mais em taxas do que custou para equilibrar.
12. Exercício: fechar o canal
Em Operações Lightning › Fechar canal, escolha o canal de 300k com o Charlie, selecione Manual e digite 2 sat/vB. A Prévia do close mostra o custo estimado e quanto volta para a carteira. Deixe Force close desmarcado: com o peer online, o fechamento cooperativo é mais barato e o dinheiro volta logo.
Clique em Fechar canal e confirme com a senha. A janela de confirmação mostra também o limite da negociação de taxa com o peer. Espere alguns minutos: com os blocos do minerador, o canal some da lista, o saldo volta para o On-chain da Alice e o Histórico de Fechamentos registra um Fechamento cooperativo.
Se o peer propuser uma taxa acima do limite que você confirmou, o LND recusa aquela rodada e a negociação continua. Em Peers, o recado fica guardado como Histórico do peer, mesmo depois de o canal fechar: é o último erro que o LND recebeu, não um problema atual. Confira o estado do canal antes de repetir o fechamento.
O que mais dá para testar
Também foram validados no laboratório, e você pode repetir: abrir canais em lote (dois peers numa transação só), o canal balanceado (Alice propõe, Bob aceita e o canal nasce 50/50), o force close até a maturação e a volta do saldo, o AutoFee manual (Dry run e Run now), o Node Retirement, a Succession, a assinatura de mensagens e a organização de UTXOs. No force close, o saldo fica preso até o prazo de maturação do canal, que passa de uma centena de blocos. Com um bloco por minuto isso leva mais de duas horas; para não esperar, pause o minerador e minere de uma vez com control.py mine 200, depois rode automine.py resume.
Ainda não validadas: as automações agendadas, como o rebalance automático, o auto-reparo e o HTLC Manager. Fora do laboratório: a configuração do LND pela interface (alias, cor, rede), reiniciar e atualizar o LND ou o LightningOS pela tela, os Apps da loja e as integrações externas. Esses menus continuam visíveis, mas aparecer na tela não quer dizer que funcionam aqui; alguns painéis de saúde também reclamam de serviços de produção que o laboratório não tem.
Do laboratório para o node de verdade
Quando os exercícios ficarem fáceis, o próximo passo é o node na mainnet, com sats de verdade. O caminho está em Como montar um node Lightning em casa, e o Primeiros passos leva do node ao primeiro canal com o BR⚡LN Hub. Comece com pouco: o que você treinou aqui vale igual lá, mas lá cada erro custa sats.
Perguntas frequentes
O que é regtest?
É um modo do Bitcoin Core em que a blockchain roda só no seu computador e os blocos são criados ali mesmo, sem minerador de fora. No laboratório, um minerador automático faz um por minuto. Funciona como o Bitcoin de verdade, mas as moedas não valem nada e ninguém de fora participa.
As moedas do laboratório valem alguma coisa?
Não. São moedas regtest, que só existem na sua máquina. Não dá para enviá-las para a rede de verdade nem vendê-las.
Por que o meu depósito ou o meu canal não confirma?
Porque ainda falta bloco. O minerador automático do laboratório faz um por minuto: espere alguns minutos e atualize o painel. Se não confirmar, veja se ele está ligado com sudo python3 /opt/los-regtest/automine.py status; pausado, religue com automine.py resume ou minere na mão com control.py mine 6.
Posso instalar o laboratório no meu node de verdade?
Não. Use uma VM ou uma distribuição do WSL2 só para ele. O instalador se recusa a rodar onde já existe um node, justamente para não misturar as coisas.
Dá para rodar o laboratório no Windows?
Sim, pelo WSL2 no Windows 11, com uma distribuição Ubuntu 24.04 dedicada e o systemd ligado. Os painéis abrem no navegador do Windows em alice.localhost, bob.localhost e charlie.localhost.
O que passa do laboratório para a produção?
Só o que você aprendeu. Carteiras, canais e saldos do laboratório não migram: o node de verdade é uma instalação separada do LightningOS, num computador só para isso.
