Validate Ethereum IPLD objects in a Postgres database
Go to file
2022-03-02 18:09:01 -05:00
cmd Add integration test and dynamic txn unit test. 2022-01-20 18:52:01 +05:30
environments Add unit test. 2022-01-18 22:44:38 +05:30
pkg/validator Add integration test and dynamic txn unit test. 2022-01-20 18:52:01 +05:30
scripts Add integration test and dynamic txn unit test. 2022-01-20 18:52:01 +05:30
test Add integration test and dynamic txn unit test. 2022-01-20 18:52:01 +05:30
validator_test Add integration test and dynamic txn unit test. 2022-01-20 18:52:01 +05:30
docker-compose.yml Add integration test and dynamic txn unit test. 2022-01-20 18:52:01 +05:30
go.mod Update go.mod. 2022-01-18 22:48:59 +05:30
go.sum Implement ethereum state validator. 2022-01-17 19:10:13 +05:30
main.go Implement ethereum state validator. 2022-01-17 19:10:13 +05:30
Makefile Update the readme and cleanup the make file 2022-03-02 18:09:01 -05:00
README.md Update the readme and cleanup the make file 2022-03-02 18:09:01 -05:00

Overview

This repository contains the validator. The purpose of the validator is to ensure that the data in the Core Postgres database match the data on the blockchain.

Intention for the Validator

The perfect scenario for the validator is as follows:

  1. The validator will have the capacity to perform historical checks for the Core Postgres database. Users can contain these historical checks to specified configurations (block range).
  2. The validator will perform validation for a certain number of trailing blocks, t, trailing the head, n. Therefore the validator will constantly perform real-time validation starting at n and ending at n - t.
  3. The validator validates IDLP blocks in the Core Database; it will update the core database to indicate that the validator validated the block.

Edge Cases

We must consider the following edge cases for the validator.

  • There are three different data types that the validator must account for.

Instructions for Testing

To run the test, do the following:

  1. Make sure GOPATH is set in your ~/.bashrc or ~/.bash_profile: export GOPATH=$(go env GOPATH)
  2. ./scripts/run_integration_test.sh