Monitoring of applications (e.g. Dapps) running on or using the network.
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.
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
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.
Contributing authors: Kevin Wittek, Zoltan Fazekas
Status of this document: work in progress
Last day modified: 2021-04-19