Server backend for indexed ETH IPLD objects
Go to file
Rob Mulholand 462f94d84a Associate receipts with blocks instead of transactions
- Allows us to fetch receipts by block and persist even when
associated transaction is unknown. (The associated transaction
can still be derived from the tx_hash column at query time, but
is an expensive operation to require for inserts).
2018-05-04 10:52:28 -05:00
cmd Add starting block arg check 2018-03-27 16:16:27 -05:00
db Associate receipts with blocks instead of transactions 2018-05-04 10:52:28 -05:00
environments Updates to README 2018-04-09 17:29:31 -05:00
integration_test Update block reading test to resolve periodic fails (#53) 2018-05-04 10:41:56 -05:00
libraries/shared Rename node table and node column 2018-03-21 13:24:13 -05:00
pkg Associate receipts with blocks instead of transactions 2018-05-04 10:52:28 -05:00
scripts Get transactions (#45) 2018-03-27 16:06:12 -05:00
test_config Remove geth --dev dep 2018-03-21 13:57:18 -05:00
utils Handle events 2018-03-05 10:01:50 -06:00
vendor Get transactions (#45) 2018-03-27 16:06:12 -05:00
.gitignore Handle events 2018-03-05 10:01:50 -06:00
.private_blockchain_password Add integration test 2017-10-24 15:36:50 -05:00
.travis.yml Get transactions (#45) 2018-03-27 16:06:12 -05:00
Gopkg.lock Get transactions (#45) 2018-03-27 16:06:12 -05:00
Gopkg.toml Allow Parity as ingest node (#36) 2018-03-07 15:29:21 -06:00
LICENSE Add LICENSE 2017-11-09 12:58:17 -06:00
main.go Merge old private repo into vulcanize 2018-01-25 18:08:26 -06:00
Makefile Get transactions (#45) 2018-03-27 16:06:12 -05:00
README.md Update README to only recommend 1 way to setup database schema 2018-04-11 11:00:25 -05:00

Vulcanize DB

Build Status

Dependencies

Installation

go get github.com/vulcanize/vulcanizedb

Setting up the Database

  1. Install Postgres

  2. Create a superuser for yourself and make sure psql --list works without prompting for a password.

  3. createdb vulcanize_public

  4. cd $GOPATH/src/github.com/vulcanize/vulcanizedb

  5. Run the migrations: make migrate HOST_NAME=localhost NAME=vulcanize_public PORT=5432

    • See below for configuring additional environments

Configuration

  • To use a local Ethereum node, copy environments/public.toml.example to environments/public.toml and update the ipcPath to the local node's IPC filepath:

    • when using geth:

      • The IPC file is called geth.ipc.
      • The geth IPC file path is printed to the console when you start geth.
      • The default location is:
        • Mac: $HOME/Library/Ethereum
        • Linux: $HOME/.ethereum
    • when using parity:

      • The IPC file is called jsonrpc.ipc.
      • The default location is:
        • Mac: $HOME/Library/Application\ Support/io.parity.ethereum/
        • Linux: $HOME/.local/share/io.parity.ethereum/
  • See environments/infura.toml to configure commands to run against infura, if a local node is unavailable

Start syncing with postgres

Syncs VulcanizeDB with the configured Ethereum node.

  1. Start node (if fast syncing wait for initial sync to finish)
  2. In a separate terminal start vulcanize_db
    • vulcanizedb sync --config <config.toml> --starting-block-number <block-number>

Running the Tests

Unit Tests

  • go test ./pkg/...

Integration Tests

  • go test ./... to run all tests.