La biblioteca bitcoinj es una implementación Java del protocolo Bitcoin, que le permite mantener una billetera y enviar/recibir transacciones sin necesidad de una copia local de Bitcoin Core. Viene con documentación completa y algunas aplicaciones de ejemplo que muestran cómo usarlo.
Java 8+ (necesita la API de Java 8 o la API de Android 8.0, se compila en el código de bytes de Java 8) para el módulo base
y core
Java 17+ para tools
, wallettool
, examples
y wallettemplate
basada en JavaFX
Gradle
Gradle 7.3+ para construir todo el proyecto o
Debian Gradle 4.4 solo para los módulos base
, core
, tools
, wallettool
y examples
(consulte "compilación de referencia" a continuación)
Búferes de protocolo de Google: para uso con serialización y comunicaciones de hardware
Para comenzar, es mejor tener instalado el JDK y Gradle más recientes. El HEAD de la rama master
contiene el código de desarrollo más reciente y se proporcionan varias versiones de producción en las ramas de características.
Las compilaciones oficiales actualmente utilizan JDK 17. Nuestras GitHub Actions compilan y prueban con JDK 17 y 21.
gradle clean build
Las salidas están en el directorio build
.
Para realizar una compilación completa sin pruebas unitarias/de integración, utilice:
gradle clean assemble
Alternativamente, simplemente importe el proyecto usando su IDE. IntelliJ tiene integración Gradle incorporada y tiene una edición comunitaria gratuita. Simplemente use File | New | Project from Existing Sources
y ubique build.gradle
en la raíz del árbol de fuentes del proyecto clonado.
El subproyecto bitcoinj wallettool
incluye una herramienta Wallet de línea de comandos ( wallet-tool
) que se puede usar para crear y administrar billeteras basadas en bitcoinj (tanto el llavero HD como el estado de la cadena de bloques SPV). Usar wallet-tool
en la red de prueba de Bitcoin es una gran Manera de aprender sobre Bitcoin y bitcoinj .
Para crear un script de shell ejecutable que ejecute la herramienta Wallet de línea de comandos, utilice:
gradle bitcoinj-wallettool:installDist
Ahora puedes ejecutar la wallet-tool
sin parámetros para obtener ayuda sobre su funcionamiento:
./wallettool/build/install/wallet-tool/bin/wallet-tool
Para crear un archivo de billetera neta de prueba en ~/bitcoinj/bitcoinj-test.wallet
, usaría:
mkdir ~/bitcoinj
./wallettool/build/install/wallet-tool/bin/wallet-tool --net=TESTNET --wallet=$HOME/bitcoinj/bitcoinj-test.wallet create
Para sincronizar la billetera recién creada en ~/bitcoinj/bitcoinj-test.wallet
con la red de prueba, usaría:
./wallettool/build/install/wallet-tool/bin/wallet-tool --net=TESTNET --wallet=$HOME/bitcoinj/bitcoinj-test.wallet sync
Para volcar el estado de la billetera en ~/bitcoinj/bitcoinj-test.wallet
con la red de prueba, usarías:
./wallettool/build/install/wallet-tool/bin/wallet-tool --net=TESTNET --wallet=$HOME/bitcoinj/bitcoinj-test.wallet dump
Nota | Estas instrucciones son para macOS/Linux, para Windows use el archivo por lotes wallettool/build/install/wallet-tool/bin/wallet-tool.bat con los comandos y opciones de línea de comandos equivalentes de Windows. |
Nuestra compilación de referencia (que también se utiliza para nuestras versiones) se ejecuta dentro de un contenedor para proporcionar una buena reproducibilidad. Se admiten Buildah 1.26+, Podman 4.1+ y Docker (con BuildKit). Probamos varias combinaciones de sistemas operativos host (Debian, Ubuntu, macOS, Windows+WSL) y arquitecturas (amd64, arm64). Para obtener instrucciones de uso, consulte build.Containerfile
.
Esto utiliza Debian Gradle con la configuración settings-debian.gradle
. Si usa Debian y tiene Gradle instalado desde el repositorio de Debian, puede invocar estas configuraciones directamente:
gradle --settings-file settings-debian.gradle clean build
Estos se encuentran en el módulo examples
.
Ahora estás listo para seguir el tutorial.
En el tutorial se trata la creación de aplicaciones con lanzamientos oficiales de bitcoinj .
Si desea desarrollar o probar su aplicación con una compilación basada en Jitpack de la última rama master
o release-0.17
de bitcoinj, siga las instrucciones generadas dinámicamente para esa rama siguiendo el enlace correcto.
rama maestra
rama de lanzamiento-0.17