dfuse-eosio

module
v0.1.0-beta5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2020 License: Apache-2.0

README

dfuse for EOSIO

reference License

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
  • Linux or macOS (no Windows support for now)
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:

# Install `rice` CLI tool if you don't have it already
go get github.com/GeertJohan/go.rice
go get github.com/GeertJohan/go.rice/rice

Note -- if you're getting yarn dependency warnings while running the yarn install && yarn build commands below, you can normally safely ignore those and move forward with the installation. If you're getting an error while installing and/or compiling, see TROUBLESHOOTING.md.

# clone the dfuse-eosio repo
git clone https://github.com/dfuse-io/dfuse-eosio
cd dfuse-eosio

pushd eosq
  yarn install && yarn build
popd

# To generate the dashboard box you will need to clone the dlauncher repo at the same level of dfuse-eosio
pushd ..
    git clone https://github.com/dfuse-io/dlauncher
    pushd dlauncher/dashboard
        pushd client
            yarn install && yarn build
        popd
        go generate .
    popd
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. If it's missing, take a look at TROUBLESHOOTING.md.

Creating a new local chain with dfuseeos

1. Initialize

Initialize a few configuration files in your working directory (dfuse.yaml, mindreader/config.ini, ...)

dfuseeos init

macOS -- If you get a prompt like Do you want the application “dfuseeos” to accept incoming network connections?, you should select allow as dfuseeos needs to accept connections from your local environment.

1a. Do you want dfuse for EOSIO to run a producing node for you

In this case, you want to create a new local chain so you should answer y (yes). The only time you would answer n (no) is if you intend to sync an existing chain with dfuseeos. If that's the case, see the Syncing an existing chain with dfuseeos section below.

2. Boot

Note -- see booter/examples for other boot sequence templates.

Optionally, you can also copy over a boot sequence to have dfuse bootstraps your chain with accounts + system contracts to have a chain ready for development in a matter of seconds:

wget -O bootseq.yaml https://raw.githubusercontent.com/dfuse-io/dfuse-eosio/develop/booter/examples/bootseq.dev.yaml

When you're ready, boot your instance with:

dfuseeos start

A successful start will list the launching applications as well as the graphical interfaces with their relevant links:

Dashboard:        http://localhost:8081
Explorer & APIs:  http://localhost:8080
GraphiQL:         http://localhost:8080/graphiql

In this mode, 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 couple seconds.

Syncing an existing chain with dfuseeos

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 upcoming releases).

You should also take a look at our Docs:

Overview - Repository Map

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:

Logging

See Logging

Troubleshooting

See Troubleshooting

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

Directories

Path Synopsis
migrator
Code generated by rice embed-go; DO NOT EDIT.
Code generated by rice embed-go; DO NOT EDIT.
cmd
eosq
app/eosws
Deprecated: The features in the eosws package will be moved to other packages like Dgraphql
Deprecated: The features in the eosws package will be moved to other packages like Dgraphql
mdl
node-manager
pb
Copied from MIT licensed https://github.com/rendon/testcli
Copied from MIT licensed https://github.com/rendon/testcli
kv
mdl

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL