All Projects â†’ autonomoussoftware â†’ ethereum-transaction-indexer

autonomoussoftware / ethereum-transaction-indexer

Licence: MIT license
🗂Simple indexer service for Ethereum blockchains

Programming Languages

javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to ethereum-transaction-indexer

Hyperspace
An open source indexing subsystem that brings index-based query acceleration to Apache Sparkâ„¢ and big data workloads.
Stars: ✭ 246 (+1347.06%)
Mutual labels:  indexing
fcgi-function
A cross-platform module to writing C/C++ service for nginx.
Stars: ✭ 33 (+94.12%)
Mutual labels:  indexing
podium
Searches your files faster and smarter
Stars: ✭ 25 (+47.06%)
Mutual labels:  indexing
kmer-db
Kmer-db is a fast and memory-efficient tool for large-scale k-mer analyses (indexing, querying, estimating evolutionary relationships, etc.).
Stars: ✭ 68 (+300%)
Mutual labels:  indexing
btree
A persistent B+Tree (clustered index) implementation in Rust.
Stars: ✭ 167 (+882.35%)
Mutual labels:  indexing
sfsdb
Simple yet extensible database you already know how to use
Stars: ✭ 36 (+111.76%)
Mutual labels:  indexing
Sfa
Scalable Time Series Data Analytics
Stars: ✭ 222 (+1205.88%)
Mutual labels:  indexing
recommendation-retrieval
A tutorial on scalable retrieval of matrix factorization recommendations
Stars: ✭ 27 (+58.82%)
Mutual labels:  indexing
quranize
transform transliteration to Quran text
Stars: ✭ 13 (-23.53%)
Mutual labels:  indexing
worker
âš’ Web crawler that analyzes and dissects subtitles into database entries
Stars: ✭ 16 (-5.88%)
Mutual labels:  indexing
secondary
Redis Secondary Indexing Module, been suspended see: https://github.com/RediSearch/RediSearch/
Stars: ✭ 33 (+94.12%)
Mutual labels:  indexing
gdrive-index
An index server for Google Drive
Stars: ✭ 107 (+529.41%)
Mutual labels:  indexing
search it
Umfangreiche Volltextsuche für REDAXO 5 CMS. Durchsucht Artikel, Medien, Dateien, PDF-Inhalte und Datenbank-Einträge.
Stars: ✭ 60 (+252.94%)
Mutual labels:  indexing
Foundatio.Repositories
Generic repositories
Stars: ✭ 74 (+335.29%)
Mutual labels:  indexing
pg-search-sequelize
Postgres full-text search in Node.js and Sequelize.
Stars: ✭ 31 (+82.35%)
Mutual labels:  indexing
Esbulk
Bulk indexing command line tool for elasticsearch
Stars: ✭ 235 (+1282.35%)
Mutual labels:  indexing
shortcut
Rust crate providing an indexed, queryable column-based storage system
Stars: ✭ 28 (+64.71%)
Mutual labels:  indexing
StarWarsArrays.jl
Arrays indexed as the order of Star Wars movies
Stars: ✭ 93 (+447.06%)
Mutual labels:  indexing
yii2-elasticsearch
Elasticsearch client based on official Elasticsearch PHP library
Stars: ✭ 14 (-17.65%)
Mutual labels:  indexing
octopus
CD/DVD/HD/SD Indexer. Creates indexes of your floppies, CD/DVD disks, hard/external/network disks, pendrives and other removables media.
Stars: ✭ 19 (+11.76%)
Mutual labels:  indexing

Build Status Code Style Known Vulnerabilities

Transaction Indexer

Simple transaction indexing service for Ethereum blockchains. This service will index transactions, provide a REST API to query all transactions related to a given address and a Socket.IO subscription mechanism to be notified when new transactions are indexed.

REST API

GET /addresses/:address/transactions[?from=<number>&to=<number>]

Will return a JSON array having all Ethereum transaction IDs related to the given address. Optionally specify from and to to limit the query to only that block range.

[
  "0xed3a75ab0677e1a4b24874c5f9ac1a6c38a1b419ff7616fb3ed764713095bf10",
  "0xbfbff2e8bbddbb0575120366be9d2b7dd7f231f8375c43cbb5629ae01ed0003f",
  "0x735df07d3d73a3f95355e0d6bd6c0a8ce1b5922834b7db372b18888ff2660b55",
  "0xc54fb504aa7cfedadd0a25623dc568a7ed8bdf92920520639df785729f580868"
]

Transactions are returned in reverse-chronological order.

GET /blocks/best

Will return an object containing information on the best indexed block.

{
  "number": 1828,
  "hash": "0xe04c1cded9a4724d8b22a8f7d6558f778392253ae61a2672a2242c60fe8992df",
  "totalDifficulty": "342830896"
}

Events interface

The Socket.IO events interface is available at the following route: /v1.

subscribe

Will allow the subscriber to start receiving notifications of new transactions indexed related to the given addresses.

Subscription message:

{
  "event": "subscribe",
  "data": {
    "type": "txs",
    "addresses": ["0xb1d4c88a30a392aee6859e6f62738230db0c2d93"]
  }
}

Subscription responses:

{
  "event": "tx",
  "data": {
    "txid": "0x64473dec378049472234c854d53f2ce92cd7a94468b62f785b683a9cacdb7f86",
    "status": "confirmed"
  }
}

The data object has the following properties:

  • txid is the indexed transaction id.
  • status can be confirmed or, in the case of a blockchain reorg, it could be removed.

Requirements

Configuration

Default configuration can be customized by setting environment variables or createing an <environment>.json or <hostname>.json file in the config folder following the config module guidelines.

Start

Install dependencies with npm install and then start the indexer or the API with npm run indexer or npm run api.

Optionally, for test and development purposes, start both components with npm start.

The indexer API will listen on the port 3005 by default.

Convenience all-in-one install & run script

To easily install and execute the indexer in a single AWS EC2 Ubuntu VM, clone the repository, set the following environment variables and execute the script setup.sh:

  • COIN: eth or etc
  • CHAIN: mainnet or the name of the chain param required by Parity.
  • ENV: prod or test
  • PAPERTRAIL_HOST: logs.papertrailapp.com or the proper logging URL
  • PAPERTRAIL_PORT: to the proper port

The script will:

  • Install and start Parity in a tmux session parity.
  • Install, configure and start remote-syslog2 to send Parity logs to Papertrail.
  • Install MongoDB.
  • Install Node.js.
  • Setup and start the indexer, both the parser and the API in the same process, in a tmux session indexer.

During the synchronization phase, a c5.2xlarge VM type is recommended to provide enough CPU capacity and at least 16 GBytes of RAM. After both Parity and the indexer are up to date, the VM type could be switched back to t3.xlarge or similar.

The storage required is:

Coin Chain Storage
ETH mainnet 128 GBytes (estimated)
ETH testnet (ropsten) 32 GBytes (estimated)
ETC mainnet (classic) 32 GBytes (estimated)
ETC testnet (morden) 24 GBytes

License

MIT

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].