Watch & Filter EOS Nodes Transactions/Actions and pushes to RabbitMQ, MongoDB, 0MQ etc.
Switch branches/tags
Nothing to show
Clone or download
leordev Merge pull request #2 from joshpurvis/jp-random-history
Randomize history API endpoints
Latest commit 7e44697 Oct 1, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib conventions Sep 29, 2018
.gitignore basic functions Jul 12, 2018
LICENSE docs and mit Jul 13, 2018
README.md docs and mit Jul 13, 2018
config.json Randomize APIs used for history queries Sep 29, 2018
index.js amqp (rabbitmq) integration Jul 13, 2018
package.json amqp (rabbitmq) integration Jul 13, 2018
yarn.lock amqp (rabbitmq) integration Jul 13, 2018

README.md

EOS Node Watcher

The goal of this watcher is to easily replay chains from the desired block (let's say after you deploy your contract is what usually matters), filter the block actions related to your desired contracts and submit it to your desired channel: message queues, websockets, databases etc.

Setup

cd ~
git clone https://github.com/leordev/eos-node-watcher
cd eos-node-watcher
npm install
vi config.json # here you will customize the setup to your needs
node index.js

Configuration

Here's the default configuration example

{
  "watchInterval": 500,
  "eosApi": "http://mainnet.eoscalgary.io/v1",
  "eosHistoryApi": "http://api.cypherglass.com/v1",
  "apiTimeout": 3000,
  "initialBlock": 1293913,
  "accounts": {
    "monstereosio": [],   # leave an empty array to listen to all the actions
    "eosio.token": [      # here you can filter all the actions
      {
        "name": "transfer",
        "data": { "to": "monstereosio" } # (optional) if you set the data, it
      }                                  # will filter the actions parameters
    ]
  },
  "mongodb": {
    "isActive": true,
    "address": "mongodb://localhost:27017",
    "database": "eos_node_watcher",
    "prefix": "enw_"
  },
  "zeromq": {
    "isActive": false,
    "address": "tcp://*:60400"
  },
  "amqp": {
    "isActive": true,
    "address": "amqp://localhost",
    "channel": "eosnodewatcher"
  }
}

Next Steps

  1. Add more "pusher" options and possibily split that file to single pusher per file
  2. Improve the action filters (test for vectors and add some "sql-style" options eg. LIKE % etc.)
  3. ??? Accepting ideas! :)

Feel free to fork, collaborate and add ideas!