On October 4, the BSV Blockchain Association held a webinar introducing ARC, an open-source transaction processor for the BSV blockchain. Deggen Kellenschwiler and Thomas Giacomo co-hosted the presentation and explained ARC’s roadmap.
📆 October 4, 2023, 4:00 pm CET
— BSV Blockchain (@BSVBlockchain) October 3, 2023
What is a transaction processing service?
Kellenschwiler kicks things off by answering a high-level question: what is a transaction processing service? It’s necessary to understand this to grasp what ARC is and does.
The BSV node network is peer-to-peer, and while it’s robust, it can be messy, he explains. Nodes can come and go as they please, so there’s no guarantee that a given node will be online at a specific time.
Furthermore, not every node is treated equally; there’s whitelisting, and some nodes get priority over others. Nodes also have limits as to how many connections they can make.
A transaction processing API such as ARC deals with the “inherent fuzziness” of the network, mitigating issues like dropped connections for mobile devices. The desired outcome of having such a tool is to allow developers to focus on their businesses without having to resolve a lot of different problems.
“ARC is a tool to allow for direct communication with the center of the network from its very edges. In many ways, it has conceptual similarities to a hash function which allows any message digest to reach a deterministic state. ARC allows and transaction broadcast to reach a status of ‘received.’ The importance this represents to scaling Bitcoin and fulfilling its function as a peer-to-peer payments system cannot be overstated. But the key driver of the success is not in its genius, but in its adaptiveness,” Brett Banfe, Community Manager at the BSV Blockchain Association, tells CoinGeek.
“The team at ARC strongly prioritize the feedback from community testers to ensure that the real needs of our enterprise business and developer communities are going into the roadmap for its deliverables. I couldn’t be prouder of that team, and more grateful for what their contributions portend for bitcoin.”
Focusing on ARC specifically
Kellenschwiler explains that, in an ideal world, ARC would connect to every mining node. It has peering and retry logic, validates transactions, calculates Merkle paths for broadcast transactions, and more.
ARC offers the following microservices: API server, validator, metamorph, peer manager, and BlockTX store. Kellnscwiler expands on each of these in turn.
ARC API handles authentication, validation, and transactions to metamorph. It gets policies (e.g., sats per byte) and transaction statuses and submits transactions.
ARC Metamorph takes pre-validated transactions and gets them on-chain using the peer-to-peer network. It processes transactions sent by the ARC API and brings them to the Bitcoin network. It’s designed to be horizontally scalable.
ARC BlockTX listens for new blocks, retrieves data needed to validate which transaction IDs are mined, and calculates Merkle paths. It processes blocks and propagates the status of transactions. Its purpose is to de-duplicate the processing of blocks.
ARC Callbacker sends transaction statuses to a URL specified in the original submission once mined. It sends callbacks to clients when the Bitcoin network has accepted a transaction.
Isn’t this just mAPI 2.0?
Kellenschwiler explains that ARC takes an entirely different approach and is by no means just mAPI 2.0. He then gives a detailed technical breakdown of mAPI’s interaction with SV Node and its limitations. For example, high traffic loads led to bottlenecks on mAPI. ARC doesn’t suffer from this limitation.
ARC is also designed for the Teranode era. The grander strategy is to separate functions. For example, Liteclient will focus on the user side, while Teranode will focus on mining, assembling blocks, etc.
ARC’s advantages are that it avoids bottlenecks, scales horizontally, allows for quicker diagnosis of issues, provides final status confirmation and Merkle paths, and the callbacker can inform apps of status updates.
The next steps are to listen to feedback and iron out errors, get ARC live in a production environment, slowly phase mAPI out, and implement an overlay node on the ARC interface.
To hear Kellenschwiler and Giacomo answer questions on ARC and for a more detailed explanation of how it works, check out the webinar via the link above!
CoinGeek Conversations with Darren Kellenschwiler: My BSV blockchain journey
New to blockchain? Check out CoinGeek’s Blockchain for Beginners section, the ultimate resource guide to learn more about blockchain technology.