Michael Boeckli (Tech Lead at TAAL) recently took to the stage at BSV DevCon 2024 to discuss ARC and its microservices. ARC is the open-source reference implementation transaction broadcaster allowing applications to broadcast their transactions peer-to-peer to BSV blockchain nodes.
The ARC open-source reference implementation has been commissioned by BSV Blockchain and developed by TAAL to leverage their deep knowledge and expertise in transaction processing.
In addition to developing the open-source version of ARC following open-source guidelines and requirements handled by the BSV Blockchain, TAAL also runs its commercial version and proposes it as a commercial and enterprise-grade service to businesses. It is under these circumstances that Boeckli presented both the open-source and commercial versions of ARC during DevCon.
ARC is designed to connect to every mining node on the network and includes peering logic, retry logic for transaction tracking, transaction validation, and an API for clients.
It also calculates Merkle paths for broadcasted transactions. ARC’s microservices include the API server, validator (with the ability to scale for increased workload), metamorph for managing changing transaction statuses, and a peer manager to handle connections.
Additionally, ARC stores a new format of blocks containing transaction IDs rather than full transaction data. This architecture aims to enhance transaction reliability and efficiency in the BSV blockchain network.
ARC and mAPI
Boeckli began his presentation by discussing ARC and how it connects to mAPI. ‘ARC is a transaction processor that keeps track of the lifecycle of a transaction as it is processed by the BSV network. Originally ARC was planned as a replacement for mAPI. Later it morphed into one of the key components of the BSV network topology,’ he said.
Boeckli noted that TAAL operates ARC on Kubernetes with a focus on high scalability – another key advantage over mAPI. Notably, ARC doesn’t encounter the same challenges as mAPI because it can scale to meet increased demand by deploying multiple Metamorph instances.
‘Although the BSV blockchain might face delays in reaching consensus and confirming transactions into blocks, ARC consistently manages the status of these transactions. Even during heavy load, a transaction might remain in the announced on the network status for hours, but it will eventually be mined and its status updated,’ he said.
‘Unlike mAPI, ARC takes care of the retry logic and the complexities of the peer-to-peer network for applications. This delegation of responsibilities allows applications to function smoothly without dealing with these complexities, enhancing the user experience.’
ARC and its microservices
ARC consists of four microservices: the API, Metamorph, BlockTX and Callbacker. The ARC API provides key endpoints for setting requirements like mining fees and submitting transactions in an “extended format,” which includes additional details to facilitate script validation and fee checks, aiming to improve transaction validation before broadcasting.
Metamorph handles these pre-validated transactions, ensuring their integration into the blockchain via a scalable, load-balanced system. BlockTx monitors block announcements, verifies transaction IDs within the Merkle root, and updates transaction statuses to “mined,” storing relevant Merkle paths.
The Callbacker service allows users to monitor transaction progress and receive notifications on status changes, enhancing the overall reliability and user interaction with the ARC system.
ARC is the first component of the Mandal upgrade and will be compatible with Teranode. Application builders are encouraged to migrate from mAPI to ARC as mAPI won’t be compatible with Teranode.
There are several different business use cases for ARC. Enterprises can either implement ARC in their own environment by leveraging its open-source component or use the ARC implementations by BSV blockchain miners through their API endpoints. TAAL and GorillaPool both offer ARC services for application builders.
You can find out more about ARC here.