Quizás no logré asustarte lo suficiente como para hacerte renunciar a esta loca idea de aceptar pagos en bitcoins. Bueno, entonces tengo otra porción de dolor de cabeza para ti.
Inicio de revisión para desarrolladores AQUÍ
¡Cartera, cartera! ¿Qué billetera?
Para organizar la recepción de bitcoins en el sitio, como no es muy difícil de adivinar, necesitaremos una billetera. Además, no nos conviene ni uno de hardware, como Trezor o KeepKey, ni uno de escritorio, como el ortodoxo Bitcoin-Qt. Solo implementación de servidor, solo incondicional. El incondicional será bitcoind, el demonio bitcoin de referencia del equipo central de bitcoin.
Una pequeña digresión (o una advertencia, como prefieras): lo que se describe a continuación supone que tienes experiencia interactuando con la línea de comandos de sistemas operativos tipo UNIX (Linux, FreeBSD, MacOSX), tienes al menos una vaga idea de qué son los scripts bash (no un libro de citas, sino un shell de línea de comandos), tienes experiencia instalando paquetes de software al menos en el nivel Copiar y Pegar y, probablemente, hablas algún lenguaje de programación.
Instalación El funcionamiento del demonio bitcoind se describe detalladamente en el sitio web oficial bitcoin core. Si estás interesado en este proceso, o algo no te funciona, bienvenido a los comentarios, si hay suficientes personas interesadas, cubriré este tema con más detalle. Aquí hay una breve hoja de trucos sobre cómo instalar bitcoind para uno de los sistemas operativos de servidor más comunes: Ubuntu Linux:
#agregar un repositorio:
#!IMPORTANTE: la instalación de paquetes requiere derechos de superusuario
sudo apt-add-repository ppa:bitcoin/bitcoin
# Le pedimos cortésmente al sistema que actualice la lista de paquetes que conoce:
sudo apt-obtener actualización
# Y finalmente la magia:
sudo apt-get instalar bitcoind
Después de ejecutar con éxito los comandos anteriores, el demonio bitcoin que necesitamos para futuras manipulaciones estará firmemente establecido en su servidor Linux. Es importante recordar que la instalación en sí aún no nos da la oportunidad de enviar y recibir monedas.
¡¡Los demonios están amurallados!!
Ahora tenemos que decidir en qué modo lanzaremos nuestro demonio. Es lógico preguntar: ¿qué son exactamente? Y vienen en tres tipos principales.
El primero es en realidad combate. Si su tío fallecido prematuramente resultó ser el poseedor secreto de una riqueza incalculable en bitcoins, puede comenzar de manera segura en modo combate y realizar todos los experimentos con dinero real...
Nosotros, la gente más sencilla, consideraremos primero otros dos modos. Para ser completamente preciso, sería más correcto hablar de con qué redes funcionará nuestro servicio. Ese mismo modo de combate es el mainnet, es decir, la red principal por la que viajan bitcoins muy reales y con todos los problemas consiguientes a la vez.
El segundo modo, más suave para desarrolladores jóvenes e inexpertos estestnet: por el nombre es fácil adivinar que la red es de prueba. Si ya tuvo suficiente dolor de cabeza para empezar, puede detenerse allí. La red de prueba es "casi como la real". Necesitará una conexión a Internet, los mineros también confirmarán las transacciones, pero el tiempo para formar un bloque en la red de prueba es mucho más corto. Y, por supuesto, las monedas de prueba no tienen ningún peso financiero. Si busca en Internet, puede encontrar una cantidad considerable de sitios que proporcionan monedas de prueba para uso temporal (en la comunidad se considera una buena forma devolver las monedas de prueba después de su uso).
Si eres un completo recluso o no deseas descargar una cadena de bloques de prueba sin sentido, entonces existe una tercera forma, la más interesante y, en mi opinión, la más conveniente para el desarrollo local: regtest (Modo de prueba de regresióne): esencialmente creas tu propio pequeño bitcoin. Por supuesto, sólo usted verá sus transacciones, pero podrá admirar la considerable suma de 100.000 BTC en su billetera y gastarla a diestra y siniestra. De hecho, tienes acceso a cualquier velocidad de transacción, cualquier monto y, por supuesto, puedes observar el comportamiento del software de la misma manera que en una red de combate, pero de forma completamente gratuita y mucho más rápida.
Si decide utilizar la red de prueba testnet, la configuración diferirá poco de la configuración de un nodo completo normal. Lo primero que debe hacer después de instalar el demonio bitcoind antes de ejecutarlo es crear un archivo de configuración. En el directorio de inicio de su máquina Linux, ejecute el comando mkdir -p ~/.bitcoin; aquí es donde bitcoind buscará el archivo de configuración y creará el archivo bitcoin allí...conf que contiene las líneas:
# permitir el acceso mediante JSON-RPC servidor=1 # además, necesitaremos un usuario que envíe comandos al demonio rpcuser=nombre de usuario rpccontraseña=contraseña de usuario # y especifique la red de prueba testnet red de prueba=1
Si estás utilizando un sistema operativo distinto a Linux, la ubicación del archivo de configuración puede ser diferente:
Windows: %APPDATA%\Bitcoin
OSX: $HOME/Library/Application Support/Bitcoin/
Linux/FreeBSD: $HOME/.bitcoin/
Cuando todo esté listo, iniciamos el demonio con el Comando bitcoind -daemon y espere un par de minutos. Ahora podemos comprobar lo que hemos hecho. Ejecute el comando bitcoin-cli getwalletinfo y observe el resultado. Debería verse así:
{
"resultado": {
"walletname": "wallet.dat",
"versión de billetera": 159900,
"saldo": 0.00000000,
"saldo_no confirmado": 0.00000000,
"equilibrio_inmaduro": 0.00000000,
"txcount": 0,
"keypoololdest": 1528398419,
"tamaño de grupo de claves": 981,
"keypoolsize_hd_internal": 1000,
"desbloqueado_hasta": 0,
"paytxfee": 0.00000000,
"hdmasterkeyid": "a721caa39233676ccd3dc0509d0b93a6bc55fb52"
},
"error": nulo,
"identificación": nulo
}
No importa lo que signifique todo todavía. Es importante que el resultado contenga información sobre el estado del nodo completo recién creado. Ahora comienza la parte divertida: el proceso de sincronización con la red.
Para la red principal puede llevar un par de días, pero testnet es mucho más compacto. Y dependiendo de la velocidad de Internet, tardará hasta varias horas. Ejecutamos el comando bitcoin-cli getnetworkinfo y estudiamos el resultado. Nos interesa la línea "conexiones"; debe ser distinto de cero. Este es un parámetro que le indica cuántas conexiones tiene su bitcoind a nodos remotos. Si por alguna razón aparece un orgulloso "0", algo salió mal. Miramos el archivo .bitcoin/debug.log e intentamos descubrir qué es exactamente. En el próximo artículo veremos con más detalle cómo recolectar su Bitcoin personal en una máquina separada, es decir, cómo usar regtest (modo de prueba de regresión).
Mientras tanto, intentemos hacer algo más o menos útil en el nodo resultante. Inmediatamente surge la pregunta: no tenemos nada parecido a una interfaz de billetera. ¿Cómo podemos obtener una dirección, enviar fondos y ver el saldo?
Ejecute el comando
bitcoin-cli getnewaddress
En respuesta recibiremos algo como esto: muMKs9cCCfdq5mV7mnffuLLFNqgFR33nNB. Esta es nuestra nueva dirección en la red testnet... Es diferente del habitual, lo cual es bueno porque nadie podrá enviar accidentalmente monedas reales a la dirección de prueba. Pero ¿qué nos aporta esta dirección? Por ejemplo, podemos obtener algunas monedas de prueba de sitios como los que se enumeran a continuación:
https://testnet.coinfaucet.eu/en/
https://kuttler.eu/en/bitcoin/btc/faucet/
http://tpfaucet.appspot.com
Puedes ver ejemplos del código que figura en el artículo en github
Pero veremos qué hacer con ellos a continuación en los siguientes artículos.
Leer también
Aceptamos pagos en bitcoin: Tercera parte, nuestra testnet. con veintiuna
En el último artículo te dije cómo instalar bitcoind (al menos en Ubuntu Linux) y cómo conectarte a testnet. Pero testnet es una buena solución cuando se realizan pruebas en un sitio web ya preparado que ya se ha implementado en un servidor de Internet. Pero para el desarrollo local esta está lejos de ser la solución más conveniente.
Aceptamos pagos en bitcoin: sexta parte. Matices, otra vez matices.
En la última parte, señalamos que no sería mala idea informarse sobre el hecho del pago desde bitcoind, en lugar de revisar todas las direcciones emitidas.
