This is a fork of dfuse for EOSIO, including basic support for running on the leap blockchain software.
Note
dfuse has been deprecated and all services by EOS Nation have been shut down. To extract data from Antelope chains we recommend using our Firehose and Substreams endpoints which can be found on https://pinax.network.
Please note that this fork does not (yet) implement new features added with leap 3.1. That means it will not include decoded action results in dgraphql, websocket or rest endpoints. But it enables the current feature set of dfuse on the updated leap 3.1 code.
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.
- Linux or macOS (no Windows support for now, should work through WSL2 (untested))
Build requirements:
Git
Go
1.18 or higher (installation)yarn
1.15 or higher (installation)
./scripts/build.sh
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.
Note -- If you're getting yarn dependency warnings while running the yarn install && yarn build
commands above, 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.
Initialize a few configuration files in your working directory (dfuse.yaml
, mindreader/config.ini
, ...)
dfuseeos init
Answer y
(yes) when being prompted for Do you want dfuse for EOSIO to run a producing node for you?
. If you intend is to sync an existing chain, follow Syncing an existing chain with dfuseeos
instead.
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/devel/standard/bootseq.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: https://localhost:8081
Explorer & APIs: https://localhost:8080
GraphiQL: https://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.
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).
- See Syncing a chain partially
- See the following issue about the complexity of syncing a large chain
You should also take a look at our Docs:
- See Filtering
The glue:
The EOSIO-specific services:
- abicodec: ABI encoding and decoding service
- statedb: 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:
- search plugin, object mappers, EOSIO-specific indexer, results mapper (along with the search client.
- dgraphql resolvers, with all data schemas for EOSIO
- blockmeta plugin, for EOS-specific
kvdb
bridge.
See Logging
See Troubleshooting
Please read CONTRIBUTING.md for details on our Code of Conduct & processes for submitting pull requests, and CONVENTIONS.md for our coding conventions.
- dfuse Docs
- dfuse on Telegram - Community & Team Support