All Projects → codingchili → ethereum-ingest

codingchili / ethereum-ingest

Licence: MIT license
JavaFX and commandline application to import events from the Ethereum blockchain into ElasticSearch, MongoDB, Hazelcast, CQEngine and SQLite.

Programming Languages

java
68154 projects - #9 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to ethereum-ingest

IntroduceToEclicpseVert.x
This repository contains the code of Vert.x examples contained in my articles published on platforms such as kodcu.com, medium, dzone. How to run each example is described in its readme file.
Stars: ✭ 27 (-20.59%)
Mutual labels:  hazelcast, vertx
chainlink-mix
Working with smart contracts with eth-brownie, python, and Chainlink.
Stars: ✭ 447 (+1214.71%)
Mutual labels:  infura
hazelcast-kubernetes
Hazelcast clustering for Kubernetes made easy.
Stars: ✭ 50 (+47.06%)
Mutual labels:  hazelcast
delta
DDD-centric event-sourcing library for the JVM
Stars: ✭ 15 (-55.88%)
Mutual labels:  hazelcast
hface
look your Hazelcast cluster in the face!
Stars: ✭ 73 (+114.71%)
Mutual labels:  hazelcast
Hazelcast
Open-source distributed computation and storage platform
Stars: ✭ 4,662 (+13611.76%)
Mutual labels:  hazelcast
Sqlfiddle3
New version based on vert.x and docker
Stars: ✭ 242 (+611.76%)
Mutual labels:  vertx
ethtoken.py
Ethereum ERC20 Token Interface, in Python
Stars: ✭ 40 (+17.65%)
Mutual labels:  ether
dbfx
This is a free, cross platform, open source database management tool based on JavaFX and vertx SQL client.
Stars: ✭ 63 (+85.29%)
Mutual labels:  vertx
hazelcast-scala
Scala language support for Hazelcast
Stars: ✭ 26 (-23.53%)
Mutual labels:  hazelcast
hazelcast-consul-discovery-spi
Consul based discovery strategy SPI for Hazelcast enabled applications
Stars: ✭ 47 (+38.24%)
Mutual labels:  hazelcast
j2cache
java实现的缓存策略组件,支持多种缓存产品,开发人员可以像Map一样使用,简单方便。支持的存储方案:jvm\redis\ignite\hazelcast\guava
Stars: ✭ 33 (-2.94%)
Mutual labels:  hazelcast
coronamq
The simplest way to implement a task queue with Java, Vertx and PostgreSQL.
Stars: ✭ 23 (-32.35%)
Mutual labels:  vertx
hazelcast-csharp-client
Hazelcast .NET Client
Stars: ✭ 98 (+188.24%)
Mutual labels:  hazelcast
vertx-ddns
基于 Vert.x 的 DDNS 解决方案。自动更新域名解析到本机IP, 支持的DNS服务商: Alidns(阿里云) 、 Dnspod(腾讯云) 、Cloudflare、华为云
Stars: ✭ 126 (+270.59%)
Mutual labels:  vertx
moqui-hazelcast
Moqui Framework tool component for Hazelcast, used for distributed async services, entity distributed cache invalidation, web session replication, and distributed cache (javax.cache)
Stars: ✭ 12 (-64.71%)
Mutual labels:  hazelcast
zeebe-hazelcast-exporter
Export events from Zeebe to Hazelcast
Stars: ✭ 20 (-41.18%)
Mutual labels:  hazelcast
Chime
Time scheduler for Vert.x
Stars: ✭ 28 (-17.65%)
Mutual labels:  vertx
GethDesk
GethDesk - is a web based application to simplify work with Ethereum "Geth Go" console client.
Stars: ✭ 16 (-52.94%)
Mutual labels:  geth
Quintessential-Tasklist-Zeebe
The quintessential Zeebe tasklist for BPMN Human tasks with Drag and Drop Form builder, client and server side validations, and drop in Form Rendering
Stars: ✭ 34 (+0%)
Mutual labels:  vertx

ethereum-ingest Build Status

Imports blocks and transactions from the Ethereum blockchain into ElasticSearch, MongoDB, Hazelcast, CQEngine and SQLite! Works with Geth IPC, Geth REST API and Infura.

Demo video: YouTube

user interface

Tested with

  • Java 11 (minimim requirement)
  • ElasticSeach 7.0.0
  • MongoDB 4.0.8
  • Hazelcast 3.10.5
  • geth 1.8.23

Building

Build with

# detects the current platform.
./gradlew build

# to build for a specific platform, 'win', 'mac' or 'linux'.
./gradlew build -Pplatform=linux

Requires chili-core through jitpack or local repo.

Importing

The first step is to start your ethereum IPC client, for geth use:

geth --rpcapi personal,db,eth,net,web3 --rpc --testnet

Start the importer with:

java -jar <filename>.jar --import
java -jar <filename>.jar --gui
java -jar <filename>.jar --help
  • --import: starts an import using application.json.
  • --gui: starts the application with the graphical user interface.

Configuring

Set configuration in application.json before running --import. WHen using the graphical application the configuration is saved automatically.

Default configuration

{
  "startBlock" : "1964770",
  "blockEnd" : "1964900",
  "storage" : "ELASTICSEARCH",
  "targetNode" : "\\\\.\\pipe\\geth.targetNode",
  "os" : "WINDOWS",
  "txIndex" : "ether-tx-demo-iix",
  "blockIndex" : "etdder-block-demo-iix",
  "backpressureBlocks" : 6,
  "backPressureTx" : 32,
  "txImport" : true,
  "blockImport" : true
}

Backpressure for blocks and tx should not exceed 200 when multiplied with eachother. If you want to increase these values further you need to make sure the storage is capable of handling that many connections.

Storage can be any of the following

  • MONGODB (default: localhost:27017)
  • ELASTICSEARCH (default: localhost:9300)
  • HAZELCAST
  • SQLITE (CQEngine)
  • MEMORY

os can be any of the following, required for targetNode to work correctly

  • UNIX
  • WINDOWS

Imports can be executed multiple times over the same block range without resulting in duplicates.

To configure a custom host:port for MongoDB or ElasticSearch please add/edit this file in "conf/system/storage.yaml"

---
storage:
  com.codingchili.core.storage.MongoDBMap:
    host: "localhost"
    port: 27017
  com.codingchili.core.storage.ElasticMap:
    host: "localhost"
    port: 9200

Contributing

Submit an issue or a PR ! 💙

donate

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].