diff --git a/README.md b/README.md index dd5f9044..f6464bcf 100644 --- a/README.md +++ b/README.md @@ -4,20 +4,54 @@ ## Development Setup -By default, `go get` does not work for private GitHub repos. This will fix that. +### Dependencies + + - Go 1.9+ + +### Cloning the Repository + 1. `git config --global url."git@github.com:".insteadOf "https://github.com/"` + - By default, `go get` does not work for private GitHub repos. This will fix that. + 2. `go get github.com/8thlight/vulcanizedb` +3. `go get github.com/ethereum/go-ethereum` + - This will take a while and gives poor indication of progress. +4. `go install github.com/ethereum/go-ethereum/cmd/geth` + +### Creating/Using a Private Blockchain + +Syncing the public blockchain takes many hours for the initial sync and will download 20+ GB of data. +Here are some instructions for creating a private blockchain that does not depend on having a network connection. + +1. Run `./scripts/setup` to create a private blockchain with a new account. + * This will result in a warning. +2. Run `./scripts/start_private_blockchain`. + +### Connecting to the Public Blockchain + +`./scripts/start_blockchain` + +## Running Listener + +1. Start a blockchain. +2. In a separate terminal start listener (ipcDir location) + - `go run main.go --ipcPath /path/to/file.ipc` + +### IPC File Paths + +The default location for the Ethereum blockchain to be stored is: + - `$HOME/Library/Ethereum` for Mac + - `$HOME/.ethereum` for Ubuntu + - `$GOPATH/src/gihub.com/8thlight/vulcanizedb/test_data_dir/geth.ipc` for private blockchain. ## Running the Tests ### Integration Test -In order to run the integration tests, you will need to run them against a real blockchain. Here are steps to create a local, private blockchain. +In order to run the integration tests, you will need to run them against a real blockchain. -1. Run `./scripts/setup` to create a private blockchain with a new account. - * This will result in a warning. -2. Run `./scripts/start_private_blockchain` as a separate process. -3. `go test ./...` +1. Run `./scripts/start_private_blockchain` as a separate process. +2. `go test ./...` ### Unit Tests