Project Structure

  • pkg - shared common packages across coinstacks
  • internal - internal utility packages
  • coinstacks/{coin} - coin specific logic



  • It is suggested configuring your editor of choice to utilize the following tooling:
    • gopls language server
    • golangci-lint to match the linter used in CI
    • goimports to match the formatting run on git pre-commit hook (default behavior when using gopls)
  • Visual Studio Code expects any golang projects to be opened up with a go.mod file at the root directory for the tooling to work properly, so be sure to open up the project at unchained/go

Initial Setup

  • Any commands should be run from within unchained/go
  • Install Golang
    make sure GOPATH is set in your shell environment, since it's needed for docker-compose setup to work properly
  • Make coinstacks
  • Copy sample env file:
    cp cmd/ethereum/sample.env cmd/ethereum/.env
  • Go to unchained/node and install dependencies by running yarn (which will also prepare the git pre-commit hook with goimports)