作者:禅与计算机程序设计艺术

1.简介

随着比特币和以太坊的火爆,各类项目都纷纷推出了基于以太坊或其他区块链技术的去中心化应用,而这些应用所依赖的底层公共区块链网络也逐渐成为一个热点话题。如今,主流的区块链项目中,以太坊已经连续三年位列榜首,并在全球范围内拥有着庞大的用户群体。因此,监控以太坊上的各种数据的行为,不仅能够了解到各种交易情况,还可以掌握各种异常信息的出现、转账等行为。

为了方便用户管理自己的区块链资产,监控区块链数据的功能逐步成为越来越重要的需求。本文将围绕监控区块链数据的需求,阐述其监控系统设计与实现的基本思路及方法。

2.背景介绍

2.1 传统监控系统的局限性

目前市面上已有的监控系统包括Nagios、Zabbix、Cacti、OpenTSDB等等。这些监控系统由于其界面、数据存储结构等方面的限制,导致其无法满足对区块链上链交易的实时监控。具体表现为:

  1. 监控系统只能监控主机资源,无法监控区块链的网络流量、交易数据等;
  2. 这些监控系统只能通过定制脚本的方式,才能进行不同节点的数据采集和分析,无法直接获取区块链上的交易数据;
  3. 这些监控系统通常采用数据库来存储监控指标,数据库需要持久化存储,因此成本较高。

2.2 数据源和计算方式

区块链数据一般可分为两大类,即区块链基础数据和业务数据。基础数据主要包括网络数据(节点连接、消息广播)、交易数据(交易金额、交易手续费)、账户数据(账户余额、交易历史)。业务数据则包括很多具体的业务相关数据,例如证券