Bitcoin Core

Bitcoin Core Developer Guide

8min

Introduction:

Bitcoin Core on Voltage offers developers a robust and efficient way to interact with the Bitcoin network, providing full access to the comprehensive functionality of Bitcoin Core, excluding wallet features and wallet RPC methods. This service is designed to enhance your development experience by streamlining node management and providing seamless integration capabilities.

Managing Access:

Managing access to your Bitcoin Core node on Voltage is straightforward.

  • Navigate to the connect page
  • Create or Delete new RPC users with name and password
  • Any RPC user credential will be able to access the full Bitcoin Core inteface (excluding wallet methods)
Document image


It's important to note the difference in access control between RPC and ZMQ. The RPC interface requires explicit authorization through configured RPC users, ensuring that only authenticated users can execute commands and queries. On the other hand, ZMQ does not offer built-in authentication. If you know the IP and port of the ZMQ endpoint OR the node hostname provided by Voltage you can subscribe to it (through proxy with node hostname or direclty with IP)

Interfacing with your Bitcoin Core Node

RPC:

The Remote Procedure Call (RPC) interface on Voltage allows you to execute various commands and queries directly on your Bitcoin Core node. This includes operations such as retrieving blockchain information, managing network connections, and more. However, note that wallet-related RPC methods are not supported.

  • Create RPC user
  • Grab your unique RPC hostname
  • Create a request to your hostname using the RPC user credentials
Curl
JS
Python


ZMQ:

ZeroMQ (ZMQ) is a high-performance messaging library that Bitcoin Core uses to publish real-time notifications for events like new blocks and transactions. Voltage supports ZMQ for efficient event-driven programming, enabling developers to build responsive and real-time applications.

Currently we only support accessing ZMQ interface through a TCP proxy but we are actively working on more solutions.

Here is an example of this setup:

Rationale:

  • TLS Encryption for Secure Transmission: By forwarding ZeroMQ (ZMQ) data over a TCP stream wrapped in TLS, we ensure that the traffic is encrypted. This prevents unauthorized access and ensures that the data being transmitted is secure and private.
  • Hostname Utilization: This method allows for the connection to a remote server using a hostname rather than an IP address.
  • Simplified Setup: Establishing a direct ZMQ connection over a TLS-encrypted TCP pipe is complex and not straightforward. Using a TCP proxy to handle the TLS encryption simplifies the process while providing a sufficient level of security and functionality.

Replit examples: