Run via Docker

Prerequisites

Docker and Docker compose

Docker and Docker Compose are required to run node.

Pulling sources

First off, create a directory to store source codes and files for next steps (feel free to name it):

mkdir u2u_node

Change to created directory u2u_node:

cd u2u_node

Repository u2u-genesis

Clone the u2u-genesis repository to u2u_node:

git clone https://github.com/unicornultrafoundation/u2u-genesis.git
cd u2u-genesis
git checkout main

Repository go-u2u

Clone the go-u2u repository to u2u_node:

git clone https://github.com/unicornultrafoundation/go-u2u.git
cd go-u2u
git checkout stable

Dockerfile

Create a file Dockerfile inside u2u_node. Below is the sample Dockerfile:

FROM golang:1.20-alpine as builder

RUN apk add --no-cache make gcc musl-dev linux-headers git

WORKDIR /go/go-u2u
COPY ./go-u2u .

ARG GOPROXY
RUN go mod download
RUN make u2u

FROM alpine:latest

RUN apk add --no-cache ca-certificates

COPY --from=builder /go/go-u2u/build/u2u /

EXPOSE 8545 8546 8547 30303

ENTRYPOINT ["/u2u"]

docker-compose.yaml

Create a file docker-compose.yaml inside u2u_node. Below is sample docker-compose.yaml file:

version: "3"
services:
  u2u_node:
    build: .
    image: go-u2u:stable
    restart: always
    volumes:
      - u2u_node:/root/.u2u
      - ./u2u-genesis/mainnet.g:/genesis.g
    ports:
      - 8545:8545
      - 8546:8546
      - 30303:30303
    command: --genesis /genesis.g
      --genesis.allowExperimental
      --http
      --http.addr="0.0.0.0"
      --http.port=8545
      --http.corsdomain="*"
      --http.api="eth,debug,net,admin,web3,personal,txpool,dag"
      --ws
      --ws.addr "0.0.0.0"
      --ws.port=8546
      --ws.api "eth,debug,net,web3,txpool,dag"
      --ws.origins "*"
      --enabletxtracer
      --gcmode full
      --port 30303
    network_mode: host
volumes:
  u2u_node:

Note that:

  • To run node on Solaris mainnet: you need to replace genesis file to ./u2u-genesis/mainnet.g.

  • To run node on Nebulas testnet: you need to replace genesis file to ./u2u-genesis/testnet.g.

Since we have not published the testnet yet for external nodes to join. However, we are working on it, hang tight 🎉

Run

Now your u2u_node folder will look like this:

docker-compose.yaml
Dockerfile
go-u2u/
u2u-genesis/

To run a node with Docker compose, open Terminal at u2u_node folder:

docker-compose up

Last updated