<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es"><title>Chemaclass - tutorial</title><subtitle>Tech Lead compartiendo ideas prácticas sobre artesanía del software, TDD, liderazgo, Bitcoin e IA. Artículos, resúmenes de libros y charlas.</subtitle><link rel="self" type="application/atom+xml" href="https://chemaclass.com/es/tags/tutorial/atom.xml"/><link rel="alternate" type="text/html" href="https://chemaclass.com"/><generator uri="https://www.getzola.org/">Zola</generator><updated>2026-04-17T00:00:00+00:00</updated><id>https://chemaclass.com/es/tags/tutorial/atom.xml</id><entry xml:lang="es"><title>Dentro de la Carpeta .claude</title><subtitle>Un tutorial sobre rules, skills, agents, hooks y settings</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="tutorial" scheme="https://chemaclass.com/tags/tutorial/" label="Tutorial"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2026-04-17T00:00:00+00:00</published><updated>2026-04-17T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/inside-the-claude-folder/"/><id>https://chemaclass.com/es/blog/inside-the-claude-folder/</id><summary type="html">Un recorrido práctico por la carpeta de proyecto de Claude Code. Qué hacen rules, skills, agents, hooks y settings, y cómo encajan entre sí.</summary><content type="html">&lt;p>Cada proyecto en el que trabajo tiene una carpeta &lt;code>.claude/&lt;/code> en la raíz. Commiteada en git, como el resto del código.&lt;/p>
&lt;p>Esa carpeta convierte Claude Code de un asistente genérico en un compañero que conoce tu proyecto. Quien clone el repo hereda el mismo setup.&lt;/p>
&lt;p>El agentic coding es tan bueno como el contexto que le das al agente. La carpeta &lt;code>.claude/&lt;/code> es donde vive ese contexto.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="la-carpeta-claude-de-un-vistazo">La carpeta .claude, de un vistazo
&lt;a class="heading-anchor" href="#la-carpeta-claude-de-un-vistazo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>.claude/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── CLAUDE.md # onboarding del proyecto&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── settings.json # permisos, hooks, env&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── skills/ # procedimientos reutilizables (slash commands)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── rules/ # convenciones por glob&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── hooks/ # scripts que reaccionan a eventos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>└── agents/ # roles especializados&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Seis capas, una carpeta. Contexto, seguridad, procedimientos, barandillas, automatización, especialistas.&lt;/p>
&lt;h2 id="los-cimientos">Los cimientos
&lt;a class="heading-anchor" href="#los-cimientos" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="claude-md-donde-todo-empieza">CLAUDE.md: donde todo empieza
&lt;a class="heading-anchor" href="#claude-md-donde-todo-empieza" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Claude Code lee &lt;code>CLAUDE.md&lt;/code> en cada arranque. El doc de onboarding.&lt;/p>
&lt;p>En &lt;a rel="external" href="https://github.com/phel-lang/phel-lang">Phel&lt;/a>, el mío cubre el pipeline del compilador (Lexer → Parser → Analyzer → Emitter), la estructura de módulos, convenciones y comandos clave.&lt;/p>
&lt;p>Un &lt;code>~/.claude/CLAUDE.md&lt;/code> global aplica a &lt;em>todos&lt;/em> tus proyectos. El archivo de proyecto dice &lt;em>cómo funciona este código&lt;/em>. El global dice &lt;em>cómo trabajo yo&lt;/em>.&lt;/p>
&lt;p>Cada byte viaja en cada prompt. Mantenlo corto. Si pasa de una pantalla, mueve el detalle a &lt;code>rules/&lt;/code> o &lt;code>skills/&lt;/code>.&lt;/p>
&lt;blockquote>
&lt;p>Un buen &lt;code>CLAUDE.md&lt;/code> es un buen doc de onboarding. Cuanto mejor sea, menos te repites.&lt;/p>
&lt;/blockquote>
&lt;h3 id="settings-json-seguridad-antes-que-potencia">settings.json: seguridad antes que potencia
&lt;a class="heading-anchor" href="#settings-json-seguridad-antes-que-potencia" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Antes de darle más poder al agente, bloquea lo que nunca debe hacer.&lt;/p>
&lt;p>&lt;code>.claude/settings.json&lt;/code> contiene tres cosas: &lt;strong>permissions&lt;/strong> (allow/deny), &lt;strong>hooks&lt;/strong> (comandos por evento) y &lt;strong>env&lt;/strong> (variables). Un &lt;code>settings.local.json&lt;/code> gitignoreado mantiene las configuraciones personales aparte.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Ejemplo de permisos en Phel&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="json">&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">permissions&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">allow&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(composer:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(./bin/phel:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(git:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(gh:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">deny&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(rm -rf:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(sudo:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;/div>
&lt;/details>
&lt;p>Allow desbloquea el flujo. Deny marca la línea que el agente no puede cruzar, aunque se lo pidas con buena cara.&lt;/p>
&lt;blockquote>
&lt;p>Los permisos son el suelo. Todo lo demás se construye sobre una base segura.&lt;/p>
&lt;/blockquote>
&lt;h2 id="procedimientos-y-barandillas">Procedimientos y barandillas
&lt;a class="heading-anchor" href="#procedimientos-y-barandillas" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="skills-procedimientos-que-puedes-ejecutar">Skills: procedimientos que puedes ejecutar
&lt;a class="heading-anchor" href="#skills-procedimientos-que-puedes-ejecutar" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Siguiente dolor tras onboarding: la repetición. Los skills lo resuelven.&lt;/p>
&lt;p>Un skill es un archivo markdown en &lt;code>.claude/skills/&lt;/code>, un procedimiento que invocas con una barra:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>/gh-issue &amp;lt;número&amp;gt;&lt;/code>&lt;/strong>: de issue a rama, plan TDD, PR.&lt;/li>
&lt;li>&lt;strong>&lt;code>/commit&lt;/code>&lt;/strong>: fix, análisis, tests, commit convencional.&lt;/li>
&lt;li>&lt;strong>&lt;code>/refactor-check&lt;/code>&lt;/strong>: SOLID, naming, olores de arquitectura.&lt;/li>
&lt;li>&lt;strong>&lt;code>/release [version]&lt;/code>&lt;/strong>: changelog, PHAR, tag, release.&lt;/li>
&lt;/ul>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Skills vs rules vs prompt directo&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;ul>
&lt;li>&lt;strong>Prompt directo&lt;/strong>: &lt;em>“arregla el issue #42”&lt;/em>. El agente improvisa. Distinto cada vez.&lt;/li>
&lt;li>&lt;strong>Rule&lt;/strong>: &lt;em>“usa conventional commits”&lt;/em>. Da forma al resultado, no al procedimiento.&lt;/li>
&lt;li>&lt;strong>Skill&lt;/strong>: &lt;em>“&lt;code>/gh-issue 42&lt;/code>”&lt;/em>. El procedimiento &lt;em>es&lt;/em> la instrucción.&lt;/li>
&lt;/ul>
&lt;p>Los skills convierten conocimiento tribal en pasos ejecutables por cualquiera.&lt;/p>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>Los skills capturan qué hacer. Las rules capturan qué no hacer.&lt;/p>
&lt;/blockquote>
&lt;h3 id="rules-las-barandillas">Rules: las barandillas
&lt;a class="heading-anchor" href="#rules-las-barandillas" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;code>CLAUDE.md&lt;/code> se lee en cada sesión. Las rules solo cuando aplican. Los archivos en &lt;code>.claude/rules/&lt;/code> apuntan a áreas del código con patrones glob: el agente carga solo lo que corresponde, manteniendo el contexto ligero.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Rules con glob en la práctica&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Archivos de rules en Phel:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>compiler.md&lt;/code>&lt;/strong>: pipeline estricto de 4 fases, sin atajos.&lt;/li>
&lt;li>&lt;strong>&lt;code>php.md&lt;/code>&lt;/strong>: PER 3.0, clases &lt;code>final&lt;/code>, &lt;code>readonly&lt;/code>, patrón Gacela.&lt;/li>
&lt;li>&lt;strong>&lt;code>phel.md&lt;/code>&lt;/strong>: kebab-case, &lt;code>defn-&lt;/code> privadas, &lt;code>:doc&lt;/code>/&lt;code>:example&lt;/code> obligatorios.&lt;/li>
&lt;li>&lt;strong>&lt;code>integration-tests.md&lt;/code>&lt;/strong>: secciones &lt;code>--PHEL--&lt;/code> / &lt;code>--PHP--&lt;/code> en fixtures.&lt;/li>
&lt;/ul>
&lt;p>Las rules del compilador no se activan al editar código Phel. Las rules de Phel no se activan al editar infraestructura PHP.&lt;/p>
&lt;/div>
&lt;/details>
&lt;p>Las rules no son sugerencias. Viajan con el código: un cambio de convención y su rule viajan en el mismo commit. Sin drift, sin wikis desactualizadas.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-17/middle.webp" alt="blog-middle" />&lt;/p>
&lt;h2 id="automatizacion-y-delegacion">Automatización y delegación
&lt;a class="heading-anchor" href="#automatizacion-y-delegacion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="hooks-automatizacion-en-los-bordes">Hooks: automatización en los bordes
&lt;a class="heading-anchor" href="#hooks-automatizacion-en-los-bordes" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Las rules dicen al agente qué hacer. Los hooks se aseguran de que ocurra aunque el agente olvide.&lt;/p>
&lt;p>Comandos shell disparados por eventos de Claude Code (&lt;code>PreToolUse&lt;/code>, &lt;code>PostToolUse&lt;/code>, &lt;code>Stop&lt;/code>), conectados vía &lt;code>settings.json&lt;/code>. En Phel, &lt;code>PreToolUse&lt;/code> bloquea ediciones a archivos críticos (&lt;code>build/release.sh&lt;/code>, &lt;code>.github/*&lt;/code>, &lt;code>composer.lock&lt;/code>). &lt;code>PostToolUse&lt;/code> auto-formatea PHP vía &lt;code>php-cs-fixer&lt;/code>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Conexión de hooks&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="json">&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PreToolUse&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">matcher&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Edit|Write&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">type&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">command&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">.claude/hooks/protect-files.sh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PostToolUse&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">matcher&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Edit|Write&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">type&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">command&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">.claude/hooks/format-php.sh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>Las rules son lo que el agente debe saber. Los hooks son lo que el sistema impone de todas formas.&lt;/p>
&lt;/blockquote>
&lt;h3 id="agents-roles-especializados">Agents: roles especializados
&lt;a class="heading-anchor" href="#agents-roles-especializados" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Todo lo anterior da forma a un solo agente. Los agents añaden especialistas a los que el agente principal puede delegar, cada uno con sus propias herramientas, permisos y modelo. La pieza más avanzada. La recomiendo de última.&lt;/p>
&lt;p>Algunos de Phel:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Explorer&lt;/strong> (Sonnet, solo lectura): archivos, mapeo de estructura.&lt;/li>
&lt;li>&lt;strong>Clean Code Reviewer&lt;/strong>: SOLID y naming en diffs.&lt;/li>
&lt;li>&lt;strong>TDD Coach&lt;/strong>: imposición red-green-refactor.&lt;/li>
&lt;li>&lt;strong>Domain Architect&lt;/strong>: límites de módulos, pipeline del compilador.&lt;/li>
&lt;li>&lt;strong>Debugger&lt;/strong>: errores del compilador en todas las fases.&lt;/li>
&lt;/ul>
&lt;p>Cada agente corre en su propia ventana de contexto: la sesión principal se mantiene limpia mientras el especialista profundiza. La ganancia no es solo coste, es foco. Un agente con solo read y grep no puede reescribir tu código por error.&lt;/p>
&lt;blockquote>
&lt;p>El modelo correcto para el trabajo correcto. Rápido y barato para explorar. Profundo y cuidadoso para arquitectura.&lt;/p>
&lt;/blockquote>
&lt;h2 id="empieza-pequeno-crece-con-la-friccion">Empieza pequeño, crece con la fricción
&lt;a class="heading-anchor" href="#empieza-pequeno-crece-con-la-friccion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>No construyas todo esto el primer día.&lt;/p>
&lt;p>El orden, guiado por fricción real:&lt;/p>
&lt;ol>
&lt;li>Empieza con &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#claude-md-donde-todo-empieza">&lt;code>CLAUDE.md&lt;/code>&lt;/a>.&lt;/li>
&lt;li>Bloquea permisos en &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#settings-json-seguridad-antes-que-potencia">&lt;code>settings.json&lt;/code>&lt;/a>.&lt;/li>
&lt;li>La primera vez que te repitas, escribe un &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#skills-procedimientos-que-puedes-ejecutar">skill&lt;/a>.&lt;/li>
&lt;li>La primera vez que el agente rompa una convención, añade una &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#rules-las-barandillas">rule&lt;/a>.&lt;/li>
&lt;li>La primera vez que algo malo casi se commitee, añade un &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#hooks-automatizacion-en-los-bordes">hook&lt;/a>.&lt;/li>
&lt;li>La primera vez que un generalista no encaje, define un &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#agents-roles-especializados">especialista&lt;/a>.&lt;/li>
&lt;/ol>
&lt;p>Cada paso soluciona un problema que realmente tuviste. No uno que imaginaste.&lt;/p>
&lt;blockquote>
&lt;p>El setup crece desde la fricción real, no desde el diseño anticipado.&lt;/p>
&lt;/blockquote>
&lt;p>Commitea la carpeta. Compártela. Cuando alguien se una, su sesión hereda todo.&lt;/p>
&lt;p>Trata &lt;code>.claude/&lt;/code> como infraestructura. Versiónala. Revísala. Hazla evolucionar con el código.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-17/footer.webp" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Cómo Funciona Bitcoin</title><subtitle>Blockchain, criptografía y consenso</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="cryptography" scheme="https://chemaclass.com/tags/cryptography/" label="Cryptography"/><category term="tutorial" scheme="https://chemaclass.com/tags/tutorial/" label="Tutorial"/><published>2025-12-22T00:00:00+00:00</published><updated>2025-12-22T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/how-bitcoin-works/"/><id>https://chemaclass.com/es/blog/how-bitcoin-works/</id><summary type="html">Transacciones, bloques, minería, el modelo UTXO y Lightning Network: cómo funciona Bitcoin por dentro, explicado en términos simples.</summary><content type="html">&lt;p>Este post explica cómo funciona Bitcoin por dentro. Si buscas entender por qué importa, empieza con &lt;a href="/es/blog/bitcoin-fundamentals/">Fundamentos de Bitcoin&lt;/a>.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>&lt;em>Para los técnicamente curiosos.&lt;/em>&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/bBC-nXj3Ng4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="la-blockchain">La Blockchain
&lt;a class="heading-anchor" href="#la-blockchain" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="el-problema-del-doble-gasto">El problema del doble gasto
&lt;a class="heading-anchor" href="#el-problema-del-doble-gasto" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>El dinero digital tiene un problema fundamental: ¿cómo evitas que alguien copie sus monedas y las gaste dos veces? Los sistemas tradicionales lo resuelven con una autoridad central (bancos, PayPal) que rastrea quién posee qué. El avance de Bitcoin fue resolver esto sin ningún intermediario.&lt;/p>
&lt;p>La solución: un libro mayor compartido que todos pueden verificar pero nadie controla.&lt;/p>
&lt;h3 id="como-funciona">Cómo funciona
&lt;a class="heading-anchor" href="#como-funciona" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Bitcoin usa una blockchain: una cadena de bloques donde cada bloque contiene transacciones y enlaza al bloque anterior a través de hashes criptográficos.&lt;/p>
&lt;p>Una &lt;strong>función hash&lt;/strong> toma cualquier entrada y produce una huella digital de tamaño fijo. Cambia un bit de la entrada y la salida cambia por completo. Esto hace evidente cualquier manipulación. Bitcoin usa SHA-256, que produce una salida de 256 bits.&lt;/p>
&lt;p>Cada bloque contiene:&lt;/p>
&lt;ul>
&lt;li>Una lista de transacciones&lt;/li>
&lt;li>Un hash del encabezado del bloque anterior&lt;/li>
&lt;li>Una solución proof-of-work (más abajo)&lt;/li>
&lt;/ul>
&lt;p>Antes de entrar en un bloque, las transacciones esperan en el mempool. Los mineros seleccionan de este pool, priorizando las que pagan más comisiones. Puedes verlo en tiempo real en &lt;a rel="external" href="https://mempool.space/">mempool.space&lt;/a>.&lt;/p>
&lt;p>Cada nodo guarda una copia completa de la blockchain. No hay un solo servidor que hackear ni una base de datos central que corromper. Para cambiar el historial, tendrías que reescribir bloques en la mayoría de nodos del mundo.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Estructura del bloque&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Un bloque tiene dos partes: el &lt;strong>encabezado&lt;/strong> (80 bytes) y el &lt;strong>cuerpo&lt;/strong> (transacciones).&lt;/p>
&lt;p>El encabezado contiene:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Versión&lt;/strong>: Versión del protocolo&lt;/li>
&lt;li>&lt;strong>Hash del bloque anterior&lt;/strong>: Enlaza a la cadena&lt;/li>
&lt;li>&lt;strong>Raíz Merkle&lt;/strong>: Hash de todas las transacciones en el bloque&lt;/li>
&lt;li>&lt;strong>Marca de tiempo&lt;/strong>: Cuándo se creó el bloque&lt;/li>
&lt;li>&lt;strong>Objetivo de dificultad&lt;/strong>: Qué tan difícil era el puzzle&lt;/li>
&lt;li>&lt;strong>Nonce&lt;/strong>: La solución que encontraron los mineros&lt;/li>
&lt;/ul>
&lt;p>Los &lt;strong>árboles Merkle&lt;/strong> organizan las transacciones de forma eficiente. Cada transacción se hashea, luego los pares de hashes se combinan y hashean de nuevo, hasta llegar a un único hash raíz. Esto permite probar que una transacción existe en un bloque sin descargar todas las demás. Muy útil para wallets ligeras.&lt;/p>
&lt;p>El peso del bloque se mide en bytes virtuales (vB). El límite es 4 millones de unidades de peso, aproximadamente 1-1.5 MB de datos por bloque.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="transacciones-y-criptografia">Transacciones y criptografía
&lt;a class="heading-anchor" href="#transacciones-y-criptografia" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="el-modelo-utxo">El modelo UTXO
&lt;a class="heading-anchor" href="#el-modelo-utxo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Bitcoin no usa cuentas con saldos. En su lugar, rastrea &lt;strong>Salidas de Transacciones No Gastadas (UTXOs)&lt;/strong>. Piensa en ellas como monedas digitales de varios tamaños.&lt;/p>
&lt;p>Cuando recibes bitcoin, obtienes un UTXO. Cuando gastas, consumes UTXOs completos como entradas y creas nuevos como salidas. Si tienes un UTXO de 1 BTC y quieres enviar 0.3 BTC, gastas el UTXO entero y creas dos salidas: 0.3 BTC para el destinatario y unos 0.7 BTC de vuelta para ti (menos las comisiones).&lt;/p>
&lt;p>Tu “balance” es la suma de todos los UTXOs que puedes gastar.&lt;/p>
&lt;h3 id="criptografia-de-clave-publica">Criptografía de clave pública
&lt;a class="heading-anchor" href="#criptografia-de-clave-publica" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Las transacciones de Bitcoin usan criptografía de clave pública:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Clave privada&lt;/strong>: Un número secreto de 256 bits. Demuestra la propiedad.&lt;/li>
&lt;li>&lt;strong>Clave pública&lt;/strong>: Se deriva matemáticamente de la clave privada. Se comparte públicamente.&lt;/li>
&lt;/ul>
&lt;p>Cuando envías bitcoin, firmas la transacción con tu clave privada. Esta firma demuestra que posees los UTXOs sin revelar la clave privada. Cualquiera puede verificar la firma usando tu clave pública.&lt;/p>
&lt;h3 id="dinero-programable">Dinero programable
&lt;a class="heading-anchor" href="#dinero-programable" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Bitcoin no es solo efectivo digital. Tiene su propio lenguaje de programación llamado &lt;strong>Script&lt;/strong>. Cada transacción incluye un pequeño programa que define las condiciones para gastarla.&lt;/p>
&lt;p>La mayoría de transacciones usan scripts simples: “quien pueda demostrar que posee esta clave pública puede gastar estas monedas.” Pero Script permite mucho más: wallets multifirma que requieren varias claves, transacciones con bloqueo temporal que no pueden gastarse hasta cierta fecha, y condiciones complejas combinando múltiples requisitos.&lt;/p>
&lt;p>Esto convierte a Bitcoin en dinero programable. Para profundizar en Script y tipos de direcciones, mira &lt;a href="/es/blog/programmable-money/">Dinero Programable&lt;/a>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Criptografía de curva elíptica&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Bitcoin usa &lt;strong>ECDSA&lt;/strong> (Algoritmo de Firma Digital de Curva Elíptica) con la curva &lt;strong>secp256k1&lt;/strong>. Se eligió esta curva por su eficiencia y porque no la diseñó ninguna agencia gubernamental (a diferencia de las curvas NIST), lo que reduce preocupaciones sobre puertas traseras.&lt;/p>
&lt;p>Una clave privada es un entero aleatorio de 256 bits. La clave pública se deriva multiplicando ese número por un punto generador en la curva. Fácil de calcular en un sentido, prácticamente imposible de revertir.&lt;/p>
&lt;p>&lt;strong>La firma de transacciones&lt;/strong> implica:&lt;/p>
&lt;ol>
&lt;li>Hashear los datos de la transacción&lt;/li>
&lt;li>Crear una firma usando la clave privada&lt;/li>
&lt;li>Incluir la firma y clave pública en la transacción&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Las banderas SIGHASH&lt;/strong> controlan qué partes de una transacción cubre la firma:&lt;/p>
&lt;ul>
&lt;li>&lt;code>SIGHASH_ALL&lt;/code>: Firma todas las entradas y salidas (más común)&lt;/li>
&lt;li>&lt;code>SIGHASH_NONE&lt;/code>: Firma solo las entradas&lt;/li>
&lt;li>&lt;code>SIGHASH_SINGLE&lt;/code>: Firma una salida específica&lt;/li>
&lt;li>Estas pueden combinarse con &lt;code>ANYONECANPAY&lt;/code> para casos de uso avanzados&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/details>
&lt;h2 id="mineria-y-consenso">Minería y consenso
&lt;a class="heading-anchor" href="#mineria-y-consenso" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>¿Cómo se pone de acuerdo una red descentralizada sobre qué transacciones son válidas? Mediante minería proof-of-work.&lt;/p>
&lt;h3 id="el-puzzle">El puzzle
&lt;a class="heading-anchor" href="#el-puzzle" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Los mineros compiten por encontrar un número (el &lt;strong>nonce&lt;/strong>) que, combinado con el encabezado del bloque y hasheado, produce un resultado por debajo de un valor objetivo. Es como tirar dados hasta sacar un número menor que 100, pero con 2^256 resultados posibles.&lt;/p>
&lt;p>El trabajo es:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Difícil de encontrar&lt;/strong>: Requiere billones de intentos&lt;/li>
&lt;li>&lt;strong>Fácil de verificar&lt;/strong>: Una comprobación de hash prueba la solución&lt;/li>
&lt;/ul>
&lt;p>Esta asimetría es clave. Cualquiera puede verificar un bloque al instante, pero crearlo requiere trabajo computacional real.&lt;/p>
&lt;h3 id="por-que-importa">Por qué importa
&lt;a class="heading-anchor" href="#por-que-importa" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>La minería sirve para tres propósitos:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Asegura la red&lt;/strong>: Reescribir la historia significa rehacer todo el trabajo de hash&lt;/li>
&lt;li>&lt;strong>Emite nuevas monedas&lt;/strong>: Siguiendo un calendario predecible (halving cada 210.000 bloques)&lt;/li>
&lt;li>&lt;strong>Procesa transacciones&lt;/strong>: Incluyéndolas en el registro permanente&lt;/li>
&lt;/ol>
&lt;p>Cada 2016 bloques (unas 2 semanas), la red ajusta la dificultad para mantener tiempos de bloque de unos 10 minutos. ¿Se suma más hashpower? Los puzzles se vuelven más difíciles. ¿El hashpower baja? Los puzzles se vuelven más fáciles.&lt;/p>
&lt;p>Explora los pools de minería y hashrate en &lt;a rel="external" href="https://mempool.space/mining">mempool.space/mining&lt;/a>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Dificultad y teoría de juegos&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>&lt;strong>Cálculo de dificultad&lt;/strong>: El objetivo es un número de 256 bits. Un hash de bloque válido debe estar por debajo de este objetivo. Objetivo más bajo = puzzle más difícil. La red ajusta cada 2016 bloques según cuánto tardaron realmente esos bloques frente a los 20.160 minutos esperados.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/S9JGmA5_unY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>&lt;strong>Hashrate y seguridad&lt;/strong>: La seguridad de Bitcoin viene del coste de reescribir el historial. Con unos 500 EH/s (exahashes por segundo) de hashrate, atacar la red requeriría controlar la mayoría del hashpower. Eso supone miles de millones en hardware y electricidad, y además el ataque haría colapsar el valor del activo.&lt;/p>
&lt;p>&lt;strong>Incentivos económicos&lt;/strong>: Los mineros gastan recursos reales (electricidad, hardware). Solo obtienen beneficio si juegan según las reglas. Un minero que crea bloques inválidos desperdicia su trabajo porque los nodos los rechazan. Esto alinea el beneficio individual con la seguridad de la red.&lt;/p>
&lt;p>&lt;strong>Ataques del 51%&lt;/strong>: Si un atacante controlara la mayoría del hashpower, en teoría podría hacer doble gasto minando una cadena alternativa. Pero la economía hace esto irracional para grandes valores: el ataque destruye el valor de lo que intentas robar.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="direcciones-y-wallets">Direcciones y wallets
&lt;a class="heading-anchor" href="#direcciones-y-wallets" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Las direcciones de Bitcoin se derivan de las claves públicas. Han evolucionado diferentes formatos:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>P2PKH&lt;/strong>: Direcciones legacy que empiezan con “1”&lt;/li>
&lt;li>&lt;strong>P2SH&lt;/strong>: Direcciones script que empiezan con “3”&lt;/li>
&lt;li>&lt;strong>P2WPKH&lt;/strong>: Direcciones SegWit nativas que empiezan con “bc1q”&lt;/li>
&lt;li>&lt;strong>P2TR&lt;/strong>: Direcciones Taproot que empiezan con “bc1p”&lt;/li>
&lt;/ul>
&lt;p>Para detalles técnicos de cada tipo, ve &lt;a href="/es/blog/programmable-money/#common-bitcoin-address-types">Dinero Programable&lt;/a>.&lt;/p>
&lt;h3 id="wallets">Wallets
&lt;a class="heading-anchor" href="#wallets" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Una wallet gestiona tus claves y construye transacciones. No contiene tus monedas: las monedas existen en la blockchain. La wallet contiene las claves que demuestran que puedes gastarlas.&lt;/p>
&lt;p>&lt;strong>Wallets calientes&lt;/strong> se conectan a internet. Convenientes para uso diario, más vulnerables. Ejemplos: apps de móvil, extensiones de navegador.&lt;/p>
&lt;p>&lt;strong>Wallets frías&lt;/strong> permanecen offline. Más seguras para ahorros. Ejemplos: hardware wallets (Ledger, Trezor), paper wallets.&lt;/p>
&lt;h3 id="wallets-hd-y-frases-semilla">Wallets HD y frases semilla
&lt;a class="heading-anchor" href="#wallets-hd-y-frases-semilla" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Las wallets modernas son &lt;strong>Deterministas Jerárquicas (HD)&lt;/strong>. Una semilla maestra genera claves ilimitadas en una estructura de árbol. Haces backup de la semilla una vez y puedes recuperar todo.&lt;/p>
&lt;p>&lt;strong>BIP-39&lt;/strong> define la frase semilla de 12 o 24 palabras que usa la mayoría de wallets. Estas palabras codifican entropía que deriva todas tus claves. Pierdes la frase, pierdes el acceso. Cualquiera con la frase controla los fondos.&lt;/p>
&lt;blockquote>
&lt;p>Nunca almacenes frases semilla digitalmente. Escríbelas. Guárdalas de forma segura offline.&lt;/p>
&lt;/blockquote>
&lt;p>¿Cómo de grande es el espacio de claves de BIP-39 en realidad? He construido &lt;a rel="external" href="https://github.com/Chemaclass/seed-hunter">seed-hunter&lt;/a>, una herramienta educativa de código abierto en Go que intenta hacer fuerza bruta sobre una semilla de 12 palabras contra la red real de Bitcoin. Registra cada intento y muestra el progreso en vivo con ETAs que abarcan de 10²⁹ a 10³⁹ años. Un ladrón comprobando un billón de frases semilla por segundo desde el Big Bang habría completado el 0.000_000_008% de la búsqueda hasta ahora. La idea no es romper Bitcoin, sino hacer las matemáticas viscerales y obvias: la termodinámica, no solo la computación, prohíbe el ataque.&lt;/p>
&lt;h2 id="la-red">La red
&lt;a class="heading-anchor" href="#la-red" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Bitcoin es una red peer-to-peer, sin servidores centrales. Los nodos se conectan entre sí, comparten transacciones y bloques, y hacen cumplir las reglas de forma independiente.&lt;/p>
&lt;h3 id="tipos-de-nodos">Tipos de nodos
&lt;a class="heading-anchor" href="#tipos-de-nodos" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>&lt;strong>Nodos completos&lt;/strong> descargan y validan cada bloque y transacción. Hacen cumplir todas las reglas de consenso y no confían en nadie. Ejecutar un nodo completo significa verificar todo por ti mismo.&lt;/p>
&lt;p>&lt;strong>Clientes SPV (ligeros)&lt;/strong> solo descargan encabezados de bloque. Confían en que los mineros ya validaron las transacciones. Menos seguridad, pero funcionan en móviles y dispositivos de baja potencia.&lt;/p>
&lt;p>&lt;strong>Nodos de minería&lt;/strong> son nodos completos que también compiten por crear nuevos bloques.&lt;/p>
&lt;h3 id="como-se-propagan-las-transacciones">Cómo se propagan las transacciones
&lt;a class="heading-anchor" href="#como-se-propagan-las-transacciones" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Cuando transmites una transacción:&lt;/p>
&lt;ol>
&lt;li>Tu wallet la envía a los nodos conectados&lt;/li>
&lt;li>Cada nodo valida y reenvía a sus pares&lt;/li>
&lt;li>En segundos, la transacción alcanza la mayor parte de la red&lt;/li>
&lt;li>Los mineros la incluyen en sus bloques candidatos&lt;/li>
&lt;/ol>
&lt;p>Los bloques se propagan de forma similar. Cuando un minero encuentra un bloque válido, se extiende por la red en segundos.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Arquitectura de red&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>&lt;strong>Descubrimiento de pares&lt;/strong>: Los nodos se encuentran mediante semillas DNS (direcciones hardcodeadas que devuelven IPs de nodos activos) y compartiendo direcciones de pares con otros nodos conectados.&lt;/p>
&lt;p>&lt;strong>Protocolo gossip&lt;/strong>: La información se propaga mediante mensajes “inv” (inventario). Un nodo anuncia que tiene algo nuevo, y los pares lo solicitan si les interesa. Esto evita desperdiciar ancho de banda con datos duplicados.&lt;/p>
&lt;p>&lt;strong>Bloques compactos&lt;/strong> (BIP-152) aceleran la propagación de bloques. Como los nodos ya tienen la mayoría de transacciones en su mempool, los bloques pueden transmitirse solo como el encabezado más IDs cortos de transacciones.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="seguridad-y-confirmaciones">Seguridad y confirmaciones
&lt;a class="heading-anchor" href="#seguridad-y-confirmaciones" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="por-que-importan-las-confirmaciones">Por qué importan las confirmaciones
&lt;a class="heading-anchor" href="#por-que-importan-las-confirmaciones" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Cuando una transacción se incluye en un bloque, tiene 1 confirmación. Cada bloque posterior añade otra confirmación.&lt;/p>
&lt;p>Más confirmaciones = más difícil de revertir. Para deshacer una transacción confirmada, un atacante tendría que minar una cadena alternativa más rápido que la red honesta. Cada bloque hace esto exponencialmente más difícil.&lt;/p>
&lt;p>&lt;strong>Guías generales:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>0 confirmaciones: Transacción transmitida pero aún no en un bloque. Puede ser doble gastada.&lt;/li>
&lt;li>1 confirmación: En un bloque. La reversión requiere hashpower significativo.&lt;/li>
&lt;li>6 confirmaciones: Estándar para grandes cantidades. Reversión prácticamente imposible.&lt;/li>
&lt;/ul>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Seguridad de confirmaciones&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>El whitepaper de Satoshi incluye el cálculo de probabilidad. Con un atacante que controla una fracción &lt;code>q&lt;/code> del hashpower:&lt;/p>
&lt;ul>
&lt;li>Si &lt;code>q &amp;lt; 0.5&lt;/code>: La probabilidad de alcanzar disminuye exponencialmente con cada confirmación&lt;/li>
&lt;li>A 6 confirmaciones con &lt;code>q = 0.1&lt;/code> (10% hashpower): Probabilidad de éxito &amp;lt; 0.1%&lt;/li>
&lt;/ul>
&lt;p>La regla de “6 confirmaciones” asume un atacante bien financiado con hashpower sustancial pero minoritario. Para transacciones más pequeñas, muchas veces bastan menos confirmaciones.&lt;/p>
&lt;p>&lt;strong>La finalidad en Bitcoin&lt;/strong> es probabilística, no absoluta. Pero tras suficientes confirmaciones, la probabilidad de reversión se acerca a cero para cualquier atacante realista.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="alineacion-de-incentivos">Alineación de incentivos
&lt;a class="heading-anchor" href="#alineacion-de-incentivos" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Bitcoin no es solo tecnología ingeniosa. Es un sistema donde el interés propio de cada participante fortalece la red.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Mineros&lt;/strong> invierten en hardware y electricidad. Solo obtienen beneficio produciendo bloques válidos. Hacer trampas desperdicia su inversión porque los nodos rechazan bloques inválidos al instante.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Nodos&lt;/strong> hacen cumplir las reglas para proteger sus propios fondos. Un operador de nodo que acepta transacciones inválidas devalúa su propio bitcoin. El interés propio los convierte en validadores honestos.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Usuarios&lt;/strong> pagan comisiones para que sus transacciones se procesen. Comisiones más altas significan confirmación más rápida. Esto crea demanda de espacio de bloque y financia la seguridad de la red.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Desarrolladores&lt;/strong> contribuyen a software que ellos mismos usan. Los bugs perjudican sus propias tenencias. Las mejoras benefician a todos, incluyéndoles.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Holders&lt;/strong> se benefician de la seguridad y adopción de la red. Cuanto más seguro y útil se vuelve Bitcoin, más valiosos son sus fondos. Tienen incentivos para apoyar el ecosistema.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Sin coordinador central. Sin necesidad de confianza. Todos actúan en su propio interés, y el sistema beneficia a todos.&lt;/p>
&lt;blockquote>
&lt;p>“No confíes, verifica.” Cualquiera puede ejecutar un nodo y verificar cada transacción, cada bloque, cada regla. No hace falta confiar en bancos, gobiernos, ni siquiera en otros usuarios de Bitcoin. Las matemáticas se demuestran solas.&lt;/p>
&lt;/blockquote>
&lt;h2 id="escalabilidad-lightning-network">Escalabilidad: Lightning Network
&lt;a class="heading-anchor" href="#escalabilidad-lightning-network" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>La capa base de Bitcoin procesa unas 7 transacciones por segundo. Es así por diseño: mantener la descentralización requiere bloques lo suficientemente pequeños para que cualquiera pueda verificar. Pero esto limita cuántas transacciones puede manejar.&lt;/p>
&lt;p>Lightning Network resuelve esto con una segunda capa construida sobre Bitcoin. Permite:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Pagos instantáneos&lt;/strong>: Sin esperar confirmaciones de bloque&lt;/li>
&lt;li>&lt;strong>Comisiones casi nulas&lt;/strong>: Fracciones de céntimo&lt;/li>
&lt;li>&lt;strong>Alta capacidad&lt;/strong>: Millones de transacciones por segundo&lt;/li>
&lt;/ul>
&lt;p>Lightning funciona abriendo “canales de pago” entre partes. Las transacciones dentro de un canal ocurren off-chain, al instante. Solo la apertura y cierre de canales requieren transacciones on-chain. Puedes visualizar la topología de la red y estadísticas en &lt;a rel="external" href="https://mempool.space/lightning">mempool.space/lightning&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>La capa base de Bitcoin proporciona seguridad y liquidación final. Lightning proporciona velocidad y escala. Diferentes herramientas para diferentes trabajos.&lt;/p>
&lt;/blockquote>
&lt;p>Si quieres ejecutar tu propio nodo Lightning y tomar control total de tus pagos, escribí una guía sobre cómo &lt;a href="/es/blog/run-your-ln-node/">Ejecutar tu nodo LN en una Raspberry Pi&lt;/a>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Cómo funciona Lightning&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Los canales de pago usan direcciones &lt;strong>multifirma 2-de-2&lt;/strong>. Ambas partes deben firmar para mover fondos. Esto crea una cuenta compartida de la que ninguna puede robar.&lt;/p>
&lt;p>&lt;strong>HTLCs (Contratos Hash Time-Locked)&lt;/strong> permiten pagos multi-salto. El mecanismo:&lt;/p>
&lt;ol>
&lt;li>Alice quiere pagar a Carol a través de Bob&lt;/li>
&lt;li>Carol genera un secreto y da a Alice el hash&lt;/li>
&lt;li>Alice crea un HTLC: “Bob recibe el pago si revela el secreto en 24 horas”&lt;/li>
&lt;li>Bob crea un HTLC similar con Carol&lt;/li>
&lt;li>Carol revela el secreto a Bob, reclamando el pago&lt;/li>
&lt;li>Bob usa el mismo secreto para reclamar de Alice&lt;/li>
&lt;/ol>
&lt;p>Si alguien no coopera, el timelock expira y los fondos vuelven. El secreto viaja hacia atrás, los pagos viajan hacia adelante.&lt;/p>
&lt;p>&lt;strong>Watchtowers&lt;/strong> monitorean la blockchain buscando intentos de trampa. Si tu contraparte intenta transmitir un estado antiguo del canal, el watchtower puede penalizarla, incluso mientras estás offline.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="el-panorama-general">El panorama general
&lt;a class="heading-anchor" href="#el-panorama-general" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Lo que hace notable a Bitcoin no es ningún componente individual, sino cómo encajan todos en un sistema que se refuerza a sí mismo.&lt;/p>
&lt;p>La criptografía demuestra la propiedad sin autoridades de confianza. El proof-of-work hace costoso reescribir el historial. Los incentivos económicos convierten la codicia individual en seguridad colectiva. La descentralización elimina puntos únicos de fallo. Y la oferta fija crea escasez digital por primera vez en la historia.&lt;/p>
&lt;p>Cada pieza sostiene a las demás. Quita una, y el sistema se debilita. Juntas, crean algo que nunca había existido: dinero que no puede inflarse, transacciones que no pueden censurarse, y propiedad que no puede confiscarse.&lt;/p>
&lt;blockquote>
&lt;p>Sin bancos. Sin gobiernos. Sin terceros de confianza. Solo matemáticas, código, y una red global de nodos que hacen cumplir las mismas reglas.&lt;/p>
&lt;/blockquote>
&lt;p>Si eso te importa o no depende de dónde vivas y cuánto confíes en tus instituciones. Pero la opción ya existe. Y nadie puede quitártela.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Madrigueras&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>La profundidad técnica de Bitcoin va mucho más allá de lo que cabe en un post. Aquí hay temas que vale la pena explorar si quieres profundizar:&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://bitcoinops.org/en/topics/segregated-witness/">SegWit&lt;/a>&lt;/strong> (Testigo Segregado) fue la actualización de Bitcoin de 2017 que movió los datos de firma fuera de la estructura principal de la transacción. Arregló la maleabilidad de transacciones (un bug que impedía Lightning), introdujo el peso de bloque para un uso más eficiente del espacio, y lo hizo todo manteniendo compatibilidad con nodos antiguos.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://bitcoinops.org/en/topics/taproot/">Taproot y Schnorr&lt;/a>&lt;/strong> llegaron en 2021, actualizando la criptografía de Bitcoin. Las firmas Schnorr son más pequeñas y permiten agregación (varias firmas se convierten en una). Taproot hace que las condiciones de gasto complejas se vean idénticas a los pagos simples on-chain, mejorando tanto la privacidad como la eficiencia.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork">Soft forks vs hard forks&lt;/a>&lt;/strong>: ¿Cómo se actualiza Bitcoin sin una autoridad central? Los soft forks añaden nuevas reglas que los nodos antiguos aún aceptan. Los hard forks cambian las reglas de formas que los nodos antiguos rechazan. Entender esta distinción explica por qué Bitcoin evoluciona lentamente y por qué los cambios controvertidos son raros.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://mempool.space/docs/faq#what-is-rbf">Mecánica de comisiones&lt;/a>&lt;/strong>: El mercado de comisiones tiene más matices que “paga más, confirma más rápido”. Replace-By-Fee (RBF) te permite aumentar la comisión de una transacción atascada. Child-Pays-For-Parent (CPFP) permite a los destinatarios acelerar pagos entrantes gastándolos con comisiones altas.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://bitcoinops.org/en/topics/timelocks/">Timelocks&lt;/a>&lt;/strong>: Bitcoin puede bloquear fondos hasta que se cumplan ciertas condiciones. &lt;code>CLTV&lt;/code> (CheckLockTimeVerify) bloquea hasta una altura de bloque o marca de tiempo específica. &lt;code>CSV&lt;/code> (CheckSequenceVerify) bloquea por un tiempo relativo tras la confirmación. Estas primitivas permiten canales Lightning, esquemas de herencia e intercambios atómicos.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://learnmeabitcoin.com/technical/mining/coinbase-transaction/">Transacciones coinbase&lt;/a>&lt;/strong>: La única forma en que bitcoin nuevo entra en circulación. Cada bloque comienza con una transacción especial que paga al minero la recompensa del bloque más todas las comisiones. Estas monedas recién acuñadas no pueden gastarse durante 100 bloques, una regla que protege contra reorganizaciones de la cadena.&lt;/p>
&lt;p>Cuanto más profundo vas, más encuentras.&lt;/p>
&lt;/div>
&lt;/details></content></entry><entry xml:lang="es"><title>Ejecuta tu Nodo LN en una Raspberry Pi</title><subtitle>Toma el control total de tus pagos Lightning con Alby Hub</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="tutorial" scheme="https://chemaclass.com/tags/tutorial/" label="Tutorial"/><published>2025-02-17T00:00:00+00:00</published><updated>2025-02-17T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/run-your-ln-node/"/><id>https://chemaclass.com/es/blog/run-your-ln-node/</id><summary type="html">En esta guía te muestro cómo configurar un nodo de Lightning Network (LN) con Alby Hub en una Raspberry Pi. Tendrás control total sobre tu nodo. Alby Hub ofrece una versión DIY gratuita para una wallet Lightning auto-custodiada: tus fondos son tuyos, y el código es 100% open-source.</summary><content type="html">&lt;p>En esta guía te muestro cómo configurar un nodo de Lightning Network (LN) con Alby Hub en una Raspberry Pi. Tendrás control total sobre tu nodo. Alby Hub ofrece una versión DIY gratuita para una wallet Lightning auto-custodiada: tus fondos son tuyos, y el código es 100% open-source.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Soporta direcciones Lightning y Nostr, conectando ambos ecosistemas sin problemas. Se integra con docenas de aplicaciones Bitcoin. Con los servicios LSP (Lightning Service Provider) integrados y la app Alby Go, gestionar tu nodo desde el móvil es muy fácil.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>Importante: Esto NO es un minero de Bitcoin ni un nodo completo. Es simplemente una Raspberry Pi ejecutándose en una tarjeta SD eficiente en energía y de bajo coste.&lt;/p>
&lt;/blockquote>
&lt;p>⚠️ &lt;strong>Aviso&lt;/strong> ⚠️&lt;/p>
&lt;ul>
&lt;li>Asumo que &lt;strong>entiendes los conceptos fundamentales de &lt;a rel="external" href="https://bitcoin.org/">Bitcoin&lt;/a>&lt;/strong>.&lt;/li>
&lt;li>Asumo que sabes &lt;strong>cómo funciona la &lt;a rel="external" href="https://lightning.network/">Lightning Network&lt;/a> (LN)&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>De todos modos, he incluido un breve repaso de los fundamentos de Lightning Network abajo.&lt;/p>
&lt;h2 id="que-es-la-lightning-network">¿Qué es la Lightning Network?
&lt;a class="heading-anchor" href="#que-es-la-lightning-network" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>La LN es una capa construida sobre Bitcoin que permite transacciones rápidas, baratas y escalables.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>¿Por qué?&lt;/strong> La capa base de Bitcoin es segura pero lenta y cara para pagos pequeños, por los límites de bloque y las comisiones.&lt;/li>
&lt;li>&lt;strong>¿Cómo?&lt;/strong> LN usa canales de pago fuera de la cadena. Puedes enviar pagos al instante sin esperar confirmaciones en la blockchain.&lt;/li>
&lt;/ul>
&lt;h3 id="conceptos-clave">Conceptos clave
&lt;a class="heading-anchor" href="#conceptos-clave" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Canales de pago&lt;/strong>: Abres un canal con una transacción on-chain. Después puedes enviar pagos instantáneos e ilimitados dentro de ese canal.&lt;/li>
&lt;li>&lt;strong>Enrutamiento&lt;/strong>: No necesitas canal directo con todos. Los pagos se enrutan a través de múltiples nodos conectados.&lt;/li>
&lt;li>&lt;strong>Comisiones bajas&lt;/strong>: Solo abrir y cerrar canales requiere comisiones on-chain. El resto cuesta fracciones de céntimo.&lt;/li>
&lt;/ul>
&lt;h3 id="objetivo">Objetivo
&lt;a class="heading-anchor" href="#objetivo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>LN hace Bitcoin usable para el día a día. Puedes comprar un café sin esperar 10 minutos por confirmaciones.&lt;/p>
&lt;blockquote>
&lt;p>En resumen: Lightning Network = Pagos Bitcoin instantáneos + baratos, asegurados por la blockchain de Bitcoin.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="configurando-alby-hub">Configurando Alby Hub
&lt;a class="heading-anchor" href="#configurando-alby-hub" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>&lt;a rel="external" href="https://albyhub.com/">Alby Hub&lt;/a> es un nodo de Lightning Network gratuito, open-source (&lt;a rel="external" href="https://guides.getalby.com/user-guide/alby-account-and-browser-extension/alby-hub/faq-alby-hub/should-i-open-a-private-or-public-channel">idealmente privado&lt;/a>).&lt;/p>
&lt;h3 id="requisitos">Requisitos
&lt;a class="heading-anchor" href="#requisitos" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Antes de empezar, vas a necesitar las siguientes cosas:&lt;/p>
&lt;ul>
&lt;li>Un ordenador con windows, mac o linux&lt;/li>
&lt;li>&lt;strong>Raspberry Pi 4&lt;/strong> o &lt;strong>5&lt;/strong> (Para &lt;a rel="external" href="https://guides.getalby.com/user-guide/alby-account-and-browser-extension/hidden-archives/raspberry-pi-zero">&lt;strong>Zero 2W&lt;/strong> mira este tutorial!&lt;/a>)
&lt;ul>
&lt;li>&lt;em>En este tutorial, estoy usando una raspi-4b (~60€)&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El cargador para tu raspi &lt;em>(~10€)&lt;/em>&lt;/li>
&lt;li>Tarjeta de memoria SD (32/64gb) &lt;em>(~10€)&lt;/em>&lt;/li>
&lt;li>Adaptador de tarjeta SD a USB (para flashear el SO en la raspi) &lt;em>(~10€)&lt;/em>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2025-02-17/requirements.webp" alt="tutorial" />&lt;/p>
&lt;h3 id="pasos-de-instalacion">Pasos de instalación
&lt;a class="heading-anchor" href="#pasos-de-instalacion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;h4 id="1-flashear-un-kernel-linux-en-la-tarjeta-sd">1. Flashear un kernel Linux en la tarjeta SD
&lt;a class="heading-anchor" href="#1-flashear-un-kernel-linux-en-la-tarjeta-sd" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;blockquote>
&lt;p>Sugerencia: Puedes usar &lt;a rel="external" href="https://www.raspberrypi.com/software/">RPI imager&lt;/a> en tu ordenador.
Úsalo para flashear el SO raspi recomendado para ti&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-1.jpg" alt="tutorial" />&lt;/p>
&lt;p>En Storage verás tu tarjeta SD después de insertarla en tu portátil.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-2.jpg" alt="tutorial" />&lt;/p>
&lt;p>Una vez hagas clic en “Next”, verás diferentes ajustes. Haz clic en &lt;strong>Edit Settings&lt;/strong>&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-3.jpg" alt="tutorial" />&lt;/p>
&lt;p>En &lt;code>Settings &amp;gt; General&lt;/code>: establece tu hostname, el nombre de usuario y contraseña para tu usuario admin.
Asegúrate de habilitar tu WIFI, de lo contrario tendrás que conectarla al router con un RJ-45.
&lt;span id="hostname-setup">&lt;/span>&lt;/p>
&lt;blockquote>
&lt;p>Para este tutorial, estoy usando &lt;code>testhub&lt;/code> como hostname, puedes usar &lt;code>albyhub&lt;/code> o lo que prefieras.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-4.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;span id="pi-enable-ssh">&lt;/span>
En &lt;code>Settings &amp;gt; Services&lt;/code>: asegúrate de que el acceso vía SSH está habilitado. Lo vamos a necesitar para instalar Alby Hub.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-5.jpg" alt="tutorial" />&lt;/p>
&lt;p>Haz clic en “Save” y haz clic en “Yes” para iniciar la instalación.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-6.jpg" alt="tutorial" />&lt;/p>
&lt;p>Verás una confirmación. Haz clic en “Yes”. Tardará ~10 mins…&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-7.jpg" alt="tutorial" />&lt;/p>
&lt;p>¡Ahora tenemos la SD con un kernel linux fresco listo para usar!&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-8.jpg" alt="tutorial" />&lt;/p>
&lt;h4 id="2-insertar-la-sd-en-la-raspi">2. Insertar la SD en la raspi
&lt;a class="heading-anchor" href="#2-insertar-la-sd-en-la-raspi" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;p>Extrae la SD del portátil e insértala en la raspi primero.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-9.jpg" alt="tutorial" />&lt;/p>
&lt;p>Una vez insertada la SD, conecta el cable de alimentación. Se encenderá automáticamente en cuanto la conectes.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-10.jpg" alt="tutorial" />&lt;/p>
&lt;h4 id="3-instalacion-de-alby-hub">3. Instalación de Alby Hub
&lt;a class="heading-anchor" href="#3-instalacion-de-alby-hub" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;p>Tardará ~5mins desde que la encendiste para poder acceder a ella. ¿Cómo puedes asegurarte de que está viva? Abre la terminal y haz ping al hostname que definiste mientras flasheabas la SD en &lt;a href="/es/blog/run-your-ln-node/#hostname-setup">Settings &amp;gt; General&lt;/a>, recuerda que terminaba con &lt;code>.local&lt;/code>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">ping&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> testhub.local&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Es normal si no obtienes respuesta al principio… hasta que la obtienes.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-11.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;span id="pi-install-alby-hub">&lt;/span>
Ahora puedes &lt;strong>instalar Alby Hub&lt;/strong> en tu raspi &lt;strong>usando la conexión SSH&lt;/strong> que &lt;a href="/es/blog/run-your-ln-node/#pi-enable-ssh">habilitaste antes&lt;/a>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">#&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Código fuente: https://github.com/getAlby/hub/tree/master/scripts/pi-aarch64&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">ssh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> testhub@testhub.local&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">/bin/bash -c &amp;quot;$(curl -fsSL https://getalby.com/install/hub/pi-aarch64-install.sh)&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Se te pedirá que escribas la palabra “yes”; escríbela.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-12.jpg" alt="tutorial" />&lt;/p>
&lt;p>Luego, se te pedirá que introduzcas tu contraseña. Introduce la contraseña que elegiste en &lt;a href="/es/blog/run-your-ln-node/#hostname-setup">Settings &amp;gt; General&lt;/a> para el nombre de usuario.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-13.jpg" alt="tutorial" />&lt;/p>
&lt;h4 id="4-configuracion-de-alby-hub">4. Configuración de Alby Hub
&lt;a class="heading-anchor" href="#4-configuracion-de-alby-hub" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;p>Espera otros 2-3 mins y visita tu host: &lt;a rel="external" href="http://testhub.local/">http://testhub.local/&lt;/a>&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-14.jpg" alt="tutorial" />&lt;/p>
&lt;p>Tu Alby hub ya está funcionando. ¡Vamos a conectarlo a tu cuenta GetAlby!&lt;/p>
&lt;hr />
&lt;h2 id="crear-una-cuenta-getalby">Crear una cuenta GetAlby
&lt;a class="heading-anchor" href="#crear-una-cuenta-getalby" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>🔗 &lt;a rel="external" href="https://getalby.com/">getalby.com&lt;/a>&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-15.jpg" alt="tutorial" />&lt;/p>
&lt;hr />
&lt;h2 id="conectando-getalby-con-alby-hub">Conectando GetAlby con Alby Hub
&lt;a class="heading-anchor" href="#conectando-getalby-con-alby-hub" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Creé una cuenta llamada testhub.&lt;/p>
&lt;p>&lt;strong>Izquierda&lt;/strong>: la cuenta GetAlby. &lt;strong>Derecha&lt;/strong>: el nodo en la raspi.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-16.jpg" alt="tutorial" />&lt;/p>
&lt;p>Haz clic en “&lt;strong>Connect Now&lt;/strong>”.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-17.jpg" alt="tutorial" />&lt;/p>
&lt;p>Haz clic en “&lt;strong>Request Authorization Code&lt;/strong>”.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-18.jpg" alt="tutorial" />&lt;/p>
&lt;p>Obtienes el código de autorización (&lt;strong>izquierda&lt;/strong>) que necesitas insertar en tu configuración (&lt;strong>derecha&lt;/strong>).&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-19.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;span id="alby-hub-password">&lt;/span>
Crea una &lt;strong>Contraseña&lt;/strong> para tu Alby Hub instalado en tu raspi. Puede ser diferente de la contraseña que configuraste para tu usuario root en la raspi misma.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-20.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-21.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-22.jpg" alt="tutorial" />&lt;/p>
&lt;p>Ahora es momento de &lt;strong>Vincular tu Cuenta Alby&lt;/strong>&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-23.jpg" alt="tutorial" />&lt;/p>
&lt;p>A menos que especifiques lo contrario, establece el “Budget renewal: &lt;em>Monthly 1M sats&lt;/em>” por defecto.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-24.jpg" alt="tutorial" />
&lt;img src="/images/blog/2025-02-17/tuto-25.jpg" alt="tutorial" />&lt;/p>
&lt;hr />
&lt;h2 id="abriendo-canales-lightning">Abriendo canales Lightning
&lt;a class="heading-anchor" href="#abriendo-canales-lightning" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Recomiendo seguir los &lt;strong>Pasos Iniciales&lt;/strong> para configurar tu Alby Hub.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-27.jpg" alt="tutorial" />&lt;/p>
&lt;p>Abramos el primer canal.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-28.jpg" alt="tutorial" />&lt;/p>
&lt;p>Necesitas pagar ~$20 en sats para abrir un canal de &lt;em>&lt;strong>liquidez entrante&lt;/strong>&lt;/em> de 1M sats.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-29.jpg" alt="tutorial" />&lt;/p>
&lt;p>Después del pago, verás el canal abierto. Puede tardar un par de minutos hasta que la &lt;strong>&lt;em>transacción de financiación&lt;/em>&lt;/strong> sea minada en el siguiente bloque.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-30.jpg" alt="tutorial" />&lt;/p>
&lt;hr />
&lt;h2 id="recibiendo-sats">Recibiendo Sats
&lt;a class="heading-anchor" href="#recibiendo-sats" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Puedes recibir sats usando tu Dirección LN.&lt;/p>
&lt;p>&lt;strong>Izquierda&lt;/strong>: Página pública vinculada a tu &lt;a rel="external" href="https://getalby.com/p/chemaclass">nodo&lt;/a>.
&lt;strong>Derecha&lt;/strong>: Página privada de tu Alby Hub.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-33.jpg" alt="tutorial" />&lt;/p>
&lt;blockquote>
&lt;p>Opcional: Puedes añadir fondos ln a tu wallet usando los servicios de terceros de GetAlby: &lt;a rel="external" href="https://getalby.com/topup">getalby.com/topup&lt;/a> - ten en cuenta el KYC…&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="usando-tus-sats">Usando tus Sats
&lt;a class="heading-anchor" href="#usando-tus-sats" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Después de eso, podrás usarlos a través de la &lt;a rel="external" href="https://getalby.com/">Extensión Alby&lt;/a> o &lt;a rel="external" href="https://albygo.com/">AlbyGo&lt;/a>.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-31.jpg" alt="tutorial" />&lt;/p>
&lt;p>Tu nodo es la fuente de verdad. Conecta estas apps y podrás usar tus sats en cualquier plataforma sin problemas.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-32.jpg" alt="tutorial" />&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Aviso&lt;/strong>: la dirección LN testhub fue creada solo para propósitos de testing y tutorial. Mi dirección real es &lt;a rel="external" href="https://getalby.com/p/chemaclass">chemaclass&lt;/a> ;)&lt;/p>
&lt;/blockquote>
&lt;h2 id="mantenimiento-y-solucion-de-problemas">Mantenimiento y solución de problemas
&lt;a class="heading-anchor" href="#mantenimiento-y-solucion-de-problemas" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="actualizando-tu-nodo">Actualizando tu nodo
&lt;a class="heading-anchor" href="#actualizando-tu-nodo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Como en la instalación, hay un script para actualizar tu nodo. Lo encuentras en el repositorio: &lt;a rel="external" href="https://github.com/getAlby/hub/tree/master/scripts/pi-aarch64">GitHub - Script de actualización Alby Hub&lt;/a>&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">ssh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> testhub@testhub.local&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">/bin/bash -c &amp;quot;$(curl -fsSL https://getalby.com/install/hub/pi-aarch64-update.sh)&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="manejando-cortes-de-energia">Manejando cortes de energía
&lt;a class="heading-anchor" href="#manejando-cortes-de-energia" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Si se va la luz, la Raspberry Pi se apaga. Cuando vuelva, se reinicia sola. Alby Hub te pedirá la contraseña que configuraste antes.&lt;/p>
&lt;hr />
&lt;p>&lt;strong>Enlaces relacionados&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://guides.getalby.com/">GetAlby - Guía de usuario&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://guides.getalby.com/user-guide/alby-account-and-browser-extension/hidden-archives/raspberry-pi-zero">Instalando Alby Hub en una Raspberry Zero&lt;/a>&lt;/li>
&lt;/ul></content></entry></feed>