jpzk / ethsync

Reliable at-least-once Ethereum to Kafka bridge in Scala

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ethsync

Build Status Codacy Badge License GitHub stars

ethsync is a bridge between Ethereum nodes and Kafka. It stores in-flight transactions and the block offset to ensure at-least-once processing guarantees. Further it acts as a high availability layer for a cluster of Ethereum nodes. In case of crash, it will replay the missing blocks. This makes it ideal for the use in company environments. The project aims at minimal code written in modern Scala with Monix, sttp (uses Netty) and circe. It does not depend on Web3j. Collaboration is highly appreciated.

Main Features

  • Ready to use Docker image
  • At-least-once guarantee for blocks, transactions and receipts
  • KSQL-compatible
  • Fault-tolerant (backed by Kafka brokers)
  • Serialization of transactions and receipts into Avro Binary format
  • Input validation for transaction and receipt objects
  • Different output formats

Known Caveats / Issues

  • In multi-instance mode, where there is more than one Ethsync instance in a system, your services are required to handle duplicate messages gracefully, as each instance will broadcast the same events.

About

Reliable at-least-once Ethereum to Kafka bridge in Scala

License:Apache License 2.0


Languages

Language:Scala 96.0%Language:Shell 4.0%