Runtime Verification Launches a Registered Algorand Relay Node
We are thrilled to announce that Runtime Verification has launched a new registered Algorand relay node, contributing to the operation of Algorand’s network. This development marks a significant milestone in our partnership with Algorand and our ongoing commitment to fostering blockchain innovation and promoting secure, decentralized networks.
This blog post provides an overview of the role of relay nodes in Algorand's network, highlights our contribution, and discusses how this aligns with our monitoring vision at Runtime Verification.
Algorand’s Backbone of Relays
Runtime Verification’s recently launched relay node actively contributes to Algorand’s network by validating transactions and relaying critical information to other nodes, aiding in disseminating blocks and transactions. It recently joined a distributed network of relay nodes that are spread across the globe and strategically placed to minimize latency and optimize network performance.
Relay nodes are necessarily “Archival nodes”, maintaining full copies of the blockchain, and are expected to efficiently handle significant traffic volumes generated by Algorand's high-speed protocol. More information about node types and the Algorand network can be found in Algorand’s Developer Portal.
Any node can be configured to run as a relay node, but for the node to be discoverable by other nodes in the network, it needs to be registered and included in Algorand’s SRV (Service Records), which are DNS (Domain Name System) records that are used to facilitate the discovery and connection to relay nodes in the network.
When a participation node needs to connect to a relay node, it can query the DNS system for SRV records associated with the Algorand network. These SRV records contain information such as the domain name, port number, and priority of available relay nodes. This enables participation nodes to discover and establish connections with suitable relay nodes based on factors like proximity and network conditions.
The use of SRV records simplifies the process of connecting to relay nodes for participation nodes, as they can rely on the DNS infrastructure to obtain the necessary connection information dynamically. This dynamic discovery mechanism enhances the flexibility and scalability of the Algorand network.
As of the time of writing, there are 110 active relay nodes, including our recently deployed relay node. By analyzing the SRV data, we have generated a map showcasing the geographical distribution of these relay nodes worldwide. Take a moment to explore the map (and try to locate our relay node represented by a distinctive star pin).
Note that this was a snapshot of the distribution of relays taken when this article was prepared. The current distribution may differ as relay nodes join and leave the SRV.
If you want to produce a more up to date map showing the distribution of relay nodes, visit this page where you can find step-by-step instructions of how this can be achieved.
Monitoring at Runtime Verification
For context, blockchain runtime monitoring leverages the specifications and invariants statically proven during a security audit to offer value to blockchain stakeholders after the target smart contracts are deployed. These monitors are used to inform clients about the health of their deployed contracts and can automatically launch corrective action when invariants are broken.
As Runtime Verification began developing runtime monitoring and recovery products, it became evident that the hardest part is to identify which properties to monitor. Fortunately for Runtime Verification, these properties are a natural byproduct of the contract security audit process.
Using this foundation, RV Monitoring instruments the system to correctly observe relevant events, automatically generate monitors from the safety specifications, and steer the system through recovery actions when violations happen.
Another key element to successful runtime monitoring is ensuring access to the accurate real-time data required to take action when the aforementioned properties are violated. This facet is where the Algorand relay node plays a key role. Efficient instrumentation and observation of transactions are critical for successful monitoring, and most existing blockchain indexing services are too slow to be effective. By the time a monitor is triggered, the monitored invariant property is already violated, resulting in a vulnerability.
Implementing RV Monitoring products on an Algorand participation node reduces the end-to-end system latency from seconds to milliseconds, resulting in significantly more performant monitors. That said, the problem with monitoring a distributed network using participation nodes is that even with geographically distributed instances, there is a limit to the number of relay nodes to which the node can attach. This limitation results in the monitors missing critical activity until it is propagated throughout the network, which may be too late to identify abhorrent behavior in a timely manner.
By implementing relay nodes in the Algorand network, Runtime Verification can more effectively monitor activity. This is achieved by having direct access to the participation nodes that connect to it, as well as by connecting to other relay nodes to ensure that most transactions are seen as quickly as possible. This advantage allows Runtime Verification to either notify customers so that they can resolve a problem quickly and efficiently, or automatically resolve the problem on behalf of the protocols themselves.
Runtime Verification is developing monitoring solutions to address the following primary use cases:
The problem with most blockchain monitoring solutions available today is that they are typically restricted to transaction monitoring. Invariant monitors leverage the specifications and invariants statically proven during the smart contract audit to ensure operational security after the target contracts are deployed. These products monitor the post-deployment health of contracts in real-time, and alert stakeholders when invariants are broken, or the monitored contract states meet or violate certain criteria. The notifications produced by these monitors trigger corrective actions by the stakeholders based on recommendations identified during the smart contract audit process. Runtime Verification is working with protocol developers and other stakeholders to ensure that invariants identified during their audit remain invariant, and ensure long-term health over the entire lifecycle of the protocol.
Monitoring with Recovery
These monitoring products involve triggering recovery transactions when specific market or contract criteria are met. Runtime Verification has been monitoring loan liquidity in lending and borrowing protocols across multiple blockchains. In these protocols, the primary property proven is that all loans must maintain collateralization. The collateral position of the loan contacts on these protocols are monitored, and when they become undercollateralized, must be recovered as quickly as possible to prevent damaging results to protocol health.
Runtime Verification is committed to ensuring the safety, reliability, and correctness of blockchain solutions as they are being built and after they are in operation. If you are interested in exploring runtime monitoring solutions on Algorand or any other chain, please contact us and we can discuss a solution that meets your needs.