Troubleshooting

Solutions to common problems.

This section lists solutions to problems some users have run into with the installation. If you continue to have trouble, create an issue, or ask us on discord.

Dependencies

Installing go

How do I check my Go version?

Run this command

go version

TrueBlocks needs version 1.16.x or later. If you to install or update Go, see here.

Installing build tools

How do I install the build packages for my system?

Linux: sudo apt install build-essential git cmake ninja-build python3 python3-dev libcurl4-openssl-dev clang-format jq

Mac: brew install cmake ninja git clang-format jq

Building TrueBlocks

Did it work?

How do I know if compilation worked?

From the ./trueblocks-core/build folder, test your installation with this command:

../bin/chifra version

You should get a version string similar to this:

trueBlocks GHC-TrueBlocks//0.9.0-alpha-409aa9388-20210503

If nothing outputs, your installation or the build has failed. Try repeating the installation instructions. If it still fails, make an issue or join our discord.

Exporting your PATH

How do I export my PATH?

chifra only works if its underlying tools are found in your $PATH. To find the full path, run this from the top of the trueblocks-core directory.

cd bin && pwd && cd -

Add the result of that command to your shell’s $PATH.

How you do that depends on your system. In Bash, you’re probably going to put something like this in your .bashrc:

export PATH=${PATH}:</path/to/trueblocks-core/directory>/bin

If you are confused, a Google search may be in order…

Number of cores

How many cores can I use to make TrueBlocks?

When you run make, you can speed up the build by parallelizing with

make -j <ncores>

Where <ncores> represents the number of cores to devote to the job. How many cores can you use? That depends on many factors. A handy tool is nproc, which identifies the machine’s number of available processing units.

If you have nproc installed, you can safely parallelize the build with this command

make -j `nproc`

Configuration

Where?

Where are the configuration files?

Where your configuration folder is depends on your operating system and environment.

  • If XDG_CONFIG_HOME is set, your configuration is there
  • Otherwise, on Linux: ~/.local/share/trueblocks
  • Otherwise, on Mac: ~/Library/Application Support/TrueBlocks
  • Otherwise, you’re out of luck–we only support Linux and Mac

The primary or base configuration file (trueBlocks.toml) must exist at one of the above locations for chifra to work.

With the recent addition of support for multi-chain, there has arisen the need for per-chain configuration as well (for example, values such as rpcProvider or remoteExplorer are unique per chain).

This issue is discussed here TODO: PLACE_HOLDER.

RPC endpoint

How do I specify an RPC endpoint?

By default, TrueBlocks looks for the RPC at http://localhost:8545/.

If you are using a remote RPC such as Infura or your own local RPC at a different port, you will need to modify that value.

As is true of all configuration values, you coudl use an environment variable as described above, but you may also edit trueBlocks.toml.

The format of that file is documented TODO: PLACE_HOLDER.

API keys

How do I add a EtherScan key?

Some small part of TrueBlocks requires an EtherScan API key. In particular this is the --articulate option. We are working hard to remove this centralized dependency, but in the mean time you may get a warning of a missing key.

Here’s an example of a remote RPC for Infura and an EtherScan API key. Warning: see the note below

[settings]
default_chain=mainnet
etherscan_key = "<key_value>"

[mainnet]
rpcProvider = "https://mainnet.infura.io/v3/<key_value>"

Note: Until mutli-chain is fully supported, put the rpcProvider value in the [settings] group.

Note: The EtherScan key is not per-chain.

Do I need the index?

Why do I need the index of appearances?

If you’re only querying basic block or transaction data, you don’t really need the index of appearances.

However, most of our users with to explore the entire history of their own addresses. If you wish to do that, you will need the index.

There are multiple options for getting the index, which the How Can I Get the Index? article covers in more detail.

No matter which method you use, downloading or creating the index will take somewhere between a few minutes and a day or two. So you might want to play around with some chifra blockchain commands first.

Archive nodes

What if my node doesn’t have tracing or archiving?

If the node you’re running does not support OpenEthereum style tracing or it is not an archive node, you may get an error telling you such.

Something like

--accounting requires historical balances. The RPC server does not have them. Quitting...

You may disable this warning by editing a configuration file. Find the file called blockScrape.toml in your configuration folder (in a multi-chain environment this will be in the chain-specific config file, otherwise at the top level).

Add the following setting to the file (which you may create if it doesn’t exist):

[requires]
tracing = false
archive = false

Edit this page on GitHub