dfuse for EOSIO
All dfuse.io services for EOSIO,
running from your laptop or from a container, released as a single
statically linked binary: dfuseeos
.
See the general dfuse repository
for other blockchain protocols implementations.
Getting started
If it's the first time you boot a nodeos
node, please review
https://developers.eos.io/welcome/latest/tutorials/bios-boot-sequence
and make sure you get a grasp of what this blockchain node is capable.
The default settings of dfuseeos
allow you to quickly bootstrap a working
development chain by also managing the block producing node for you.
Requirements
Operating System
- This software runs on Linux or Mac OS X
dfuse Instrumented nodeos (deep-mind)
- See DEPENDENCIES.md for instructions on how to get an instrumented
nodeos
binary.
Installing
From a pre-built release
From source
Build requirements:
Go
1.13 or higher
Node.js
12 or higher, yarn
- rice Go static assets embedder (see installation instructions below)
# Install `rice` CLI tool if you don't have it already
go get github.com/GeertJohan/go.rice/rice
git clone https://github.com/dfuse-io/dfuse-eosio
cd dfuse-eosio
pushd dashboard/client
yarn install && yarn build
popd
pushd eosq
yarn install && yarn build
popd
go generate ./dashboard
go generate ./eosq/app/eosq
go install -v ./cmd/dfuseeos
This will install the binary in your $GOPATH/bin
folder (normally
$HOME/go/bin
). Make sure this folder is in your PATH
env variable.
Usage (creating a new local chain)
- Initialize a few configuration files in your working directory (
dfuse.yaml
, mindreader/config.ini
, ...)
dfuseeos init
- Boot your instance with:
dfuseeos start
- A terminal prompt will list the graphical interfaces with their relevant links:
Dashboard: http://localhost:8081
Explorer & APIs: http://localhost:8080
GraphiQL: http://localhost:8080/graphiql
- If dfuse is starting a new chain, two nodeos instances will now be running on your machine, a block producer node and a mindreader node, and the dfuse services should be ready in a matter of seconds.
- If you chose to sync to an existing chain, only the mindreader node will launch. It may take a while for the initial sync depending on the size of the chain and the services may generate various error logs until it catches up. (More options for quickly syncing with an existing chain will be proposed in coming releases.)
- If you chose to have dfuse create a new chain for you, see bootstrapping for info on creating the initial accounts and interacting with the chain
Usage (syncing existing chain)
Logging
See Logging
Overview
Here's a quick map of this repository:
The glue:
The EOSIO-specific services:
- abicodec: ABI encoding and decoding service
- fluxdb: the dfuse State database for EOSIO, with all tables at any block height
- kvdb-loader: service that loads data into the
kvdb
storage
- dashboard: server and UI for the dfuse for EOSIO dashboard.
- eosq: the famous https://eosq.app block explorer
- eosws: the REST, Websocket service, push guarantee, chain pass-through service.
dfuse Products's EOSIO-specific hooks and plugins:
Troubleshooting
See Troubleshooting section
Contributing
Please read CONTRIBUTING.md for details on our Code of Conduct, CONVENTIONS.md for coding conventions, and processes for submitting pull requests.
License
Apache 2.0
References