Skip to content

Application Monitoring

Abstract

Monitoring of applications (e.g. Dapps) running on or using the network.

Motivation

Although one might seemingly assume, that it's the application operators task to perform monitoring for their applications, each application will potentially use the network as a shared resource.

An application can therefore have all kind of side effects on the overall network stability and performance.

Elaboration

Parties, that use the network to operate and deploy smart contracts should disclose which set of smart contracts they have deployed, as well as inform about about their interfaces, in order to allow clear monitoring of an application by the network operators. Implementing e.g. smart contracts according to defined interfaces such as ERC20 or ERC721 allows for further automation of monitoring.

In case of deployment without disclosoure, interaction clusters between smart contracts can serve as a heurestic to identify previously unkown applications.

It might be advisable to monitor I/O metrics of applications and distinguish between read-heavy and write-heavy applicatons, in order to infer the impact on the network.

Internal references and dependencies

todo

References to best practice, examples

There exist commercial SaaS offerings for smart contract monitoring on Ethereum such as Tenderly.

In addition, different OSS proof-of-concept implemantions exist.

Etherscan allows for semi-automatic monitoring of ERC721 contracts.


RFC-0811
Contributing authors: Kevin Wittek, Zoltan Fazekas
Status of this document: work in progress
Last day modified: 2021-04-19